brew/Library/Homebrew
Bo Anderson a542ef9b7d
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Docker / docker (Ubuntu ${{ matrix.version }}) (18.04) (push) Waiting to run
Docker / docker (Ubuntu ${{ matrix.version }}) (20.04) (push) Waiting to run
Docker / docker (Ubuntu ${{ matrix.version }}) (22.04) (push) Waiting to run
Docker / docker (Ubuntu ${{ matrix.version }}) (24.04) (push) Waiting to run
Documentation CI / docs (push) Waiting to run
Ruby Documentation CI / rubydoc (push) Waiting to run
CI / syntax (push) Waiting to run
CI / tap syntax (push) Blocked by required conditions
CI / formula audit (push) Blocked by required conditions
CI / cask audit (push) Blocked by required conditions
CI / vendored gems (push) Blocked by required conditions
CI / ${{ matrix.name }} (update-test (Ubuntu), ubuntu-latest) (push) Blocked by required conditions
CI / ${{ matrix.name }} (update-test (macOS), macos-15) (push) Blocked by required conditions
CI / ${{ matrix.name }} (tests (Ubuntu 20.04), ubuntu-20.04, --coverage) (push) Blocked by required conditions
CI / ${{ matrix.name }} (tests (Ubuntu 22.04), ubuntu-22.04, --coverage) (push) Blocked by required conditions
CI / ${{ matrix.name }} (tests (Ubuntu 24.04), ubuntu-24.04, --coverage) (push) Blocked by required conditions
CI / ${{ matrix.name }} (tests (generic OS), ubuntu-latest, --generic --coverage) (push) Blocked by required conditions
CI / ${{ matrix.name }} (tests (macOS 13 x86_64), macos-13, --coverage) (push) Blocked by required conditions
CI / ${{ matrix.name }} (tests (macOS 15 arm64), macos-15, --coverage) (push) Blocked by required conditions
CI / ${{ matrix.name }} (tests (online), ubuntu-latest, --online --coverage) (push) Blocked by required conditions
CI / ${{ matrix.name }} (ghcr.io/homebrew/ubuntu20.04, test default formula (Ubuntu 20.04), ubuntu-latest) (push) Blocked by required conditions
CI / ${{ matrix.name }} (ghcr.io/homebrew/ubuntu22.04:master, test default formula (Ubuntu 22.04), ubuntu-latest) (push) Blocked by required conditions
CI / ${{ matrix.name }} (test default formula (macOS 13 x86_64), macos-13) (push) Blocked by required conditions
CI / ${{ matrix.name }} (test default formula (macOS 15 arm64), macos-15) (push) Blocked by required conditions
Merge pull request #18814 from Homebrew/revert-final-sig
Remove problematic :final from Requirement sigs
2024-11-25 03:36:44 +00:00
..
.bundle
api Remove unneeded method. 2024-09-04 22:54:25 +02:00
cask deprecate_disable: support optional replacement parameter 2024-11-08 15:49:00 -05:00
cli Add new odeprecated, odisabled, remove disabled code. 2024-09-24 10:15:34 +01:00
cmake
cmd revert setting --insecure to download ca-certificates 2024-11-24 14:57:32 -05:00
completions Remove fish command completions for excluded commands 2024-11-20 17:35:42 -06:00
data
debrew
dev-cmd generate-cask-ci-matrix-syntax: allow no argument for syntax-only jobs 2024-11-19 20:32:12 +11:00
extend Merge pull request #18779 from kiracus/m4 2024-11-17 08:46:22 +00:00
language language/python: link manpages by default 2024-11-05 11:24:13 -05:00
livecheck Manually resolve Style/SafeNavigationChainLength violations 2024-11-05 16:44:12 +00:00
manpages
os os/mac: prefer newest Xcode when searching using mdfind 2024-11-08 23:04:49 +08:00
requirements
rubocops rubocops/shared/url_helper: tweak SourceForge handling 2024-10-24 20:40:32 +01:00
shims Homebrew/shims: remove *llvm-g* shims. 2024-09-30 08:43:57 +01:00
sorbet Merge pull request #18804 from Homebrew/dependabot/bundler/Library/Homebrew/minitest-5.25.2 2024-11-23 03:27:49 +08:00
standalone Enforce finalized sorbet methods 2024-11-21 18:34:11 -08:00
startup startup/bootsnap: base key on in install state rather than projection 2024-09-04 14:54:15 +01:00
test Remove :final from Requirement#satisfied? sig 2024-11-24 15:49:49 -08:00
unpack_strategy unpack_strategy/directory: use mv for nested unpack 2024-10-20 11:29:30 -04:00
utils Update Library/Homebrew/utils/github.rb 2024-11-17 15:06:34 -07:00
vendor Merge pull request #18804 from Homebrew/dependabot/bundler/Library/Homebrew/minitest-5.25.2 2024-11-23 03:27:49 +08:00
version
yard
.rspec_parallel
.rubocop.yml
.ruby-version Portable Ruby 3.3.6 2024-11-05 16:04:31 -08:00
.simplecov
.yardopts
abstract_command.rb
api.rb Globally silence default gem warnings 2024-09-05 03:37:25 +01:00
ast_constants.rb
attestation.rb attestation: specialize error on incompatible gh 2024-10-10 12:06:09 +01:00
attrable.rb Migrate Parlour extensions to Tapioca compilers 2024-10-14 19:50:09 -07:00
brew_irbrc
brew.rb brew.rb: improve error message for miscased commands. 2024-11-04 08:51:05 +00:00
brew.sh brew: allow root in podman containers 2024-10-15 10:39:10 +02:00
build_environment.rb brew style --fix 2024-10-02 10:03:12 -07:00
build_options.rb
build.rb Allow sockets to use longer paths on macOS 2024-09-27 04:37:03 +01:00
bump_version_parser.rb
bundle_version.rb Fix BundleVersion comparison when short_version is not comparable 2024-10-21 17:31:25 +02:00
cache_store.rb
cask_dependent.rb
cask.rb
caveats.rb brew style --fix 2024-10-02 10:03:12 -07:00
checksum.rb
cleaner.rb
cleanup.rb Apply suggestions from code review 2024-11-05 16:44:12 +00:00
command_path.sh
commands.rb
compilers.rb compilers: drop support for GCC 4.9, 5 and 6 2024-09-24 18:56:12 -04:00
completions.rb Remove fish command completions for excluded commands 2024-11-20 17:35:42 -06:00
context.rb
cxxstdlib.rb cxxstdlib: typed: strong 2024-09-26 14:32:55 -04:00
debrew.rb
dependable.rb
dependencies_helpers.rb
dependencies.rb Fix leftover errors for Dependencies vs. T::Array[Dependency] 2024-10-06 20:04:42 +01:00
dependencies.rbi
dependency_collector.rb
dependency.rb Migrate Parlour extensions to Tapioca compilers 2024-10-14 19:50:09 -07:00
deprecate_disable.rb deprecate_disable: support optional replacement parameter 2024-11-08 15:49:00 -05:00
description_cache_store.rb
descriptions.rb
development_tools.rb Move remaining OS extensions to prepend 2024-10-05 12:18:29 -07:00
diagnostic.rb Replace removable constants with overridable methods 2024-10-07 18:33:03 -07:00
download_queue.rb Ensure thread-pool shutdown. 2024-09-07 14:45:30 +02:00
download_strategy.rb revert setting --insecure to download ca-certificates 2024-11-24 14:57:32 -05:00
download_strategy.rbi Use requires_ancestor consistently 2024-10-06 09:25:57 -07:00
downloadable.rb Use requires_ancestor consistently 2024-10-06 09:25:57 -07:00
env_config.rb Support setting GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL 2024-11-11 18:45:38 +08:00
exceptions.rb Use requires_ancestor consistently 2024-10-06 09:25:57 -07:00
fetch.rb
formula_assertions.rb
formula_auditor.rb formula_auditor: allow pkg-config alias for pkgconf migration 2024-11-01 12:42:29 -04:00
formula_cellar_checks.rb Fix leftover errors for Dependencies vs. T::Array[Dependency] 2024-10-06 20:04:42 +01:00
formula_creator.rb
formula_free_port.rb
formula_info.rb
formula_installer.rb formula_installer: re-enable mirror usage when installing via API 2024-11-21 16:55:19 -05:00
formula_name_cask_token_auditor.rb
formula_path.sh
formula_pin.rb formula_pin: typed: strict 2024-09-26 14:48:32 -04:00
formula_support.rb
formula_versions.rb
formula.rb Enforce finalized sorbet methods 2024-11-21 18:34:11 -08:00
formula.rbi
formulary.rb Manually resolve Style/SafeNavigationChainLength violations 2024-11-05 16:44:12 +00:00
formulary.rbi
Gemfile Migrate Parlour extensions to Tapioca compilers 2024-10-14 19:50:09 -07:00
Gemfile.lock Merge pull request #18804 from Homebrew/dependabot/bundler/Library/Homebrew/minitest-5.25.2 2024-11-23 03:27:49 +08:00
git_repository.rb Add new odeprecated, odisabled, remove disabled code. 2024-09-24 10:15:34 +01:00
github_packages.rb Add new odeprecated, odisabled, remove disabled code. 2024-09-24 10:15:34 +01:00
github_releases.rb
github_runner_matrix.rb github_runner_matrix: extend timeout for dependent tests on arm64 2024-11-01 12:26:50 +08:00
github_runner.rb
global.rb
hardware.rb hardware: rename none optimization flags to dunno 2024-11-16 14:44:37 -05:00
help.rb Bump more files to Sorbet typed: strict 2024-10-06 20:04:42 +01:00
help.sh
ignorable.rb
ignorable.rbi
install_renamed.rb
install.rb Revamp installed_on_request handling 2024-11-19 08:39:55 +00:00
installed_dependents.rb
items.sh
keg_relocate.rb keg_relocate: fix error when dylib_id doesn't need changing 2024-10-26 06:31:05 +01:00
keg.rb Remove removable constants 2024-10-07 19:45:48 -07:00
keg.rbi Fix tests 2024-10-05 12:18:29 -07:00
lazy_object.rb
linkage_cache_store.rb
linkage_checker.rb linkage_checker: replace Fiddle.dlopen with libSystem call 2024-10-03 23:20:52 +08:00
linux_runner_spec.rb
linuxbrew-core-migration.rb
list.sh list.sh: improve arg parsing, support brew ls 2024-09-03 15:13:15 +01:00
livecheck.rb Disable false positive 2024-11-15 11:46:32 -08:00
locale.rb
lock_file.rb
macos_runner_spec.rb
macos_version.rb macos_version: define a method instead 2024-10-31 15:15:02 +08:00
manpages.rb
messages.rb
metafiles.rb
migrator.rb
missing_formula.rb
mktemp.rb mktemp: strict type and allow #run without chdir 2024-10-16 12:47:14 -04:00
official_taps.rb
options.rb
options.rbi
os.rb os: use native ruby calls for uname 2024-10-31 15:35:58 +08:00
patch.rb Use @@HOMEBREW_PREFIX@@ for replacements in external patches 2024-10-23 16:51:01 +01:00
PATH.rb PATH: typed: strict 2024-09-26 16:19:11 -04:00
pkg_version.rb
pkg_version.rbi
postinstall.rb Allow sockets to use longer paths on macOS 2024-09-27 04:37:03 +01:00
readall.rb
README.md
reinstall.rb Revamp installed_on_request handling 2024-11-19 08:39:55 +00:00
requirement.rb Remove :final from Requirement#satisfied? sig 2024-11-24 15:49:49 -08:00
requirements.rb
resource_auditor.rb
resource.rb revert setting --insecure to download ca-certificates 2024-11-24 14:57:32 -05:00
retryable_download.rb Fix type signatures. 2024-09-04 22:54:21 +02:00
rubocops.rb
sandbox.rb
sbom.rb
search.rb allow @ and + characters for search 2024-09-17 12:43:28 +09:00
service.rb
service.rbi
settings.rb
shell_command.rb
simulate_system.rb
software_spec.rb Merge pull request #18172 from cho-m/brew-info-size 2024-09-25 14:02:38 +01:00
source_location.rb
standalone.rb
startup.rb
style.rb style: skip actionlint checks if an actionlint workflow is present 2024-09-27 15:29:07 +08:00
system_command.rb
system_config.rb
tab.rb Move remaining OS extensions to prepend 2024-10-05 12:18:29 -07:00
tap_auditor.rb tap_auditor: check renamed formula exists 2024-11-09 12:02:03 -05:00
tap_constants.rb dev-cmd/bump-formula-pr: always use full git repo as tap remote 2024-10-15 10:20:58 +02:00
tap.rb tap: tweak Ruby style for readability. 2024-11-06 09:11:33 +00:00
tap.sh tap.sh: tweak naming 2024-09-25 16:49:46 +08:00
test_runner_formula.rb
test.rb Add HOMEBREW_TEST_TIMEOUT_SECS env var 2024-10-26 17:32:41 +08:00
uninstall.rb uninstall: don't ignore deps even for developers 2024-11-18 00:13:12 +08:00
unlink.rb
unpack_strategy.rb unpack_strategy/directory: use mv for nested unpack 2024-10-20 11:29:30 -04:00
unversioned_cask_checker.rb
upgrade.rb Revamp installed_on_request handling 2024-11-19 08:39:55 +00:00
url.rb
utils.rb
version.rb
warnings.rb warnings: typed: strict 2024-09-27 12:31:59 -04:00

Homebrew Ruby API

This is the API for Homebrew.

The main class you should look at is the {Formula} class (and classes linked from there). That's the class that's used to create Homebrew formulae (i.e. package descriptions). Assume anything else you stumble upon is private.

You may also find the Formula Cookbook and Ruby Style Guide helpful in creating formulae.

Good luck!