The Missing Package Manager app for macOS

Homebrew for Mac

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe

Homebrew for Mac

  -  4.1 MB  -  Open Source
  • Latest Version

    Homebrew 4.2.19 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

    brew-4.2.19.zip

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.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 🐵-patch
- 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
- formula_auditor: handle head_info being nil
- Use "cone" mode for sparse checkouts
- tap_auditor: fix alias handling with non-core taps


Homebrew 4.0.21
- unpack_strategy/zip: avoid loading formulae unnecessarily
- utils/github/api: avoid loading gh
- Dockerfile: set default umask
- utils/github: use Pulls API to check open pull requests on CI
- actionlint.yaml: remove workaround for macos-13
- Dockerfile: set umask in common-session-noninteractive too
- rubocop: Revert PR 15312, unset EnabledByDefault
- cask/quarantine: fix exception not being caught
- workflows/tests: update homebrew-cask
- Preliminary macOS 14 (Sonoma) support


Homebrew 4.0.20
- Add cask URL location to audit problems
- Guard GITHUB_* variables by GITHUB_ACTIONS
- keg_relocate: fix check for paths rooted in build directory
- Fix wrong method in --cache and fetch
- Fix MacOSVersionError deprecation
- Revert "Guard GITHUB_* variables by GITHUB_ACTIONS."
- Add --os and --arch flags to readall
- Fix brew formulae and brew casks when the API is used
- Use sudo for copying xattrs when necessary
- Discover GitHub tokens stored by the GitHub CLI
- Check for App Management permissions before updating apps
- dev-cmd/update-maintainers: write JSON of maintainers
- github_runner_matrix: remove GITHUB_RUN_ATTEMPT
- github_packages: adjust upload retries
- utils/github/api: fix nil implicit conversion error


Homebrew 4.0.19
- Implement cask renames
- workflows/tests: test API generation
- Fix missing require in update-report.rb
- Add SimulateSystem::with
- Simplify hash merge
- Use sudo for rmdir if necessary
- Compare Tag using standardized_arch
- simulate_system: fix tap_syntax job errors
- Don't special-case message for outdated casks that aren't installed
- Add Formula#loaded_from_api?
- Simplify Cask#inspect
- Fix 1password logo in README.md
- Fix BundleVersion comparison
- formula-cookbook: update service docs
- Strategy: Pass --max-redirs to #curl_headers
- dev-cmd/generate-*-api: add dry run option
- brew/brew: add GITHUB_EVENT_PATH to env allowlist
- feat: add github_release strategy
- bin/brew: add all GITHUB_* vars to env allowlist
- Custom service name
- Download Strategy Dependency Missing Case
- formulary: use a lot more .presence
- Refactor GitHub artifact downloads out of dev-cmd/pr-pull
- Add brew deps --missing arg
- service: fix API compatibility break
- Fix failing test
- Fix wrong token in Cask::Migrator
- Simplify curl_download
- Add --os=all and --arch=all options for brew audit
- Expand service paths
- Clean up brew audit output
- remove mechanize-2.9.1 symlink to itself
- Bitbucket: Fix tag match


Homebrew 4.0.18
- Revert "Revert "Merge pull request #15369 from carlocab/sorbet-runtime""
- Allow brew shellenv to accept a shell name param
- Make manual installers easier to open
- Always remove build from short_version
- utils/bottles: fix typechecking error
- fetch: better typechecking fix
- Fix small errors in brew shellenv
- feat: use API for GitHub latest release strategy
- Revert "Merge pull request #15377 from carlocab/sorbet-runtime-take2"
- Use curl_headers and curl_output for Livecheck strategies
- Strategy#page_headers: Update for #curl_headers
- Refactor RuboCop tests
- cmd/update-report: don't invoke external diff tools
- Merge HeadVersion and NullVersion into Version
- fetch: remove use of args from CLI parser
- workflows/build-pkg: only run on Homebrew-owned repos
- Adds a TOC to the maintainer checklist
- Remove NoDslVersion cop
- cask/upgrade: improve error backtraces
- tab: fix typing of versions
- cleanup: fix version error for cache items without a version
- Improve #to_str and #to_json for Version::NULL
- Don't fail auditing empty tap
- Fix wildcard copy in cask updates
- Fix typing on revert_upgrade()
- Use sudo for symlinks if necessary


Homebrew 4.0.17
- BazaarDownloadStrategy: Replace in-place sub
- Fix DownloadError erroring itself
- cmd/update-report: do not fail when tap has no origin
- github_packages: improve upload error handling
- brew: add GITHUB_STEP_SUMMARY to allowlist
- Don't remove cask directories when upgrading.
- bottle: some tar flags are not supported on Mojave
- github_runner_matrix: improve macOS timeout handling
- bump-formula-pr: fix method argument type
- Type livecheck.rb.
- github_runner_matrix: align Intel and ARM timeouts
- remove auth header on cask url redirection on CurlDownloadStrategy
- rubocops/cask: Check for correct stanza order within on_* blocks


Homebrew 4.0.16
- Remove Nokogiri to resolve dependabot alerts
- git_repository: implement #to_s
- completions/fish: fix cask references for Linux
- utils/gems: run bundle clean when install not required
- Include T::Sig in Module
- utils/pypi: replace pipgrip with pip's built in dependency resolution
- github_runner_matrix: set timeout on macOS
- workflows: run on macos-13
- Install cached bottles if curl --head fails
- Enable Style/InvertibleUnlessCondition cop
- bump-cask-pr: convert URL back to string
- Remove unused parts of activesupport
- Remove kernel/reporting activesupport extension
- github_runner_matrix: test dependents on GitHub runners
- github_runner_matrix: cleanup GitHub macOS runner
- rubocop: Set EnabledByDefault: true, disabling cops with offenses
- brew bump: modify versioning logic
- Support multiple oldnames for formulae & support formula renames in API
- github_runner_matrix: remove HOMEBREW_LINUX_CLEANUP
- workflows/tests: fix Codecov root dir
- pypi: normalize name in pypi_info
- Refactor formula, cask and Ruby source downloads to use shared code
- determine-test-runners: add debug output
- download_strategy: Fix the timeout value
- Fix type for nested url blocks
- sudo: explicitly specify the root user where necessary
- Livecheck: Fixes for Sorbet runtime
- rubocops/service: check for more cellar paths
- diagnostic: Check for unnecessary Core and Cask taps


Homebrew 4.0.15
- cask: remove os_versions
- Add bottle file size to GHP manifest annotations
- Refactor GitRepositoryExtension to avoid monkey-patching
- Fix 'undefined method git_default_origin_branch?'
- fix: fix undefined 'git_origin_branch' methods
- github_packages: fix bottle manifest schema violation
- Refactor module_function to reduce rbi need
- Pass TTY width to Open3.
- Remove yaml require for 5% init speedup
- Revert language mixins back to module_function
- download_strategy: fix bad unescaping in basename parsing
- remove cask/cmd/audit
- actions/cache@v3 for GitHub Actions
- compilers: add gcc-13
- Fix bump-cask-pr handling of sha256 :no_check
- remove cask/cmd/install
- dev-cmd/audit: remove unused warnings key.
- Enable Sorbet/TrueSigil cop
- Cask audit: check binary signature and notarisation
- dev-cmd/pr-automerge: skip PRs with pre-release label
- Dockerfile: install newer gh
- formula_auditor: remove issue comment audit
- Remove # typed: false sigil in tests
- dev-cmd/audit: fix audit annotations
- formula: consider arbitrary formula source paths
- cmd/install: warn on cask install when already installed
- download_strategy: disable Git fsmonitor
- formulary: sub home placeholder in caveats


Homebrew 4.0.14
- test/cask/dsl_spec: fix test for certain locale settings
- Allow running audit for different architecture.
- brew: don't filter GITHUB_EVENT_NAME
- rubocop/cask: Check for correct stanza grouping within on_* blocks
- Fix repo audit for discontinued casks.
- cask/artifact: fix up some definitions
- audit.rb: Check for signature with sptcl
- Don't use deprecated Kernel#shell_profile.
- workflows/sponsors-maintainers-man-completions: only run on branches
- Delete a Cask RuboCop test for an edge case that is not fixed
- docs: deprecate appcast


Homebrew 4.0.13
- move cask/cmd/reinstall to cask/reinstall
- Improve sorbet & vendor gem workflow testing
- dev-cmd/determine-test-runners: add command to set test runners
- workflows/build-pkg: fix actionlint error
- workflows/sorbet: fix actionlint errors
- workflows/spdx: fix actionlint errors
- workflows/sponsors-*: fix actionlint errors
- workflows/vendor-gems: fix actionlint errors
- dev-cmd/style: Properly clean up the --display-cop-names option
- dev-cmd/update-maintainers: fix undefined method
- Fix ruby_source_path in Ventura systemsettings-caveats fixture JSON
- Xcode 14.3 updates
- Revert "Revert "Split prof gems into their own group""
- os/mac/xcode: fix Clang version for Xcode 14.3
- github_runner_matrix: fix dependent runner assignment
- Make test not depend on macOS version
- Don't save mac metadata/extended attributes for brew bottle
- Update fish completions
- search: remove remote searching
- workflows: add actionlint workflow
- Portable Ruby 2.6.10_1
- Fix codesign audit paths


Homebrew 4.0.12
- Enable typing in Ignorable
- install: check for --only-dependencies flag earlier
- dev-cmd/tap-new: Use actions/cache@v3 as v1 is very deprecated
- Enable types in extensions, etc.
- service: handle string run cmd
- Python: allow --no-build-isolation for pip install
- Remove useless T.unsafe wrappers
- Include screen savers in :extract_plist strategy.
- Include prof gem group in sorbet workflow
- Revert "Split prof gems into their own group"
- commands: fix completion descriptions
- rubocops/cask: Ensure that "verified" URLs with paths end with "/"
- cask/utils: Make more noise when encountering undefined methods
- commands: explain change in command description splitting
- Add types to block params
- Add cop to stop bin use in service blocks
- Add Version#compare
- tap: remove some CoreTap installed? checks.
- Enable types in dev-cmd
- Tighten tap.formula_file?(file) and tap.formula_files to not detect cask file as formula
- Import doc "How To Organize AGM" from homebrew-governance-private
- docs/governance/2023-agm-minutes: Add brief summary of talking points
- Add HOMEBREW_UPGRADE_GREEDY option
- Minor YARD improvements
- Add curl_head method.
- audit: Make --display-failures-only the default for Casks
- Add source paths to API.
- dev-cmd/bump-formula-pr: add a checkbox for resource updates
- workflows/sponsors-maintainers-man-completions: fix git-try-push failure


Homebrew 4.0.11
- triage-issues.yml: update to match main configuration
- Update manpage and completions.
- Enable typing in Homebrew::Cleanup
- readall: fix no simulate
- Pass -no_fixup_chains to linker when required
- CI: Add audit steps for formulae and casks
- Enable types in Formula files
- search: show results by platform
- More update tweaks
- Vendor more gems
- formula: add missing extend/os require
- rubocops: Detect unordered stanzas in non-on_* blocks in formulae
- rubocops/cask: Enforce the order of on_#{arch} blocks
- Revert "Allow reso

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe