The Missing Package Manager app for macOS

Homebrew for Mac

Homebrew for Mac

  -  105 MB  -  Open Source
  • Latest Version

    Homebrew 4.4.12 LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    macOS 10.13 High Sierra or later

  • User Rating

    Click to vote
  • Author / Product

    Homebrew Team / External Link

  • Filename

    Homebrew-4.4.12.pkg

Homebrew for Mac is a free and open source package management system for macOS. Homebrew installs the stuff you need that Apple!

Homebrew installs packages to their own directory and then symlinks their files into /usr/local. Homebrew won’t install files outside its prefix and you can place a Homebrew for macOS installation wherever you like.

Trivially create your own Homebrew packages. It’s all Git and Ruby underneath, so hack away with the knowledge that you can easily revert your modifications and merge upstream updates. Making a cask is as simple as creating a formula.

macOS Requirements
  • A 64-bit Intel CPU or Apple Silicon CPU
  • macOS Mojave (10.14) (or higher)
  • Command Line Tools (CLT) for Xcode
  • A Bourne-compatible shell for installation (e.g. bash or zsh)


What's new in this version:

Homebrew 4.4.12
- dev-cmd/tap-new: improve handling of multi-user setups
- chore(formula): raise error if no universal binaries are found to deuniversalize
- github/workflows: use merge_group instead of push events.
- cmd/list: support using --full-name with --installed-on-request et al
- Remove OpenStruct from CLI::Args
- Namespace some top-level constants
- cask/info: send missing args after removing openstruct
- bin/brew: fix prioritisation of system env files
- workflows: use full version numbers
- utils/github: handle over 30 changed files
- workflows: fix mis-pinned codeql-action hashes
- dependabot: remove lock-threads


Homebrew 4.4.11
- os/mac/hardware/cpu: add M4 Pro/Max
- update-maintainers: ignore accents when sorting names
- workflows/docs: enable merge queue/group jobs.
- Remove unsafe references from CLI and Formulary code
- Add missing utils/service require
- fix(livecheck/pypi): update to use json endpoint to query version
- Minor CLI code improvements
- cask/artifact/abstract_uninstall: handle sudo trashed paths correctly
- Pypi: Restore regex support


Homebrew 4.4.10
- formula_auditor: avoid pkg-config dependency in core tap
- generate-man-completions: also fail if only date changed
- livecheck: clarify livecheckable language
- cmd/update-reset: remove .git/describe-cache
- cmd/developer: fix HOMEBREW_UPDATE_TO_TAG handling
- cmd/update: avoid switching developers to stable branch
- feat: Add Bash completion for Homebrew aliases
- service: end systemd configs with a new line
- Fix systemd command line quoting
- Enable strict typing in NamedArgs
- pkg_version: make typed: strict
- Upload test results to CodeCov
- attestation: handle multiple subjects


Homebrew 4.4.9
- update.sh: fix unused environment variable
- sorbet: Bump some Cask files to typed: strict
- rubocops/uses_from_macos: allow using Sequoia jq
- formula: expose inreplace global parameter


Homebrew 4.4.8
- system_config: print brew branch
- formula_installer: allow installing/upgrading disabled formulae
- cask: try fix a couple of permission edge cases under multi-user


Homebrew 4.4.7
- generate-cask-ci-matrix: fix incorrect error being raised
- fix: too_many_open_prs() fails without SSO access
- uninstall: don't ignore deps even for developers
- generate-cask-ci-matrix-syntax: allow no argument for syntax-only jobs
- Revamp installed_on_request handling
- devcontainer.json: use master image.
- Remove fish command completions for excluded commands
- formula_installer: re-enable mirror usage when installing via API
- Enforce finalized sorbet methods
- docs: update redirecting url
- revert setting --insecure to download ca-certificates
- Remove problematic :final from Requirement sigs
- Fix incorrect download locking.
- docs: mention optional replacement parameter for deprecate/disable
- Remove OpenStruct from Uses cmd
- bump: skip PR checking when up to date or livecheck fails


Homebrew 4.4.6
- tap_auditor: check renamed formula exists
- actionlint: suppress zizmor's exit code
- os/mac/diagnostic: check for OpenCore
- Installation: note that OpenCore is not supported
- Acceptable-Casks: remove outdated info
- os/mac/diagnostic: fix OpenCore check
- shared: only fall back to -march=native on supported architectures
- os/mac/diagnostic: improve OpenCore check
- os/mac/diagnostic: fix case of OpenCore check
- workflows/docker: use GitHub Packages for caching
- add generate-cask-ci-matrix command
- hardware: rename none optimization flags to dunno
- Add M4 processor


Homebrew 4.4.5
- language/python: link manpages by default
- Portable Ruby 3.3.6
- tap: allow an array of values for an audit exception
- formula: change some private API to public API
- os/mac: prefer newest Xcode when searching using mdfind
- linux/hardware/cpu: add some missing Intel CPUs
- linux/hardware/cpu: add some missing AMD CPUs
- deprecate_disable: support optional replacement parameter
- Support setting GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL


Homebrew 4.4.4
- dev-cmd/bump-formula-pr: fix type error
- workflows/actionlint: run zizmor
- workflows: fix artipacked warning
- workflows/pkg-installer: fix template-injection warnings
- workflows/vendor-version: fix template-injection warnings
- remove Cask::Config.explicit_s
- language/python: reduce dependencies added to pth file
- Revert "cmd/shellenv: set XDG_DATA_DIRS on Linux"
- macos_version: add KERNEL_MAJOR_VERSIONS map
- os: use native ruby calls for uname
- os/linux/diagnostic: remove XDG_DATA_DIRS.
- utils/inreplace: allow non-global substitution
- github_runner_matrix: extend timeout for dependent tests on arm64
- formula_auditor: allow pkg-config alias for pkgconf migration
- Downcase internal commands
- ci: move to ubuntu latest


Homebrew 4.4.3
- filter pinned test dependencies
- Fix BundleVersion comparison when short_version is not comparable
- doc: improve clarity by removing redundant word in Homebrew-on-Linux.md
- Prose-Style-Guidelines: remove archive.org link
- rubocops/shared/url_helper: tweak SourceForge handling
- utils/lock: use new lockf where available
- Go: Add -gcflags to std_go_args
- os/mac/keg_relocate: don't change Swift stdlib dylib IDs
- keg_relocate: fix error when dylib_id doesn't need changing
- livecheck: error on invalid url symbol
- Add HOMEBREW_TEST_TIMEOUT_SECS env var
- Allow HOMEBREW_PREFIX replacement in external patches
- spec_helper: improve parallel test handling


Homebrew 4.4.2
- formula_installer: verify attestations at bottle fetch time
- extend/kernel: fix duplicate messages in GitHub Actions
- test/utils/github_spec: fix artifact URL test
- shellenv: Add zsh site-functions to fpath
- Migrate Parlour extensions to Tapioca compilers
- cmd/upgrade: require named args when upgrading from source
- dev-cmd/bump-formula-pr: always use full git repo as tap remote
- brew: allow root in podman containers
- extend/kernel: fix error on early deprecations
- Improve/fix HOMEBREW_FORBIDDEN_LICENSES handling
- mktemp: strict type and allow #run without chdir
- language/java: document public API
- curl: handle multiple Content-Type headers
- unpack_strategy/directory: use mv for nested unpack


Homebrew 4.4.1
- Revert "Revert "github_runner_matrix: enable usage of macos-15 runners""
- github/workflows: use macos-15 GitHub Actions runners
- dev-cmd/bump: fix comparison of versions with comma-separated values
- linkage_checker: replace Fiddle.dlopen with libSystem call
- unpack_strategy/directory: try preserving hardlinks
- attestion: make InvalidAttestationError non-fatal in CI
- brew.sh: fix some stderr redirections to /dev/null
- upstream.rbi: remove Fiddle constants
- Move remaining undef use in OS extensions to prepend
- Bump more files to Sorbet typed: strict
- Add a Delegator DSL compiler
- Use requires_ancestor consistently
- Replace removed constants with overridable methods
- Remove removable constants
- utils/curl: workaround curl bug for --head --request GET
- attestation: show unit of time for retry message
- attestation: specialize error on incompatible gh
- tap_auditor: check formulae names in autobump.txt
- os/mac/pkgconfig: add bzip2.pc for rust formulae
- feat: add attestation to the pkg installer
- cask/cask: pass args when initalising methods
- feat: Install an unlinked formula via brew install if --overwrite is passed
- extend/ENV/super: use brew libs for some Python packages
- Perform preinstall checks when a formula is installed via a cask
- unpack_strategy: fix unpack Dir.mktmpdir group


Homebrew 4.4.0
- Exclude sorbet assignments from Style/MutableConstant cop
- keg: Install gziped info files during linking
- linux: drop ubuntu 18.04 devcontainer
- workflows/pkg-installer: create an issue when publish fails
- workflows: use set -xeuo pipefail globally
- sponsors-maintainers-man-completions: fix unbound variable
- workflows/docker: publish homebrew/brew:master
- Shorten brew tests temporary paths.
- docker: deprecate Ubuntu 18.04
- compilers: drop support for GCC 4.9, 5 and 6
- Add new odeprecated, odisabled, remove disabled code.
- Speed up brew tap for no arguments
- cmd/info: show size information
- env_config: deprecate setting boolean vars to falsy values
- fix: update remote_repo refs to fix autobump flows
- tests: add an extra byte of randomness
- github_runner_matrix: enable usage of macos-15 runners
- style: forbid url do blocks in homebrew/cask
- Cask-Cookbook: update verified example
- Revert "github_runner_matrix: enable usage of macos-15 runners"
- Improve cask --adopt to only care about the installed version if auto…
- os/mac: bump latest SDK version
- create: show audit command on the next line
- cask/url: deprecate url do blocks.
- caveats: typed: strict
- cmd/--cache: avoid exception on missing HEAD
- Deprecate installing casks/formulae from paths.
- Revert "Deprecate installing casks/formulae from paths."
- Portable Ruby 3.3.5
- .ruby-version: bump to 3.3.5
- Allow sockets to use longer paths on macOS
- PATH: typed: strict
- test/cask/utils_spec: fix test failure when HOMEBREW_TEMP is a symlink
- cmd/list: -t and -r support for some long options
- style: skip actionlint checks if an actionlint workflow is present
- unpack_strategy/dmg: more UID handling fixes
- completions formula_pin: typed: strict, cxxstdlib: typed: strong
- tap: restore old repo key
- brew vendor-gems: commit updates.
- shims/super/cc: add modeline for vim-like editors
- completions: fix short option conflict in zsh completion
- tap: add repository key.
- warnings: typed: strict
- livecheck: move #preprocess_url into strategies
- shims/super/cc: remove leftover usage of llvm-g++-4.2
- workflows/tests: use the container and macos-14 for some jobs
- os/linux/ld: handle nonexistent ld.so.conf more gracefully
- linkage_checker: skip files with incompatible architectures
- Gemfile.lock: bump Ruby version
- dev-cmd/vendor-gems: fix UID handling
- audit: audit deprecate/disable reasons
- feat(tap-info): display Git information about non-Core/non-API taps


Homebrew 4.3.24
- os/linux/ld: harden brewed_ld_so_diagnostics against TypeError
- search: allow @ and + characters
- cmd/shellenv: set XDG_DATA_DIRS on Linux
- dev-cmd/unbottled: fix total unbottled count
- rubocops: xcodebuild needs an Xcode dependency
- dev-cmd/bottle: improve :all bottle handling
- formula_installer: fix manifest error handling
- github_runner_matrix: include 15-x86_64 with --all-supported
- Use prepended modules instead of undef for OS-specific code
- os/mac/pkgconfig/14: update libcurl for 14.5 SDK
- formula: fix alias/generic/prepend std_cmake_args issue


Homebrew 4.3.23
- resource: further fix manifest retry handling


Homebrew 4.3.20
- dev-cmd/bottle: use iso8601 for compliance with spec
- formula_auditor: reject more SPDX licenses
- docs: remove references to deprecated/disabled GCC formulae
- list.sh: support column output
- shims/super/cc: do not pass -pipe
- cmd/shellenv: output the result of path_helper directly
- list.sh: improve arg parsing, support brew ls
- Invalidate Bootsnap cache on Gemfile.lock changes
- github_packages: use full license only if within limit
- utils/github: use x-access-token
- Revert "build(deps-dev): bump logger from 1.6.0 to 1.6.1 in /Library/Homebrew"
- workflows/docker: improve job names
- startup/bootsnap: base key on in install state rather than projection
- Docs: Add license to block preceding revision placement
- formula_auditor: make deprecate license check non-strict in core
- Globally silence default gem warnings
- Revert $TMPDIR for emacsclient
- keg: avoid attempting rmdir on must exist subdirs
- Update URLs to SPDX license expr docs
- dev-cmd/bump: add --auto flag
- Dockerfile: align gh installation with upstream documentation
- Update README
- Improve brew doctor output on prerelease macOS
- Use FormulaInstaller OS extensions
- linkage_checker: exclude test deps from being considered runtime dep
- Curl#curl_headers: Work with 56 exit_status
- github/actions: fix annotation title handling
- rubocops/uses_from_macos: remove gnu-getopt and rpcgen
- shims/super/ninja: respect Homebrew parallelism


Homebrew 4.3.19
- Simplify globbing for casks and formula in taps
- utils/shared_audits: allow subgroups in gitlab url
- utils/spdx: fix invalid SPDX syntax for symbols
- workflows/docker: use docker/build-push-action to build images
- github_runner_matrix: filter incompatible testing formulae
- github_packages: use official license annotation
- brew.sh: fix handling of dirty git repo
- Fix misuse of fork in sandbox causing crashes
- utils/shared_audits: GitHub urls can have '.' in repo and '/' in tag
- cmd/update-report: improve formula file validation
- Add note about auditor to How-To-Open-a-Homebrew-Pull-Request.md
- utils/github/api: add debug output for open_graphql
- Update README.md and manpage
- Remove GraphQL debug output
- utils/github: fix sponsorships GraphQL query
- utils/github: improve sponsorships error handling
- workflows: remove references to maintainers.json
- Deleted the duplicated "PWD check"
- cmd/shellenv: improve for newer macOS using /usr/libexec/path_helper
- Improve duplicate pull request handling
- devcontainer: Fix Codespace repository permissions
- Adjust typing around #check_pull_requests
- Fix SyntaxError introduced by a refactor in bc0f5ee
- list.sh: simplify
- list.sh: fix arg parsing always failing
- formula: make audit_result a kwarg in inreplace
- Revert "cmd/shellenv: improve for newer macOS using /usr/libexec/path_helper"


Homebrew 4.3.18
- dev-cmd/typecheck: Support typechecking in taps
- brew.sh: further improve git describe cache
- feat: add attestation to installer
- Revert "feat: add attestation to installer"
- Minor type safety improvements
- Remove global include Kernel
- Remove some unnecessary include Kernel
- enable typed: strict in Homebrew::CLI::Args
- bin/brew: tighten check in export_homebrew_env_file
- .rubocop.yml: add respond_to_missing? to OptionalBooleanParameter exemptions
- extend/ENV/super: set GOTOOLCHAIN
- docs/Typechecking: update to latest code standards
- upgrade: remove module_function
- api/analytics: use typed: strict
- Replace some include Kernel usages with requires_ancestor
- Use plist main binary for Rosetta audit
- Revert "bin/brew: tighten check in export_homebrew_env_file"
- dev-cmd/edit: correct path types
- Rosetta audit: Build full executable path
- sorbet: Ignore Formula and Casks directories
- shared_audits: remove module_function
- livecheck: remove module_function
- extend/ENV: remove fake EnvMethods from RBI
- Don't assume ENV is a superenv in RBI
- cmd/list: add --poured-from-bottle and --built-from-source
- language/python: reduce some differences between macOS and Linux venv
- language/python: avoid modifying all Python symlinks
- formula_auditor: fix typechecking failure
- docs: use NOTE rather than NOTICE
- Add typing for Cask#url and fix detected issues
- dev-cmd/bottle: use default tar when bottling gnu-tar
- brew.sh: remove some shellcheck disables
- keg_relocate: allow spaces/tabs after shebang
- utils/github: fix too_many_open_prs?
- utils/github: use paginate_graphql in sponsorships
- Speed up CoreCaskTap#cask_files_by_name
- formula_auditor: ensure tag is not nil when doing online audit
- utils/github: a few more simplifications
- bin/brew: improve sudo handling
- shims/super/cc: unset LD_LIBRARY_PATH
- Speed up the Tap#formula_files and Tap#cask_files methods
- utils/helpers.sh: remove a shellcheck disable
- dev-cmd/bottle: include installed_size in metadata
- workflow/tests: move Docker tests to docker.yml


Homebrew 4.3.17
- diagnostic: check for strings in XDG_DATA_DIRS
- cleaner: use typed: strict
- hardware.rb: use typed: strict
- Make Cask::Artifact::Installer typesafe
- brew.sh: hide ignorable permission errors
- devcontainer: Tap bundle and services in Codespaces


Homebrew 4.3.16
- Refactor method to remove extra tap requires
- sorbet: Bump some cmd/* files to typed: strict
- Make FromContentLoader.try_new typesafe
- sorbet: Bump more files to typed: strict
- Fix incompatibility in brew shellenv with older version of Fish shell
- rubocop: Use Sorbet/StrictSigil as it's better than comments
- attestation: specialize error when gh is old
- Revert "attestation: specialize error when gh is old"
- Make Cask::Artifact::Installer typesafe
- Revert "Make Cask::Artifact::Installer typesafe"
- Improve VSCode configuration
- formula_auditor: fix eol check
- unpack_strategy/dmg: fix UID handling
- formula_name_cask_token_auditor: use typed: strict
- download: use typed: strict
- extend/io: use typed: strict
- Deprecate invoking commands in the old (non-AbstractCommand) style
- Verify more constants are not loaded at startup
- Fix message when disablement is in the past.
- extend/os/linux/keg: use typed: strict
- extend/os/linux/formula_installer: use typed: strict
- Add brew debugger command
- Update dev container recommended extensions
- Suppress sorbet type errors when using `undef'
- Improve VS Code debugger support
- Add a bunch more UNDEFINED_CONSTANTS for startup


Homebrew 4.3.15
- Fix SBOM schema validation
- language/*: only check required deps in detected_*_shebang
- sorbet: Comment more files that can't be strict because of undef
- formula_creator: don't recommend interpolating bin
- Share code between cask token and formula name audits.
- Faster brew formulae command (and formula completion!)
- Make ruby-lsp-activate.sh executable
- cask/dsl/caveats: fix rosetta caveat printing
- Honor homebrew curlrc config for analytics
- Relax cask token regex.
- cmd/update-report: don't output cask updates on linux


Homebrew 4.3.14
- diagnostic: fix XDG_DATA_DIRS check
- Show dependencies for casks
- cmd/update: make chown suggestion consistent
- Fix Homebrew auto-update for GNU find
- pkg-installer: don't build on Dependabot PR's
- Vendor SBOM schema


Homebrew 4.3.13
- feat: enable audit for wayback urls on all formulae
- cleaner: rewrite node shebangs
- brew.sh: fix brew -v
- language/python: support pure-Python wheel installs
- Formula-Cookbook: add std_npm_args
- Improve locking UX
- sandbox: disallow backslashes in path filter names
- tapioca/compilers/args: remove non-AbstractCommand handling
- Homebrew-and-Python: more PEP 668 guidance
- rubocop: Discourage the use of rm_f and rm_rf in formulae and casks
- rubocops/text: Add autocorrection for the interpolated bin audit
- sbom: don't store runtime dependencies when bottling
- Add vscode Ruby LSP config
- rubocops/shared/url_helper: fix url audit
- rubocops/shared/url_helper: update url audit
- docs: Update find-appcast command
- More VS Code improvements
- Portable Ruby 3.3.4_1
- upgrade: fix missed upgrades when an alias is changed to a formula
- debrew/irb: fix errors under Ruby 3.3
- shellenv: fix MANPATH and INFOPATH handling for [t]csh
- shims/super/cc: pass -ld_classic if needed for -dead_strip_dylibs
- dev-cmd/dispatch-build-bottle: add missing require
- utils/analytics: improve accuracy of GitHub Packages download counts
- rubocops/text: Allow bin interpolation inside word arrays
- Formula-Cookbook: Stop recommending rm_f in postinstall
- rubocops/lines: audit std_npm_args


Homebrew 4.3.12
- resource_auditor: normalize PyPI names to kebab case before auditing
- attestation: remove gh version detection
- Fix GitHub API credential encoding errors


Homebrew 4.3.11
- shellenv: prepend colon to MANPATH if set
- Introduce UnpackStrategyType
- livecheck: finish expanding typed: strict
- Use struct for #audit_formula args
- dev-cmd/bump-formula-pr: Fix fetch_resource_and_forced_version types
- context: fix original context not being restored
- cask/dsl/caveats: allow for simulated system checks in rosetta caveat
- docker: revert back linuxbrew's UID to 1000
- Assume the --greedy flag for brew outdated when HOMEBREW_UPGRADE_GREEDY is set
- cmd/shellenv.sh: handle undefined MANPATH and set -eu.
- cli/named_args: raise priority of core casks
- sorbet: Make more files (that have public APIs defined in them) typed: strict
- test/dev-cmd/bottle: Mark the bottling test as needs_network
- unpack_strategy/dmg: Convert to Sorbet typed: strict
- formula_assertions: Fix type of cmd param in shell_output
- Add cask install receipts
- workflows: pin actions
- Use Downloadable API in FromBottleLoader.
- Restrict direct url installs to the file:// scheme
- Portable Ruby 3.3.4
- workflows/vendor-gems: handle input string more robustly
- attestations: widen the beta
- attestation: don't dupe stderr
- Don't allow special characters in sandbox rule paths
- curl_spec: remove no-op Marshal use
- formula_installer: skip attestations on local_bottle_path
- feat: do not use existing sudo authentication in brew commands
- Deny file mode changes outside of specified paths in sandbox
- Create Resource::BottleManifest.
- attestation: allow disabling verification.
- attestation: only enable for developers outside CI
- Rearrange requires
- Remove maintainers.json
- bump: add utils/repology require
- workflows/vendor-gem: remove use of pull_request target.
- Port brew help (without arguments) to Bash
- Widen attestation verification rollout
- Port brew --repository to Bash
- global: fix require order.
- vendor_gems: require utils/git
- cmd/--repository: improve tap name error checking
- pypi: allow universal wheels as resources
- sandbox: deny signal to other processes
- brew.sh: speed up brew --help, brew -h, etc.
- workflows/tests: enable attestations
- utils/analytics: strip out more data.
- Output disable date for deprecated packages
- global: more require ordering fixes.
- Require utils/backtrace when install fails to load formula
- Make ignore_interrupts thread-safe.
- dev-cmd/bottle: add missing require.
- dev-cmd/pr-publish: add missing require
- brew bump: do not call repology by default
- attestation: improve error message when gh is too old
- brew.sh: fix nested developer command detection
- dev-cmd/update-test: fix dev channel testing
- dev-cmd/bump-formula-pr: fix missing require
- cmd/tap: add missing require
- utils/pypi: add missing import
- Add stub Ruby commands for all Bash commands.
- formula: add require utils/gzip
- formula: require utils/git_repository
- Revert "sandbox: deny signal to other processes"
- cask/info: fix installed size reporting
- Have tap_git_head return nil when no tap is installed
- Add ShellCommand module for shell command stubs
- brew bump: cleanup and improve --eval-all handling
- formula: fix missing require
- cask/audit: handle cask_min_os is nil
- utils/analytics: fix handling of newlines
- Add utils/backtrace requires
- formula_assertions: Fix pipe_output type sig
- dev-cmd/pr-automerge: add missing require
- Fix UID handling with cask installer script:
- download_strategy: fix UID handling for Git submodules
- attestation: avoid touching working directory
- Ensure early installation of gh for attestations
- FormulaURILoader: use regex to validate refs before attempting to cast
- Formula-Cookbook: add std_*_args explanations
- Update How-To-Open-a-Homebrew-Pull-Request.md: add links to Manpage
- dependency: fix missed upgrades when an alias is changed to a formula
- attestation: handle bad configurations better
- attestation: fix comment
- Update Brew-Livecheck.md: add examples for modify version information
- Fix missing requires for tap-info command
- Add missing_formula require to Homebrew::CLI::NamedArgs
- contributions, github: add missing requires, fix type errors
- Avoid frozen array errors in brew upgrade
- Add better "--quiet" support to cask upgrade
- resource_auditor: add missing require
- download_strategy: fix handling of Apache projects moved to Attic
- attestation: only fallback to backfill on 404
- cmd/update: silence git advice where possible
- system_command: fix EBADF on Ctrl+C
- Add env to disable Debrew
- cask/dsl/caveats: fix conditional
- sorbet: Bump more files to typed: strict
- cmd/--repository: fix homebrew- prefix handling
- version: loosen Debian orig tarball regex
- utils/github/api: handle systems with misconfigured NSS
- software_spec: remove confusing missing version error
- formula: add std_npm_args
- rubocops/text: Enforce bin/"formula" instead of "#{bin}/formula"
- Add env to disable finding packages from paths
- Interpolated shell_output("#{bin}/foo -v"), for example, is fine
- contributions, github: reorder requires
- cli/named_args: improve missing_formula requires.
- livecheck: remove unused require calls
- [livecheck] Help to check head only formulae
- bin/brew: do not exit on sudo errors for resetting timestamp
- Strategy#from_url: remove unused param
- formula: remove std_npm_args from system's pretty_args
- rubocops/lines: rustup-init -> rustup
- rubocops/lines: remove existing npm audit
- sbom: ensure Homebrew versions are more consistent.
- docs/Maintainer-Guidelines: tweak auto-merging.
- attestation: handle mirrored bottles correctly
- extend/kernel: add missing utils require.
- cask/installer: improve *_FORBIDDEN_* env handling.
- utils/github/api: Fix uninitialized constant Etc
- dev-cmd/contributions: Show only the CSV output for --csv
- unpack_strategy: update types
- rubocops/text: Allow all "#{bin}/foo" interpolated strings with spaces
- Revert "dev-cmd/contributions: Show only the CSV output for --csv"
- dev-cmd/release: add missing require


Homebrew 4.3.10
- docker: revert back linuxbrew's UID to 1000
- cli/named_args: raise priority of core casks
- utils/analytics: strip out more data.
- utils/analytics: fix handling of newlines
- dependency: fix missed upgrades when an alias is changed to a formula


Homebrew 4.3.9
- Load tap migration renames from api
- ci: improve Dockerfile to make proper use of build cache
- Use effective_arch for rustflags
- Use API for description searches
- Load tap migration renames from API with short names
- cask/audit: handle on_os range bounded by depends_on
- Remove broken opavote links
- rubocops/class: allow disabled formulae to be without a test block
- sorbet: Migrate dev-cmd files from typed: true to typed: strict
- extract: Log formula version
- dev-cmd/typecheck: Stop dry running Spoom sigil bumps
- sorbet: Tighten up dev-cmd types
- clear description cache if updated w/o EVAL_ALL
- dev-cmd/bump-formula-pr: formula_version should return Version not String
- Use cached json API file for formulae and cask specified paths
- livecheck: expand typed: strict usage
- Improve "unknown command" error
- extract: Fix missing '--git-revision' in the usage banner


Homebrew 4.3.8
- cmd/vendor-install: extract portable-ruby download info
- feat: use shared checks for URL cop
- cask/audit: ensure on_os blocks specify a min OS
- docs/Gems,-Eggs-and-Perl-Modules: fix typo.
- CurlDownloadStrategy: Ignore invalid last-modified header values
- feat: check if casks should warn about rosetta
- feat: check for unknown arch for casks
- autoremove: skip formulae where installed_on_request is nil
- Remove redundant early return in livecheck skip_conditions
- style: chdir before running rubocop
- cask/audit: filter bad artifacts in rosetta audit
- cask/audit: handle arch-specific detected min OS
- extract: Add the --git-revision argument


Homebrew 4.3.7
- Homebrew-Governance: Our 501(c)3 is empty
- Revert "Use cp -c when copying files"
- utils/gems: handle mismatching EUID and UID for bundle installs
- bottle/github_packages: include path_exec_files, all_files.
- Revert "bottle/github_packages: include path_exec_files, all_files."
- Remove non-Portable Ruby bootsnap support
- bottle/github_packages: include path_exec_files
- dev-cmd/extract: trim version to only digits/decimals for class & file names
- cask: ignore minimum macOS in on_os blocks for variations
- dev-cmd/tap-new: add macos-14
- formula_auditor: scope eol check to core tap
- cask/audit: support on_os blocks in audit_min_os
- formula_installer: fix gh bootstrap cycle


Homebrew 4.3.6
- diagnostic: don't show cask taps with no casks
- workflows/docs: various tweaks
- diagnostic: fix cask taps doctor output
- workflows/docs: allow reading GitHub Pages
- docs: more workflow improvements
- rubocop: remove SpecFilePathSuffix
- version: enable strict typing
- Fix ZDOTDIR environment variable not being read
- Use cp -c when copying files
- docs: fix brew style
- brew tab: new command for editing tab information
- Fix brew style path checking
- Fix/reenable brew style docs
- cmd/setup-ruby: fix Portable Ruby install failing
- Portable Ruby 3.3.3
- Portable Ruby cleanup/fixes
- pkg: adjust setting permissions
- vendor-install: fix incorrect portable Ruby version reference
- style: reject *.sh directories
- autoremove: don't remove formulae that were built from source
- Ignore runner labels in actionlint
- cask: fix trash.swift under Xcode 16
- Fix spelling; Github -> GitHub
- Cask::Audit: Align user agents with livecheck
- bottle/github_packages: include path_exec_files, all_files
- Revert "bottle/github_packages: include path_exec_files, all_files."
- feat: add shared checks for casks and formulae


Homebrew 4.3.5
- Preliminary macOS 15 (Sequoia) support
- cmd/list: new fix for exit code when supplied both a cask and formula
- tap: fix failing documentation linting.
- github/workflows: split RubyDoc CI job


Homebrew 4.3.3
- Audit: disable OSDN urls
- github_runner_matrix: define timeout values in constants
- style: run actionlint
- cask/audit: Rework tmpdir removal
- dev-cmd/contributions: Fix the date range behaviour
- formula_auditor: add exemption for nghttp2
- cask/audit: fix nested container extraction
- os/mac: fix fetching Linux bottles on macOS
- Output GitHub warning/error annotations to stderr
- dev-cmd/bump*: improve autobump messaging
- Portable Ruby 3.3.2
- Remove unnecessary use of T.cast
- dev-cmd/contributions: ‘Coauthorship’ sounds weird
- Fix constructing search query strings with date ranges
- Make more files Sorbet typed: strict
- Make brew typecheck --update --suggest-typed bump strictness further


Homebrew 4.3.2
- build(deps): bump ruby/setup-ruby from 1.176.0 to 1.177.0
- Add support for Vernier profiler
- rubocops/shared/desc_helper: fix autocorrect infinite loop
- docs: clarify upstream taps
- cask/audit: update signing checks for app, binary, and pkg
- dev-cmd/vendor-gems: run bundle clean
- Include more Ruby metadata files
- livecheck/strategy: verify --fail-with-body support
- Clean up cask audit tmpdir after use
- dependabot.yml: consistency updates
- Revert "Enable HOMEBREW_AUTOREMOVE by autoremove_default"
- fix: allow not validating SBOM
- Revert "Revert "Enable HOMEBREW_AUTOREMOVE by autoremove_default""
- sbom: fix dependency bottle information in SBOM


Homebrew 4.3.1
- Add Ubuntu 24.04 Docker image
- messages: enable strict typing
- brew.sh: cache HOMEBREW_VERSION on disk.
- Added a list of extensions to pre-install in Codespaces
- Add HOMEBREW_ARTIFACT_DOMAIN_NO_FALLBACK
- attestation: redact secret in environment
- utils/gems: use HOMEBREW_CACHE for bundler cache.
- linkage_checker: remove gcc from @indirect_deps on Linux
- utils/gems: handle undefined HOMEBREW_CACHE.
- cask/audit: fix sharding for font-* casks
- docs: update for Homebrew/cask-fonts deprecation
- feat: note that Homebrew does not have a sandbox on Linux
- Portable Ruby 3.3.1
- Speed up brew list
- extend/pathname/rmtree: improve comment.
- Hide default gems warnings for Ruby 3.4.
- rubocop: target Ruby 3.3.
- Dockerfile: drop libz-dev
- utils/gems: use BUNDLE_USER_CACHE instead of BUNDLE_CACHE_PATH.
- env_config: add HOMEBREW_BUNDLE_USER_CACHE.
- formula: trap CMake FetchContent usage instead of using FETCHCONTENT_FULLY_DISCONNECTED
- attestation: drop workflow check on core attestation
- utils/shell: add + to safe shell characters
- Add necesarry --force to tap instructions
- extend/pathname: import rmtree again.
- SBOM: various fixes


Homebrew 4.3.0
- env_config: add HOMEBREW_ALLOWED_TAPS
- cask/audit: tune sourceforge.net URL regex
- brew.sh: shift -v to the end of the parameter list earlier
- tap: allow/forbid installation of taps from environment variables
- Homebrew 4.3.0 deprecation/disable/removals
- feat: add generated SPDX file on bottling
- caveats_spec: remove outdated plist_startup reference
- tap: update core tap --force messaging
- extract_plist: fix passing an alternative url
- Fix cask source file path loading issues
- cmd/update.sh: check initial branch is not master
- utils/github/api: use real UID for auth fetching
- SBOM improvements
- extend/kernel: make opoo/odie/etc. print GitHub Actions notes
- github_runner_matrix: support orchestrator long build queues
- formula_installer: don't fire cask warnings when installing
- Enable HOMEBREW_AUTOREMOVE by default
- dev-cmd/tap-new: add Brewfile documentation to readme template
- fix no autoremove suggestion typo
- Revert "Create '.keepme' files in directories"
- extend/kernel: add sigs to opoo/onoe/ofail
- docs/Installation: Use the documented --strip-components tar argument
- Support font sharding in Homebrew/cask
- github_runner_matrix: add -x86_64 to Intel runner names
- fix: use UTC for all SBOM times
- tap: adjust font cask path
- SBOM: more fixes.
- formula: this was nilable before so remove it
- various: fix minor typos
- docs: add local build instructions


Homebrew 4.2.21
- Document Tab.for_keg and use Keg#tab where possible
- shims/super/cc: avoid passing -oso_prefix during configure
- startup/bootsnap: raise repeated LoadError
- fix: Display a warning (instead of exiting early) when unable to find recent issues on a tap
- brew.sh: auto-update 3rd-party taps more often
- Cookbook document what Operation not permitted means
- install-bundler-gems: change_privilege when necessary
- Remove disabled extend
- Various improvements for brew command
- Call Homebrew.install_bundler_gems! more consistently
- Optimise more command handling/speed
- Remove the signing workflow for backfill attestation checks
- brew.sh: fix argument handling for a few commands
- New formula internal json v3 dependencies format
- Warn about undocumented non-private APIs
- cmd/leaves: fix an undefined method error
- Fix internal formula json v3 frozen hash parsing bug
- compilers: add gcc-14
- Library/Homebrew: move stdin ruby scripts to files under utils
- homebrew/cask-versions: remove
- docs: update for Homebrew/cask-versions deprecation
- Cask-Cookbook: remove outdated URL
- various: remove remaining Homebrew/cask-versions references
- formula: fix missing test resources
- dev-cmd/tests: skip tests that require core if it's not tapped
- docs/cask-cookbook: token examples for versioned/development casks
- Pypi: Update strategy regex
- cmd/generate-cask-api: include cask renames
- tap: tweak core tap warning
- attestations: improve authentication techniques
- Add resource signature.
- Replace FormulaTextAuditor usage


Homebrew 4.2.20
- cmd/deps: add --os and --arch
- Create individually namespace args for each command
- Explicitly mark non-private APIs.
- Support for opt-in network isolation in build/test sandboxes
- cmd/list: support listing formulae installed on request or automatically
- Revert "formula: configure git/npm to ignore .brew_home"
- Explicitly mark non-public APIs.
- utils/github: paginate artifact API result
- Revert "Revert "os/linux/elf: avoid using ldd for listing dynamic dependencies""
- Update External-Commands docs for new command abstraction
- extend/ENV/super: avoid adding llvm to HOMEBREW_LIBRARY_PATHS
- Reapply "formula: configure git/npm to ignore .brew_home"
- sandbox: enable strict typing
- feat: add audit for wayback machine URLs
- analytics: support command and test-bot analytics.
- os/linux/kernel: enable strict typing
- checksum: enable strict typing
- cmd/*-sync: avoid clobbering existing user installations
- Remove unused private method.
- Hide #inspect and #to_s in docs.
- utils/analytics: cleanup test-bot analytics.
- utils/analytics: revert a test-bot analytics change.
- Make documentation @api private by default.
- elf: expand $ORIGIN in RUNPATH/RPATH entries
- utils/gzip: enable strict typing
- utils/backtrace: enable strict typing


Homebrew 4.2.19
- os/linux/elf: avoid using ldd for listing dynamic dependencies
- docs(Python): reapply suggestions and update outdated info
- language/python: order args for virtualenv_install_with_resources
- workflow/docs.yml: pin setup-ruby action
- keg: comment to odeprecated some Python 2 related methods
- docs/Installation: use HEAD similar to install repo README.md
- Revert "os/linux/elf: avoid using ldd for listing dynamic dependencies"
- pr-pull: support globbing artifacts
- rubocops/cask/array_alphabetization: skip blank lines when sorting
- Bye byebug, hi debug!
- Only brew desc --search needs --eval-all
- ensure_executable!: add opt_bin path to search
- dev-cmd/tap-new: various improvements
- formula: configure git/npm to ignore .brew_home
- download_strategy: add ssh://git scheme for git download strategy
- Enable strict typing in CLI::Parser


Homebrew 4.2.18
- github_runner_matrix: support GitHub-hosted M1 macOS runners
- cmd/help: add description and arguments
- dev-cmd/bump-cask-pr: use FromContentLoader when relevant
- Add more HOMEBREW_FORBIDDEN_* configuration
- Prefer numbered block params over proc conversion, cont'd
- Allow --display-times with --cask
- cmd/log: various fixes
- dev-cmd/generate-*-api: ensure title is a string
- docs: update examples of good commit summaries
- docs: improve, define Python library exception list
- docs: clarify pull request review guidelines
- package/scripts/postinstall: avoid writing to ~/.gitconfig
- keg: mkpath on main postgresql@X directories
- dev-cmd/tests: fix when euid != uid
- Publish 2024 AGM minutes summary
- Alphabetize EnvConfig::ENVS
- formula: add FETCHCONTENT_FULLY_DISCONNECTED to std_cmake_args
- attestation: add initial attestation helpers, integrate into brew install
- cmd, cask: info prints whether installed
- github_runner_matrix: increase timeout for self-hosted 12-x86_64


Homebrew 4.2.17
- service: allow Pathname in array for #run
- Docs: Use SVG logo in header
- Port remaining commands to use AbstractCommand
- Make more token types work as $HOMEBREW_GITHUB_API_TOKEN
- cask/audit: always enable codesign audit for casks
- deprecate_disable: add unsigned reason
- Clean up args_parse tests
- Revert "cask/audit: always enable codesign audit for casks"
- brew.rb: tell more people to not report issues
- Enable RSpec/DescribeClass
- cmd/untap: move module methods back into the cmd
- brew.rb: improve no auto-update exception handling
- dev-cmd/typecheck: use EUID with sorbet
- dev-cmd/bump: unconditionally skip Repology queries for now
- brew.rb: restore old runtime error handling
- Restrict AbstractCommand test to commands in repo
- Add IRB H = Homebrew alias
- rubocops/resource_requires_dependencies: allow lxml build resource
- rubocops/resource_requires_dependencies: check sym_type?
- manpages: move requires after install_bundler_gems!
- docs: update info as linux-only labels are automerged


Homebrew 4.2.16
- formula_cellar_checks: add more types
- bump-*-pr: handle HOMEBREW_NO_GITHUB_API=1 being set
- formula_cellar_checks: fix type from #16946
- formula_installer: handle nil runtime dependencies
- Support bash in privileged mode
- Avoid writable_real?
- unpack_strategy: allow unpacking .crate (as a gzipped tar)
- deprecate_disable: add cask deprecation reason
- Output version upgrade info using puts
- docs: move test-only resource into test block
- Fix setup-ruby/rubocop issues when euid != uid
- dev-cmd/bump*: limit the number of open PRs to 15.
- keg: mkpath while linking {include,lib,share}/postgresql@X
- Sort kegs based on version scheme
- Convert the utils/tty RBI generator to a Tapioca compiler
- Convert the EnvConfig RBI generator to a Tapioca compiler
- tap-info cmd: skip untapped core taps
- Enable and fix RSpec/DescribedClassModuleWrapping
- make fine-grained PATs work as $HOMEBREW_GITHUB_API_TOKEN
- cleanup: fix various cases where cache wasn't being removed properly
- Begin porting non-dev commands to use AbstractCommand
- cleanup: remove broken symlink for uninstalled migrated Casks
- rm unused OutputAsTTY helper
- shims/mac/super/m4: use gm4 if missing m4 (e.g. Xcode 15.3 CLT)
- keg: update sorting by version logic
- livecheck: Add ExtractPlist skip to SkipConditions
- tests: remove unnecessary cache clearing
- unpack_strategy/dmg: fix permissions when needed.
- language/*: enable typed: strict
- formula_auditor: check livecheck throttle
- go_resource deprecation comments
- cleanup: handle some edge cases
- cask/utils: quieten down when fixing permissions fails


Homebrew 4.2.15
- utils/pypi: allow overwriting resource patches
- dev-cmd/create: add types
- Include .rbi shims in yard docs
- Remove and refactor rspec-its use
- dev-cmd/bump-formula-pr: replace partial version in URL
- cask/artifact/moved: fix permission handling when removing directories
- Provide interface and individual namespaces for brew CLI commands
- Fix flaky Tapioca::Compilers::Args test
- Remove BrewTestBot critical approval process
- test/utils/github_spec: filter further to fix test failure
- Fix cask source checksum handling
- bump-formula-pr: fix type of detected version
- dev-cmd/bump: handle no formula tap case
- rubocops/service: allow require_root to be used without run
- Convert some dev commands to use AbstractCommand
- Formula Cookbook: Enrich the Service block methods section
- Fix nil repositories in dev-cmd bump
- Prevent unexpected network calls in tests
- formula_auditor: audit redis relicense
- livecheck: add --extract-plist
- rubocops/service_spec: update test for name and require root
- livecheck: support throttle DSL
- test/abstract_command_spec: rename cat to fix completions test
- Fix typo'd command class name
- rubocops/livecheck: Rework LivecheckUrlProvided
- Convert next batch of dev commands to use AbstractCommand
- Convert remaining dev commands to use AbstractCommand
- formula_cellar_checks: more granular mismatched_binary_allowlist


Homebrew 4.2.14
- cask/artifact/moved: fix permission handling when removing directories
- Fix cask source checksum handling
- test/utils/github_spec: filter further to fix test failure


Homebrew 4.2.13
- Replace ronn with Kramdown's converter
- Various brew update behaviour improvements
- cleanup: track removed links & dirs during dry-run
- docs: remove some system Python notes
- Memoize installed tap loading v2
- Reproducible builds for native compiled binaries
- Actually remove FromDefaultNameLoader
- cask: always return short cask tokens from core cask tap
- Fix untap cmd bugs
- brew.sh: fix autoupdate not working correctly for bump commands
- diagnostic: use FromTapLoader to check 3rd-party formula
- formula: remove setting up home for python 2.7
- Add GitHub Actions warning/error annotations for deprecations/disables
- cask/artifact: check the bundle version when using --adopt
- cmd/update-reset: use stable tag
- Add tapioca compiler for Homebrew::CLI::Args
- utils/github: use GraphQL PR searching
- dev-cmd/bump: skip Repology checks in CI for livecheckables
- utils/github: fix variable scope


Homebrew 4.2.12
- Simplify Tap#remote_repo
- utils/pypi: ignore test resources when counting matches
- Simplify Tap#custom_remote?
- Actually cache Tap methods
- Add type signatures for TapConfig
- Prefer numbered block params over proc conversion
- formula_auditor: also use tag when checking GitHub license
- Simplify Tap#alias_table
- Scope sponsors-maintainers-man-completions.yml to master branch
- homebrew/autoupdate is no longer official
- dev-cmd/bump: add --tap= flag
- utils/pypi: default to formula version when using package_name
- Add type signature for Tap::fetch
- Make Tap::new private
- Don't store tap config when value is unknown
- cask: read bundle version from Info.plist when sensible
- dev-cmd/bump: skip autobump formulae & casks
- Don't warn while checking for conflicting casks
- Remove FromDefaultNameLoader to avoid warning twice
- Apply 'chmod -x' to executables without shebangs
- Import Homebrew governance changes from private repository
- Simplify TapConfig
- dev-cmd/bump: change args type to CLI::Args
- Actually clear all tap caches
- utils/analytics: general cleanup
- formula: update bottle :unneeded comment
- dev-cmd/generate-cask-api: start generating cask internal JSON v3
- rubocop: default hash syntax
- cleaner: remove pip direct_url.json
- Add support for the --overwrite flag to brew upgrade to govern the keg-linking step
- Emit more specific error text on outdated Xcode
- actionlint.yaml: remove workaround for macos-14
- cleaner: remove RECORD and modify INSTALLER
- cask/audit: allow @ for versioned casks
- cleaner: add types


Homebrew 4.2.11
- rubocop: Fix remaining TODOs for triaging Ruby 3 cops
- deprecate_disable: add no_longer_meets_criteria deprecate/disable reason
- Use HOMEBREW_TEMP more universally
- utils/github: support HOMEBREW_GITHUB_API_TOKEN with --no-fork
- cachable: make sure to clear caches between tests
- Rename Tap#repo_var to Tap#repo_var_suffix.
- formula_audit: Check the license(s) of the specific release
- test: clear tap instance caches between test runs again
- livecheck/strategy: fix **unused type
- Load internal json v3
- Only show installed taps in brew tap output.
- dev-cmd/bump: hide version syncing when empty list
- utils/pypi: allow only updating extra_packages
- internal json v3: parse ruby source checksum correctly
- docs: update info on setuptools for Python 3.12
- Remove ability to skip the duplicate PR check in autobump
- Simplify Tap#cask_files_by_name
- Simplify Tap#formula_files_by_name
- Fix loading casks/formulae from relative paths
- Clear cache for Tap#formula_reverse_renames
- Add signature for Tap#config
- Actually return super in CoreTap#remote
- Rename Tap#reverse_cask_renames to Tap#cask_reverse_renames
- bump-formula|cask-pr: do not allow to bump autobumped packages
- docs: update language on commit messages & notability
- tap: fix performance regression in *_files_by_name
- tap: revert caching Tap.reverse_tap_migrations_renames
- package: improve shellenv instructions
- .gitignore: Be more lenient with the unignore of Library
- utils/pypi: specify dependencies needed to update resources
- tap: move synced_versions_formulae.json from formula_auditor
- cask/quarantine: avoid xcrun when executing Swift
- language/python: add types


Homebrew 4.2.10
- Move tapioca args to config; exclude unnecessary gems
- audit: cleanup easy-install check
- Fix rubocop .rbi exclusion
- Common-Issues: Documents resolving dual installations from Migration Assistant copies
- fix: use recommended way of updating Fish shell $PATH
- formula_creator: remove ENV.deparallelize suggestion
- Modernize RSpec configuration
- Remove redirection for default prefixes
- devcontainer: fix creation error
- Finalize methods that do not support overrides
- rubocop: Formulae with the "lxml" resource have required dependencies
- Remove CaskLoader::tap_paths.
- rubocop: The pyyaml resource requires depends_on "libyaml"
- Support Tap#formula_files when using API
- Support Tap#cask_files when using API
- Clean up Tap#ensure_installed! usage
- [brew audit] fix "Incorrect file permissions" message
- test: prune test deps of dependencies
- utils/pypi: use python from formula for non-pypi url metadata
- Make Tap::each respect the API and clear all tap caches before each test
- Reapply "Refactor Formulary::loader_for."
- Fix tap constants.
- Pass warn in FromNameLoader.
- Generalise internal cross-image handling
- docs/New-Maintainer-Checklist: tell people to avoid forks
- workflows/tests: fix codecov reporting after v4
- dev-cmd/bump: add --no-fork switch
- strategy#page_content: allow cURL to --fail-with-body
- deprecate_disable: add cask deprecate/disable reasons


Homebrew 4.2.9
- Simplify CaskLoader further
- update.sh: parse GitHub API token from repository URL
- test/cask/upgrade_spec: remove flaky specs
- completions: improve list of available services and outdated checks
- Allow tap migrations with renames
- Refactor and add type signature for uses_from_macos
- Fix syntax of brew audit call
- Fix cask migration warnings
- Acceptable-Formulae: update static library guidance
- Update Acceptable/Deprecating/Forks/Versions docs
- docs: improve Python docs, add section about PEP 668
- docs: modernize BrewTestBot info for maintainers
- Refactor Formulary::loader_for
- docs: rename homebrew-core maintainer guide
- docs: Brew Test Bot -> BrewTestBot
- docs: redirect from old BrewTestBot URLs
- Fix duplicate quotes in dependency audit
- dev-cmd/bump*: do not allow forcing multiple PRs
- Ask to use HOMEBREW_NO_INSTALL_FROM_API=1 for audit
- formula_creator: Remove unused GitHub property
- Fix flaky CaskDependent tests
- Fix flaky Formulary test
- formula_creator: Fix GitHub parsing when name doesn't match URL
- Revert "Refactor Formulary::loader_for."
- formula_creator: ENV.deparallelize is only for autotools
- Fix Tap#alias_table when using the API
- Fix API::tap_from_source_download for relative paths
- formulary_spec: update API tests to avoid mocking


Homebrew 4.2.8
- Delete ancient 'managing PRs' flowchart
- Handle tap migrations in CaskLoader
- Revert "Handle tap migrations in CaskLoader."
- workflows/tests: remove brew cleanup --prune-prefix
- Refactor CaskLoader::for
- Refactor rename/migration handling in Formulary
- Fix loading aliases from API
- Don't require "branch: main" for resources with revisions set
- Remove unused methods
- More CaskLoader improvements
- Audit taps for duplicates in aliases/renames
- Improved the GitHub link that is generated when the required scope of the token has mismatched with the present scope
- Avoid T.must
- Stop following recursive tap migrations
- rubocops/cask: add a cop for specific numbered shared file list files
- Simplify tests.
- Fix support of formulae aliases in taps
- Cookbook: the deleted → be deleted
- Remove use of hidden-definitions
- Include all test paths in RSpec cops
- Livecheck: Add Crate strategy
- fix: fail if superfluous packages are excluded
- Improve user ergonomics of brew link --overwrite


Homebrew 4.2.7
- rubocop: order uninstall/zap methods
- Replace Time refinement with Timer Util
- Vendor remaining Rails cops, remove ActiveSupport
- Fixes openjdk_dep_name_if_applicable when not using CurlGitHubPackagesDownloadStrategy
- Require SystemCommand only where needed
- Add missing SystemCommand::Mixin to fix CI
- Fix mechanize vendoring; add RBI defs
- Add SystemCommand::Mixin to all commands using system_command
- Point corporate donors toward our OC contact form
- Add additional require support to tapioca
- rubocop: Try out rubocop-md for linting the code in our docs
- rubocop: exclude more tap files from the top-level method cop
- Replace “QuickLook” with “Quick Look”
- workflows: use macos-14 runner.
- workflows/pkg-installer: use macOS 14 ARM64 worker
- docs & audits: text output improvements
- Replace “QuickLook” with “Quick Look”
- Next gen api formula json v3
- Homebrew-Governance: import PLC-approved changes


Homebrew 4.2.6
- Remove ActiveSupport from runtime
- cmd/upgrade: rename arg to installed_formula/cask
- Add a new RuboCop for alphabetizing zap trash array elements
- docs: use --eval-all with brew info
- Add option to retain tmpdir on pr-pull
- dev-cmd/bump: Point out if formulae should be kept in sync with others
- docs: drop example that requires --eval-all
- Remove some fixed FIXMEs
- Enable Style/TopLevelMethodDefinition


Homebrew 4.2.5
- Add some specifics on gems (and maybe pips)
- rubocops/components_redundancy: stable/head block removal
- docs: remove OpenSSL keg_only information
- extend/ENV/shared: effective_arch as public API
- rubocop: The sorbet/rbi/todo.rbi file doesn't exist
- chore: add audit to check if an EOL is known
- cmd/vendor-install: undocumented option to allow setting processor.
- cmd/vendor-install: fix some elses.
- Fix "OS is not a class" crash on Ubuntu 23.10
- hardware/cpu: add virtualized? check
- cmd/vendor-install: adjust wording
- github_runner_matrix: discontinue non-ephemeral runners
- dependabot.yml: group actions/*-artifact
- Fix RuboCop Style/ArrayIntersect offenses
- Fix RuboCop Style/RedundantFreeze offenses
- cmd/update-report: adjust installfromapimessage.
- ci/codeql: In-line the paths-ignore config
- docs/Maintainer-Guide: Fix BuildPulse links
- Add ~/Library/Containers to the list of Layout/LineLength exclusions
- Remove canonical_segments check
- cask/uninstall: skip quit/signal directives when upgrading or reinstalling
- dev-cmd/bump: Don't fall over when retrieving PRs 404s


Homebrew 4.2.4
- dev-cmd/tests: Add profile option
- Remove ActiveSupport String#indent core extension
- pypi: stop excluding setuptools
- completions: ignore errors on cask list generation
- cmd/*env-sync: use *ENV_ROOT
- docs/Homebrew-Governance: import changes
- Introduce Formulary platform cache
- formulary: allow for more keyless fields when loading from API
- api: use freeze option for JSON parsing
- Patch new cask documentation
- Improve working directory error messages
- brew: clarify which user needs to be able to read the working directory
- formula_auditor: split audit_revision_and_version_scheme
- Add a new path in sandbox for Xcode
- various: fix miscellaneous typos
- package/scripts/postinstall: fix permissions of opt


Homebrew 4.2.3
- Add consistent path validation
- API: Load casks/formula from JSON with missing keys
- dependency: cleanup unused code
- build: fix bad modify_build_environment call
- Remove ActiveSupport String filters
- Homebrew-on-Linux.md: switch to pacman -S
- test/hardware/cpu_spec: add M3 values
- Split https_availability audit.
- cmd/audit: fix type error in cask livecheck url audit


Homebrew 4.2.2
- audit: fix formula path
- Remove irrelevant Rails cops
- Fix Sorbet/TrueSigil exclusion
- Some minor regexp matching perf improvements
- os/mac/hardware/cpu: update M3 values
- formula_creator: keep std_configure_args
- utils/pypi: use python from formula
- update-python-resources: show pip install failure when --verbose
- rubocops/uses_from_macos: audit when depends_on :linux
- os/mac/pkgconfig/14: update for 14.2
- Create dedicated Attrable mixin for attr_ methods


Homebrew 4.2.1
- update brew audit params in docs
- cleaner: remove *.tbd
- Add deprecate! and disable! to cask docs
- Create rubocop requiring deprecate! over discontinued for casks
- rubocops/lines: consistency with single non-runtime Python
- formula_auditor: split out checksum check
- formula: allow changing std_configure_args prefix
- cask/artifact/abstract_uninstall: handle signal failures
- sudo: Prioritize sudo_as_root over HOMEBREW_SUDO_THROUGH_SUDO_USER
- vscode/settings: update shellcheck
- rubocops/cask/on_system_conditionals: allow blocks
- feat: add "no public presence" as cask rejection reason
- formula_cellar_checks: detect cpuid in static libs
- cmd/config: Add core cask tap to output
- Fix Cask::Cask.all bug
- cmd/config: limit tap info output
- os/mac/xcode: add fast path for Xcode version detection
- os/mac/hardware: use Westmere on >= Ventura
- os/mac/xcode: support Xcode 15.1
- workflows/tests: add style caching
- docs: mention standard argument methods


Homebrew 4.2.0
- cmd/vendor-install: don't silence stderr
- Require Ruby 3.1
- Deprecate, disable & delete code for Homebrew 4.2.0
- dependency: disable renamed formula warning
- Improve fish completions of brew bundle
- Remove vendored Ruby 2.6 gems
- Sayonara Ruby 2.6
- docs: remove pip search recommendation
- Use native Hash#except, remove ActiveSupport
- Bump VENDOR_VERSION in gems.rb
- cmd/pin: Update pinned formula messaging
- Cask#full_name: properly output Homebrew org names
- cmd/untap: fix untapping syntax failure.
- cmd/untap: be more careful about formula tap.
- Fix style violations under newer RuboCop
- rubocop: Set TargetRubyVersion to 3.1 & disable all cops that fail
- Update all dependencies
- FormulaAuditor: Separate stable version audit
- Fix "an artifact with this name already exists on the workflow run"
- Fix new Style/MutableConstant RuboCop offenses for Ruby 3.1
- create: modify cask template
- Work around recent Akamai/Microsoft issues
- Add deprecate! and disable! to casks
- cmd/bump: indicate deprecated or skipped formulae/casks
- Re-add some discontinued? checks for casks


Homebrew 4.1.25
- docs: various tweaks
- Deprecate --new-formula/--new-cask options
- test: fix a couple failures on certain systems
- Partially support pour_bottle? in API
- utils/service: assume no service system during generic OS tests


Homebrew 4.1.24
- utils/svn_spec: change remote used in test
- create: Fix getting name from GitHub archives
- Lazy load Debrew (fixes setupterm error on some environments)


Homebrew 4.1.23
- Implement ActiveSupport's Object#blank? directly
- Bump VENDOR_VERSION in gems.rb
- Support the rc shell. Fixes #16264
- formula_creator: move initial CLI values into constructor
- dev-cmd/bump-cask-pr: fix --sha256
- doc/Installation: make clear the env configs are advanced settings
- bump-cask-pr: fix duplicate PR checking with comma versions
- workflows: move vendor version check to separate workflow
- utils/analytics: don't fail on invalid version
- Vendor Ruby 3.1 gems
- Enable Ruby 3 for all users
- Unset HOMEBREW_RUBY3 after updates
- Add M3 processors
- formula: fix specified_path for aliases without core tap
- Hack fix for Sorbet hidden definitions update failing on Ruby 3
- Gemfile: load REXML gem for brew bump
- cmd/update.sh: don't switch to master when updating to a tag
- unpack_strategy/zip: fix extraction issues on macOS without developer mode


Homebrew 4.1.22
- docs/Interesting-Taps-and-Forks: add apple/apple
- Dockerfile: fix default umask
- Enable Ruby 3 for HOMEBREW_DEVELOPER and the Docker image
- Dockerfile: set XDG_CACHE_HOME to fix umask in GitHub Actions
- brew.sh: set HOMEBREW_RUBY3 earlier
- workflows/vendor-gems: trial using GitHub App token
- Deprecate OS::Mac on Linux
- formula: add PIP_CACHE_DIR to build env
- formula_creator: Remove path attr to reduce code complexity
- brew.sh: always run test-bot under Ruby 3
- tap: don't display file info for uninstalled taps


Homebrew 4.1.21
- Refactor TapLoader to fix tap migrations with API
- Pass original tap to formula when loaded from the API via TapLoader
- ENV/shared: fix macOS code not applying under HOMEBREW_SORBET_RUNTIME
- dev-cmd/vendor-gems: fix creation of broken symlinks
- Don't reinstall dependency when latest already installed
- Gemfile.lock: restore missing platform
- dev-cmd/determine-test-runner: add --all-supported
- Use Sparkle sorting/filtering in #livecheck_min_os
- standalone/init: don't pollute environment on Ruby 3 startup
- dev-cmd/vendor-gems: workaround Dependabot removing lockfile platforms
- dev-cmd/vendor-gems: git add Gemfile.lock
- tap: optimise CoreTap#formula_files_by_name
- Xml: Add #element_text method


Homebrew 4.1.20
- cask/audit: add audit_min_os
- Fix TypeError when building from source with gcc compiler in some MacOS version
- Sorbet updates for compatibility with recent releases
- Remove use of ActiveSupport try
- workflows/docs: bump rubydoc test Ruby
- Support system Ruby 3 on Linux
- cmd/desc: fix handling of --eval-all with formulae
- cleanup: smarter gem handling
- cask/url headers parameter type fix
- utils/gems: improve behaviour (particularly with Ruby 3)
- utils/curl: fix Digest::SHA256 typo
- Store and use revision in tab runtime dependencies
- Improve coverage tracking


Homebrew 4.1.19
- fix-typo
- Sparkle: Surface more Item values
- system_command: fix potential issue of stderr not being read
- utils: Homebrew.system respect stderr
- Add a few environment variables important for editors
- README: change labeled to labelled for a consistent BE-style
- utils/gems: make .homebrew_gem_groups writing atomic
- dev-cmd/audit: fix for Ruby 3
- fix: changed "Twitter" to (Twitter)" in README.md description section
- cask: add installed_time to JSON output
- Manpage: update GitHub rate limit link
- [shell] Override CDPATH in brew script
- manpages: fix error under Ruby 3
- formula_auditor: handle nil tap
- tap: fix repair not working in some cases


Homebrew 4.1.18
- Implement equality functions for BottleSpecification
- dev-cmd/bump-cask-pr: replace url before downloading files
- audit(github): prefer /archive/refs/tags urls over /archive
- fix: ignore quarantine for linux cask download
- dev-cmd/pr-upload: fix gems not being installed with --upload-only
- cmd/setup-ruby.sh: add new command.
- standalone/init: skip initial gem install in child processes
- Portable Ruby 3.1.4 (opt-in beta)
- dev-cmd/bump-formula-pr: fix specs passing under Ruby 3
- dev-cmd: fix GitHub.workflow_dispatch_event kwarg calls
- extend/kernel: fix odisabled kwargs handling
- Pull in REXML gem as it doesn't ship with Ruby 3
- audit(github): also permit refs/heads in GitHub URLs
- use XDG_CACHE_HOME on Linux
- fix(docs): update fish completions command


Homebrew 4.1.17
- download_strategy: support Mercurial tags/branches
- dev-cmd/unbottled: add --lost option
- brew unbottled: skip deprecated
- formula_installer: pre-install implicit dependencies
- dependency_collector: fix caching of deps requiring brewed curl
- chore(global): update safari user-agent to latest
- cli/parser: rescue formula specification errors


Homebrew 4.1.16
- Tips-N'-Tricks: homebrew.man.conf for Terminal.app
- Improve odebug/SystemCommand debugging output.
- api: add using: attribute to head & stable URLs
- Adding GHA permission for GitHub Packages
- formulary: load from API for formula renames
- utils/gems: fix Sonoma compatibility check
- cmd/deps: show deps for head spec with --HEAD
- cmd/fetch: support retrying manifest downloads
- Add retries to some online audit checks


Homebrew 4.1.15
- cli/named_args: better handle name conflicts in #to_paths
- workflows/build-pkg: tweak some variables
- Fix markdown linter errors
- Improve building Homebrew*.pkg
- workflows/pkg-installer: fix filename
- download_strategy: fix mirrors not working
- Version: Improve date version parsing
- Revert "Version: Improve date version parsing"
- More Homebrew .pkg improvements
- rubocops/text: Declare "revision 0" in formulae as unnecessary
- standalone/bootsnap: relax restrictions
- Revert "standalone/bootsnap: relax restrictions"
- workflows/tests: split gem cache per OS version
- api: ignore HTTPS errors if minimum curl version isn't installed
- standalone/bootsnap: relax restrictions
- workflows: replace hub with gh
- Improve Mac package for enterprise install scenarios
- Improve Mac package for enterprise install scenarios
- docs: prefer placing shellenv command in rcfile rather than shell profile on Linux
- service: support multiple sockets in DSL
- cmd/fetch: restore --HEAD functionality
- cli/parser: depopulate commands' internal args lists
- Add missing permissions to actions publish
- Version: Improve date version parsing


Homebrew 4.1.14
- dev-cmd/edit: make the warning easier to read
- docs: update commit style guidelines
- manpage: note env files do not support expansion
- vendor/bundle/ruby: cleanup unneeded files
- dev-cmd/audit: load formulae from files
- dev-cmd/edit: Move path specific functions to Pathname
- rubocop: don't recommend minitest extension
- cli/parser: check env var directly if there's no EnvConfig method
- bin/brew: pass through some SSH/sudo env vars
- dev-cmd/unbottled: speed up dependent fetching
- cli/named_args: don't interpret --formula/--cask args as paths
- Further split up Gemfile into groups
- utils/gems: redirect bundler output to stderr
- Gemfile: fix pr_upload group typo
- service: support multiple sockets in DSL
- cli/named_args: expand paths in #to_paths
- Improve performance of Formula#to_hash
- Improve performance of brew readall
- readall: check hash generation works
- Revert "service: support multiple sockets in DSL"
- Install gems automatically on newer Ruby
- Test on Ruby 3.1
- Improve use of whoami
- Add HOMEBREW_SUDO_THROUGH_SUDO_USER
- fix eval (brew shellenv) from exiting with status 1 in fish


Homebrew 4.1.13
- cmd/readall: clean up todos
- utils/backtrace: scrub sorbet-runtime from backtrace
- Make Sonoma supported


Homebrew 4.1.12
- os/mac/pkgconfig: update for macOS 14 RC SDK
- docs/Rakefile: fix broken link
- Add an audit for mismatched Python resource and PyPi package names
- utils/shared_audits: handle 404 metadata errors from GitLab API
- Move gem group setting to separate, cacheable file
- Formula, BuildError: Update type signatures
- superenv: help gettext-based configure scripts
- utils/gems: don't allow Sorbet to install on Sonoma's system Ruby
- dev-cmd/bump: reduce unnecessary output
- formula: add global caching for declared_runtime_dependencies
- cmd/audit: improve performance of versioned formula names


Homebrew 4.1.11
- Improve cask audit
- missing_formula: remove sshpass from denylist
- Reset requirement cache (again) after recursive_dependencies.map(&:to_formula) invalidates singleton cache
- remove useless require from Formula
- formula_auditor: audit all relicensed HashiCorp formulae
- Speed up keg installation with fewer code-signing calls
- cmd/audit: only flush formulary cache when needed
- chore: update safari UA to the latest
- Docs: assorted refinements for output
- bump-cask-pr: deprecate online flag
- os/mac/keg: fix change_rpath type signature


Homebrew 4.1.10
- formula_installer: handle another exception in fetch_bottle_tab
- vendor/gems: remove bad symlink
- audit_file: check formula path
- Livecheck#preprocess_url: compare with URI host
- upgrade: more liberal formula upgrade changes
- utils/curl: include or use explicitly
- utils/github/artifacts: fix missing Utils::Curl reference
- Fix more missing Utils::Curl references
- formula_installer: don't ignore deps when fetching and pouring bottles
- Fix more Utils::Curl usage
- cmd/fetch & cmd/audit: handle unsupported cask os/arch combos
- Docs: more additions and improvements
- Audit invalid versions
- utils/github: fully scope curl usage
- Fix python: detected_python_shebang python pattern
- resource_auditor: relax version audit in taps
- cask/quarantine: sudo correctly during tests
- terraform: add audit for relicensing


Homebrew 4.1.9
- formula_installer: don't ignore deps when fetching and pouring bottles


Homebrew 4.1.8
- dependency_collector: distinguish macOS deps by OS
- dependency: consider bounds when comparing macOS deps
- dependency_helpers: rework recursive dependency resolution
- cask/audit: format-check block URLs only if online
- cmd/deps: fix documentation and handling of formula_options
- dev-cmd/contributions: usability/performance improvements
- workflows/docs: Check for broken links using the existing rake test task
- Docs: localize FAQ images
- Docs: update test-bot images and description
- docs: Use Markdown automatic numbering in staging branch instructions
- remove ARGV from Formula#all
- docs: rework Cask-Cookbook to match current practice
- Enable Sorbet after running a developer command
- os/mac/hardware: remove TODO
- formula_auditor: make Linux-only GCC dep audit non-strict
- Handle nil cask urls caused by unsupported macOS version
- Cleanup various TODOs
- api: use Utils::Curl.curl_args
- Make formula upgrades more liberal based on bottle
- cask/url: accept Class for using in Cask::URL#initialize


Homebrew 4.1.7
- dev-cmd/prof: bleed less of the environment from gem installs
- utils/pypi: exclude deps of excluded packages
- api: ignore HTTPS errors if required certs aren't installed
- Use HOMEBREW_CURLRC in vendor-install
- workflows/tests: workaround GitHub Actions python issues.
- brew.sh: disable shellcheck warning
- formula: drop old pip feature flag
- shared_audits: allow GitHub's IP not permitted error
- docs: update formula and cask URLs to new sharded format
- get_repo_license: allow GitHub's IP not permitted error
- extend/os/mac/keg: codesign on Intel if invalid signature
- docs: use relative path for custom header images
- extend/os/linux/system_config: show glibc/gcc version for API users


Homebrew 4.1.6
- Turn up the types
- cmd/update-report: correctly handle added/deleted formulae/casks
- formula_{auditor,versions}: handle sharding
- formula_installer: use cached fetched formula instance when available
- node: add shebang rewriting
- Allow HOMEBREW_CURLRC to specify a path for curl --config
- brew.sh: don't set HOMEBREW_NO_INSTALL_FROM_API automatically
- formula_installer: improve a comment
- Document the policy on static libraries
- utils/gems: update to Bundler 2.4
- Livecheck: allow quiet output with --newer-only
- brew.sh: fix shellcheck warning
- service: correctly quote arguments
- cmd/update-report: improve tap/untap behaviour
- service: handle quoting in service file, too
- dev-cmd/livecheck: avoid watchlist in test
- Fix cask dependency discovery
- audit: check for cargo build only in install method
- dev-cmd/bottle: install gnu-tar before keg lock


Homebrew 4.1.5
- pypi: support updating resources for git clones
- formula: use pip's --no-compile
- keg_relocate: retain framework info in relocatable install names
- Allow hiding new/deleted formula/cask sections on update
- Formula Cookbook: revise download strategy docs
- Make inreplace a purely static method v2
- Formula Cookbook: expand environment variable section
- update_report: show "Delete and Installed" header
- tap: always create new casks in subdirectory
- formula_cop: fix style_exceptions_dir handling
- cask/audit: audit for appropriate sharding directory
- Fix cask sharding issues
- tests: install Subversion for macOS
- dev-cmd/tests: add --fail-fast
- Formula-Cookbook: expand terminology table
- os/mac/mach: fix rpath deletion of fat machos


Homebrew 4.1.4
- formula: suppress std args for cabal, meson, pip
- python: create venv's --without-pip
- workflows/build-pkg: install gh.
- Widen paths type in Formula#inreplace
- Allow configuring Homebrew with .env files
- Deprecate postgresql-upgrade-database
- Narrow member type of inreplace paths enumerable
- dev-cmd/edit: suggest tapping core repositories if untapped
- utils/repology: update API URL
- Make inreplace a purely static method
- package/Distribution: always require CLT
- Revert "Make inreplace a purely static method"
- development_tools: allow Symbols to be located
- bump: add arch-specific support
- formulary: fix type of alias_path
- bin/brew: handle missing $HOME
- Make more warnings quiet with environment hints disabled
- bottle: reproducibility fixes
- bin/brew: avoid eval and grep
- Various sharding fixes
- dev-cmd/bump : stop using API to load formulae/casks
- bin/brew: require HOME to be set
- os/mac/mach: avoid recursively resolving rpaths
- unversioned_cask_checker.rb - fix signature of KeyboardLayout
- cmd/bump: add --installed flag


Homebrew 4.1.3
- docs: add documentation for staging branches
- docs/Installation: document macOS .pkg installer
- extend/ENV/super: add ENV.O3
- Add/use HOMEBREW_INSTALL_FROM_API_UNSUPPORTED
- os/mac/mach: resolve rpaths too
- cmd/update: output more API information with --verbose
- workflows/build-pkg: actually try to install package
- keg_relocate: fix all text files being marked as changed
- brew update core/homebrew-cask taps properly
- post_install: improvements and fixes
- Improve VSCode extensions/settings
- docs: Fix GithubReleases strategy block example
- config: fallback to ::OS_VERSION
- package/resources: improve text output


Homebrew 4.1.2
- extend/os/mac/keg_relocate: improve rpath handling
- Fix type error when running 'brew doctor'
- docs: assume core repositories are untapped
- Add package signing configuration for GitHub Actions
- Add types to Formula attrs
- cmd/install: upgrade already installed casks
- cmd/install: add missing require.
- docs/vale-styles: fix configuration.
- bump-cask-pr: add arch-specific version support
- utils/pypi: fix an incorrect return type
- macOS .pkg improvements
- cask/url: accept Class for using.
- formula: fix std_cargo_args type error
- Implement ruby-macho TODOs
- [ImgBot] Optimize images
- pkg installer: install cached API data.
- brew.sh: don't set HOMEBREW_NO_INSTALL_FROM_API automatically.
- analytics: fix @ in formulae names with --github-packages-downloads#15766
- Revert "brew.sh: don't set HOMEBREW_NO_INSTALL_FROM_API automatically


Homebrew 4.1.1
- formula: add std_pip_args
- os/mac/keg_relocate: avoid rpath re-ordering
- Cask support multiple headers
- Enable HOMEBREW_SORBET_RUNTIME (sometimes)
- dev-cmd/pr-upload: fix typechecking error
- extend/ENV/super: correct deparallelize signature
- Fix inreplace sig
- Allow implicit String Pathname in gsub
- formula: fix typechecking error in std_cmake_args
- github_packages: ensure only OCI format is uploaded
- formula_creator: require version before creating
- formula: fix inreplace typechecking error
- utils/inreplace: fix typechecking error
- cmd/tap: ensure remote exists before repairing
- formula: fix std_pip_args with empty prefix
- dev-cmd/pr-pull: fix branch warning conditions
- Strict type string_inreplace_extension


Homebrew 4.1.0
- App Management message reflects new System Settings labels
- workflows: improve setup-homebrew and API usage
- Deprecate/disable/delete code
- cmd/update: adjustments for setup-homebrew in brew CI
- tap: fix handling of taps without formulae
- cmd/update-report: tweak messages for CI
- Enable GitHub.issues_for_formula to show only issues, only PRs, or both
- formula_auditor: fix macOS system dependency false positive
- livecheck: fix implicit no-api handling
- cmd/--cache: undeprecate --bottle-tag
- docs: Add info about tap creation
- mac/keg_relocate: use relative install names
- formula_auditor: check disabled formulae have disabled dependents
- shims/mac: handle usage of Homebrew make
- docs/Installation: fix Apple Developer account link
- shims/mac/super/make: use standard exec routines
- formula_auditor: disallow non-test rustup-init dependencies
- Support brew cleanup --quiet
- generate-*-api: fix on-disk tap migrations not being used
- Feature: support symlinked /home
- os/mac/mach: report duplicate rpaths
- docs/cask: replace single-quoted with double-quoted
- Corrects an uncaught spelling error
- os/mac/keg_relocate: replace Cellar references in rpaths
- rubocops/lines: simplify PyoxidizerCheck
- Introduce CoreCaskTap class and fix cases of core taps were being unnecessarily installed
- utils/analytics: hide InfluxDB message correctly
- docs: Requirements: add Arch Linux
- Do not insist on using macOS texinfo
- Fix (again) InfluxDB analytics messaging
- cmd/tap: remove --list-pinned option
- rubocops/lines: disallow quictls dependencies in homebrew/core
- diagnostic: don't complain about missing homebrew/cask
- docs/Installation: fix Mac OS X reference
- dev-cmd/bump-*-pr: avoid installing gems when unneeded
- Use HOMEBREW_CELLAR_PLACEHOLDER
- api_hashable: remove HOMEBREW_CELLAR
- dev-cmd/bump-cask-pr: fix install_bundler_gems! logic
- dev-cmd/generate-*-api: be a bit safer
- cmd/{casks,formulae}: handle sharding
- os/mac/keg_relocate: avoid changing to an already existing rpath
- docs/FAQ: tap homebrew/core before editing formula
- utils/analytics: new InfluxDB token
- utils/pypi: don't overwrite name/extras/version from basic_metadata if already set
- various: fix miscellaneous typos
- README.md: Normalise BuildPulse icon size
- README.md: Normalise 1Password icon size
- Fix type errors when HOMEBREW_SORBET_RUNTIME=1
- docs: add documentation about reproducible builds
- utils/github/api: fix credentials_type


Homebrew 4.0.29
- analytics: use new AWS based influxdb
- brew.sh: record OS version for non-debian linux


Homebrew 4.0.28
- dev-cmd/generate-*-api: generate tap migrations JSON
- Remove Tap#versioned_formula_files
- Download tap_migrations.json files from the API
- cmd/update-report: nudge people to tweak settings
- tap: warn if tapping core taps under API mode
- cmd/update-report: use api_auto_update_secs default


Homebrew 4.0.27
- cmd/update.sh: always move names*.txt files
- Include core formulae from API in Formula.all
- dependency: use formula name
- cmd/pyenv-sync: add new command
- test/utils/github_spec: fix artifact URL test
- cmd/postgresql-upgrade-database: fix brew not being found
- extend/ENV/super: set OPENSSL_NO_VENDOR
- PyPI: Handle non-pythonhosted formula URLs
- extend/ENV/super: add comment for OPENSSL_NO_VENDOR
- tap: disable fsmonitor for third-party taps
- Apply cpu-optimisation to Rust projects
- cmd/update: don't fetch core taps on manual brew update
- Refactor some dependency handling to fix various API dependency issues
- cmd/update: update homebrew/core and homebrew/cask with devcmdrun
- tap_auditor: fix API data getting mixed in
- dev-cmd/audit: don't audit every tap when given named packages


Homebrew 4.0.26
- formula_auditor: make OpenSSL audit exception generic
- Explain how to undo brew edit
- pr-publish: request a large runner for appropriately labelled PRs
- download_strategy: move HOMEBREW_ARTIFACT_DOMAIN


Homebrew 4.0.25
- rename Cask::outdated_versions
- github_packages: call ln with force
- formula_auditor: adjust deps audit for a staging branch
- remove cask's depencies from brew/leaves
- cmd/leaves: add missing cask dependency
- rubocops: add emoji audit
- Allow bump commands to auto-update core tap clones
- Significantly improve install speeds with smarter postinstall detection
- Better scoping for no-api commands
- Significantly improve fetch speed of bottles
- cmd/update.sh: fix some flags throwing errors on update report
- brew.sh: fix auto-update interval for dev-cmd users
- Migrate remaining no-api commands to new scoped system
- Fix error messages for brew edit and brew create
- Simplify CloudFlare header check.
- extend/pathname: fix text_executable? regex
- man: fix a literal newline
- bin/brew: remove HOMEBREW_NO_ENV_FILTERING


Homebrew 4.0.24
- cmd/info: add (undocumented) --github-packages-downloads option
- github_packages: create hard link instead of copying
- formula_installer: fix postinstall using incorrect formula file
- formula: fix variations not being generated for instance on_os usage
- diagnostic: ignore core tap install status unless no-api is enabled


Homebrew 4.0.23
- Remove Google Analytics


Homebrew 4.0.22
- dependencies_helpers: fix pruning of build/test deps
- shims/linux: add gnumake and gmake symlinks
- utils/gems: fix bundler sometimes unnecessarily reinstalling
- docs/config: remove jekyll-feed
- homebrew-cask-drivers: deprecate official tap
- formula_auditor: skip dependency conflict audit for OpenSSL migration<br&g