Homebrew Release Notes

Follow

27 release notes curated from 22 sources by the Releasebot Team. Last updated: Jul 29, 2026

Get this feed:
  • Jul 27, 2026
    • Date parsed from source:
      Jul 27, 2026
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    6.0.13

    Homebrew releases a broad update with new Landlock sandboxing on Linux, expanded cask and formula handling, faster and cleaner diagnostics, and improved brew profiling and service support. It also tightens docs, audits, and install step validation across the toolchain.

    What's Changed

    docs: update formula authoring and toolchain references by @p-linnane in #23225
    Don't print the --force hint when brew bundle cleanup prompts by @p-linnane in #23212
    Generate stable cask syntax jobs by @MikeMcQuaid in #23222
    docs: convert Adding Software to Homebrew into a package-type router by @p-linnane in #23224
    Use --end-of-options for Git arguments by @andrew in #23223
    Normalise systemd service labels by @MikeMcQuaid in #23228
    Skip unavailable xattrs in cask audits by @MikeMcQuaid in #23229
    Add phase timings to brew prof by @MikeMcQuaid in #23216
    docs: update maintainer operations guides by @p-linnane in #23231
    Add appimage to cask stanza order by @p-linnane in #23234
    Remove Caskroom symlinks broken by cask uninstall, and warn when they exist by @aholland in #23235
    docs: enforce sentence-case headings and codify prose conventions by @p-linnane in #23233
    Validate serialised install steps (6/25) by @MikeMcQuaid in #23240
    list: warn about broken Caskroom symlinks from the Bash fast path by @aholland in #23245
    list: test the Bash fast path against the Ruby command by @aholland in #23247
    Count squash-merge commits into the contributions count by @Moisan in #23221
    Add cask command wrappers (6/24) by @MikeMcQuaid in #23183
    Handle missing bottle mirror metadata by @MikeMcQuaid in #23244
    dev-cmd/contributions: require tap by @samford in #23253
    brew search --desc: show casks without descriptions by @MikeMcQuaid in #23241
    List formulae from untrusted taps by @MikeMcQuaid in #23242
    Read remote.origin.url from .git/config without spawning Git by @hyuraku in #23248
    write_env_script: add permission change by @Moisan in #23249
    cask/migrator: do not copy a cask into itself through a rename alias by @aholland in #23261
    Handle cask mount failures and interrupts by @MikeMcQuaid in #23257
    formula: enable PIE for Haskell on Linux by @cho-m in #23254
    Add generated cask scripts (7/24) by @MikeMcQuaid in #23184
    DeprecateDisable: add formula unreachable reason by @samford in #23262
    bundle add: accept fully-qualified names from untapped taps by @p-linnane in #23266
    Wrap in-place terminal redraws in synchronized updates by @bendrucker in #23264
    Warn when sandbox paths stay readable by @MikeMcQuaid in #23256
    cask/audit: fix nil crash in min_os check by @krehel in #23268
    pathname: build eager-init type objects once, not per allocation by @hyuraku in #23267
    Fix flaky DownloadQueue interruption test by @MikeMcQuaid in #23269
    shared_audits: pass --fail when fetching Forgejo repo data by @krehel in #23271
    formula: remove duplicate info from std_npm_args doc by @cho-m in #23273
    formula: allow changing install args in std_cabal_v2_args by @cho-m in #23272
    docs: implement lists for readability by @bevanjkay in #23274
    Add Linux Landlock sandbox by @MikeMcQuaid in #23255
    Allow PTYs in Landlock sandboxes by @MikeMcQuaid in #23279
    Deduplicate install step source globs by @MikeMcQuaid in #23276
    Remove cask verified parameter by @MikeMcQuaid in #23280
    Respect ignored dependencies in ask plans by @MikeMcQuaid in #23277
    Offer to uninstall packages before untapping by @MikeMcQuaid in #23278
    Convert diagnostics to Finding objects by @SMillerDev in #23044
    workflows: skip signing/pushing for dependabot by @MikeMcQuaid in #23286
    Output Landlock ABI version in brew config by @MikeMcQuaid in #23287
    Block releases on open release blockers by @MikeMcQuaid in #23289
    Sample only user-set env config in analytics by @MikeMcQuaid in #23290
    Align EnvConfig RBI types with runtime value by @p-linnane in #23291
    Allow Landlock access to devices and IPC by @MikeMcQuaid in #23288
    Add stop_timeout to service DSL for graceful stop timeout by @IngmarStein in #23294
    Add disabled cops enforcing public APIs in tests by @MikeMcQuaid in #23292
    formula: std_go_args always add -s -w to ldflags by @cho-m in #23299
    Simplify cask command wrappers by @MikeMcQuaid in #23296
    Remove unused HOMEBREW_ARCHFLAGS by @cho-m in #23303
    Unblock POSIX message queues in Landlock by @MikeMcQuaid in #23302
    rubocops/cask: add cop for empty arch by @krehel in #23297
    Remove test-only FormulaInstaller.clear_* class methods by @dduugg in #23304
    Remove unused GitHub and Git helper methods by @dduugg in #23305
    Add homepage browser check DSL by @MikeMcQuaid in #23307
    Add GCC runtime install action (12/24) by @MikeMcQuaid in #23189
    Add scoped install step warnings (11/24) by @MikeMcQuaid in #23188
    Add process termination steps (10/24) by @MikeMcQuaid in #23187
    Allow formula permission steps (8/24) by @MikeMcQuaid in #23185
    Declare cask command wrapper names by @MikeMcQuaid in #23308
    Add constrained install commands (9/24) by @MikeMcQuaid in #23186
    Defer multi-line download failure output until redraw finishes by @dduugg in #23306
    vulns/osv_export: deduplicate references from OSV.dev by @andrew in #23314
    Update package manager slogan by @MikeMcQuaid in #23315
    Document service block methods and tidy Homebrew::Services by @dduugg in #23316
    Remove unused "fully_loaded_formula" instance variable from formula.rb by @dduugg in #23319
    Remove dead code from brew info and which-formula by @dduugg in #23322
    Add gzipped executable action (13/24) by @MikeMcQuaid in #23200
    Stage bottles using the path returned by fetch by @tony19 in #23323
    Add missing stanza sorting by @DexM in #23320
    formula: support common goreleaser ldflags via ldflags: :goreleaser by @cho-m in #23324
    sorbet: Type blocks at source more precisely than T.untyped by @issyl0 in #23318
    sorbet: More T.bind(self, T.class_of(Formula)) by @issyl0 in #23325
    tests: Remove no-op Formulary.cache.delete by @issyl0 in #23326
    Make tests use public APIs and enable their cops by @MikeMcQuaid in #23293
    docs/Cask-Cookbook: fix links to renamed casks by @hyuraku in #23327

    New Contributors

    @IngmarStein made their first contribution in #23294
    @tony19 made their first contribution in #23323

    Full Changelog: 6.0.12...6.0.13

    Original source
  • Jul 20, 2026
    • Date parsed from source:
      Jul 20, 2026
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    6.0.12

    Homebrew releases 6.0.12 with a broad mix of fixes and improvements, including stronger cask handling, better vulns scanning, safer install steps, refreshed docs, and smoother upgrade and audit behavior.

    What's Changed

    vulns: advisory database repo renamed to Homebrew/advisory-database by @andrew in #23117

    Bump vendored portable-ruby to 4.0.6 by @brew-commit-app[bot] in #23118

    formulary: map resolves information from API by @Bo98 in #23114

    downloadable: skip repeated checksum verification of the same file by @aholland in #23116

    Enable cask FFI helpers for all users by @MikeMcQuaid in #23061

    cmd/upgrade: don't show upgrade size with --build-from-source by @Bo98 in #23109

    readline_nonblock: use larger buffer and retain state by @cho-m in #23120

    Raise ArgumentError when get_make_var variable is missing by @thiagogenez in #22854

    Refactor away unnecessary T.must for first/last element access by @dduugg in #23130

    test_bot/formulae: re-enable all tests on Tier 1 by @cho-m in #23125

    dependency: use same cache on recursive expand by @cho-m in #23127

    Explain why we check for flat_namespace usage by @SMillerDev in #23132

    Include implicit dependencies in formula installer checks by @jacktose in #23090

    Stop silently ignoring bottle manifest download failures by @carlocab in #23134

    Keep cask upgrades after approval failure by @MikeMcQuaid in #23135

    cask/quarantine: don't enable developer mode when copying xattrs by @Bo98 in #23139

    attestation: adjust for breaking GitHub API change by @Bo98 in #23142

    Recover legacy Cask metadata by @MikeMcQuaid in #23136

    cask: suppress requires_rosetta caveat when Rosetta 2 is already installed by @kmarekspartz in #23119

    vulns: scan installed kegs by default and report untrusted-tap skips by @andrew in #23140

    Add install step enforcement cops by @MikeMcQuaid in #23126

    Serialise cask language variations by @MikeMcQuaid in #23124

    Add JSON output method for doctor by @SMillerDev in #22448

    Add aged Caskroom fixture corpus by @aholland in #23144

    Let Cask migration verification skip the API fallback and report failures by @aholland in #23151

    cask/audit: recognise suppressed requires_rosetta caveat by @p-linnane in #23155

    tap-new: fix invalid job-level options in generated workflow by @elasticdog in #23154

    Sample environment configuration analytics by @MikeMcQuaid in #23153

    Document retagged release policy by @MikeMcQuaid in #23149

    Use tap sources for cask metadata by @MikeMcQuaid in #23150

    Avoid masking external home symlinks by @MikeMcQuaid in #23161

    Fix component order autocorrection by @MikeMcQuaid in #23160

    pathname: Syntax workaround for CodeQL parser failures by @issyl0 in #23162

    tap-new: lint generated workflows by @MikeMcQuaid in #23157

    docs/FAQ: clarify brew upgrade handling of self-updating apps. by @p-linnane in #23163

    cask-cookbook: fix dev cmd paths by @bevanjkay in #23159

    Remove unused default repository and product constants by @dduugg in #23165

    Return the alias name from tap_formula_name_type by @hyuraku in #23168

    docs: rename checksum and licence reference pages by @p-linnane in #23170

    docs: update tap trust and supply-chain documentation by @p-linnane in #23171

    Add install step removals (4/24) by @MikeMcQuaid in #23181

    Add install step copies (3/24) by @MikeMcQuaid in #23180

    Expand install step path handling (2/24) by @MikeMcQuaid in #23179

    docs/Rakefile: ignore generated rubydoc files and HTTP 429 responses by @p-linnane in #23169

    docs: update FAQ and troubleshooting pages by @p-linnane in #23172

    docs: restyle governance and maintainer process pages by @p-linnane in #23175

    docs: update command and integration references by @p-linnane in #23177

    docs: update installation, platform support and shell completion pages by @p-linnane in #23173

    Add scoped install step guards (1/24) by @MikeMcQuaid in #23178

    docs: add a shared package acceptance policy by @p-linnane in #23174

    Sandbox formula install steps by @MikeMcQuaid in #23202

    docs: simplify the Expense and Reimbursement Policy by @p-linnane in #23176

    Disable ask mode in Codespaces prebuild by @p-linnane in #23213

    api/cask_download: preserve rename operations by @bevanjkay in #23211

    Fix uninstalling casks removed from the API by @p-linnane in #23210

    cask/audit: allow linux-only checksums and run audits on linux by @bevanjkay in #23122

    formula-analytics: compress Armbian versions by @krehel in #23209

    Allow reordered Cask migration artifacts by @ragtimelab in #23205

    Remove unused services subcommand TRIGGERS constants by @dduugg in #23214

    docs: correct the Cask Cookbook and cask terminology by @p-linnane in #23207

    Add quarterly maintainer activity reports by @MikeMcQuaid in #23206

    docs: consolidate language documentation by @p-linnane in #23208

    dev-cmd/generate-zap: glob sfl files by @bevanjkay in #23220

    fetch: exclude arches without downloads by @krehel in #23219

    Add install step inreplace (5/24) by @MikeMcQuaid in #23182

    New Contributors

    @brew-commit-app[bot] made their first contribution in #23118

    @kmarekspartz made their first contribution in #23119

    @elasticdog made their first contribution in #23154

    @ragtimelab made their first contribution in #23205

    Full Changelog: 6.0.11...6.0.12

    Original source
  • All of your release notes in one feed

    Join Releasebot and get updates from Homebrew and hundreds of other software products.

    Create account
  • Jul 14, 2026
    • Date parsed from source:
      Jul 14, 2026
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    6.0.11

    Homebrew releases improved cask metadata migration, a new brew vulns command, and fixes for brew outdated crashes, cask container metadata, and patch visibility. It also adds OSV advisory export work, dependency input support, and several test and performance refinements.

    What's Changed

    Enable more cask metadata migration to JSON for all users by @MikeMcQuaid in #22958
    Skip rewriting Mach-O binaries when delete_rpath changes nothing by @hyuraku in #23079
    test_bot/formulae: remove generic tests by @cho-m in #23082
    Return a shared type instance from type constructors when runtime checking is disabled by @dduugg in #23078
    test_bot/formulae: skip portable Ruby tests on macOS if same version by @cho-m in #23083
    Test fixes for portable Ruby macOS runners by @cho-m in #23081
    test/cask/audit_spec: fix min OS for Intel by @cho-m in #23085
    Fix brew outdated --greedy crash on installed casks without a URL by @p-linnane in #23084
    Revert "Return a shared type instance from type constructors when runtime checking is disabled" by @dduugg in #23091
    Fix more test failures by @cho-m in #23088
    Add brew vulns command by @andrew in #23080
    Remove dead API methods and move generated_hash! to tests by @dduugg in #23095
    Fix donation link by @MikeMcQuaid in #23098
    Test uninstalling casks by @MikeMcQuaid in #23097
    Use RubyMacho 6.0.0 by @MikeMcQuaid in #23047
    Test without Sorbet runtime by @MikeMcQuaid in #23099
    Preserve cask container metadata by @MikeMcQuaid in #23100
    cmd/deps: accept --brewfile as an input source by @andrew in #23104
    vulns/scanner: fall back to verbatim head URL for non-forge repos by @andrew in #23103
    dev-cmd/generate-vulns-advisories: OSV advisory export for homebrew-advisory-database by @andrew in #23106
    Keep the current internal package API file on brew cleanup -s by @p-linnane in #23111
    Show application of file and data patches by @Bo98 in #23110
    vulns/osv_export: merge into existing records instead of overwriting by @andrew in #23112
    test_bot/formulae: only run subset of brew tests for portable Ruby by @cho-m in #23113
    Start bottle downloads before dependency fetches by @MikeMcQuaid in #23105
    download_queue: wake on completed downloads by @MikeMcQuaid in #23107
    Prewarm Bootsnap caches after brew update by @MikeMcQuaid in #23108
    generate-vulns-advisories: derive initial fixed via FormulaVersions by @andrew in #23115

    Full Changelog: 6.0.10...6.0.11

    Original source
  • Jul 13, 2026
    • Date parsed from source:
      Jul 13, 2026
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    6.0.10

    Homebrew releases 6.0.10 with faster parsing and cleaner bundle, cask, and cleanup workflows. It adds support for npm URLs and GitHub App JWTs, improves install and test behavior, and ships a broad round of performance, reliability, and docs fixes.

    What's Changed

    • version/parser: speed up StemParser by @Bo98 in #23007
    • Send bundle check failures to stderr by @MikeMcQuaid in #23009
    • Guard release against stale main by @MikeMcQuaid in #23008
    • dev-cmd/bump-formula-pr: keep failures when downgrade fails by @cho-m in #23006
    • Skip incompatible cask upgrades by @MikeMcQuaid in #23012
    • Remove redundant T.let annotations Sorbet can infer by @dduugg in #23013
    • Avoid generated rmdir for shared file lists by @loganrosen in #22940
    • docs: escape braces to avoid Liquid tag handling by @cho-m in #23025
    • Fix test setup crash when multiple package APIs are cached by @p-linnane in #23016
    • readall: remove todo tasks by @cho-m in #23005
    • Fix spurious test-bot missing :all bottle warning by @p-linnane in #23019
    • Fix misleading HEAD upgrade summary by @p-linnane in #23018
    • Scrub internal package API cache files on brew cleanup -s by @p-linnane in #23022
    • Don't require tap trust in casks/formulae shell specs by @p-linnane in #23024
    • Keep generic tool caches out of the sandboxed test home by @p-linnane in #23026
    • Skip unavailable sandbox sysctls by @MikeMcQuaid in #23015
    • test_bot: avoid unbalanced shard by @cho-m in #23023
    • u/g/api.rb: support GitHub App JWTs by @toobuntu in #23017
    • Make Homebrew._system private and move quiet_system off Kernel by @hyuraku in #23030
    • Fix autosquash behavior to default cherry_picked to false and add tes… by @hyuraku in #23031
    • Avoid trust errors for cask conflicts by @MikeMcQuaid in #23027
    • Add install step keychain cleanup by @MikeMcQuaid in #23032
    • fix escaping in shellenv documentation by @adamv in #23035
    • Extract queue staging hooks by @MikeMcQuaid in #23033
    • perf: add Utils.parallel_map, use it in tap-info and services list by @dduugg in #22992
    • Convert quarantine script to use FFI rather than Swift by @Bo98 in #22377
    • Migrate more cask metadata to JSON for developers by @MikeMcQuaid in #22957
    • bundle/parallel_installer: fix terminal output after interactive installs by @smorimoto in #23038
    • perf/settings: read all settings with one git invocation per repository by @dduugg in #23037
    • workflows: pin Homebrew/actions to 2026.07.10.1 by @p-linnane in #23048
    • utils/pypi: use relative cooldown by @branchv in #23049
    • Pre-stage cask downloads by @MikeMcQuaid in #23034
    • Allow no-CLT cask installs by @MikeMcQuaid in #23043
    • Add cask permission steps by @MikeMcQuaid in #23045
    • Use Actions bot for vendor-gems by @MikeMcQuaid in #23042
    • cmd/source: support npm urls by @branchv in #23050
    • docs: remove references to removed setup_install_args by @branchv in #23055
    • workflows/codeql: use ubuntu-latest by @p-linnane in #23057
    • Update rubocop-sorbet to 0.13.0 by @dduugg in #23052
    • Fix brew bundle cleanup --force not cleaning cache when brew cleanup warns by @p-linnane in #23056
    • Move safe_system off Kernel by @hyuraku in #23046
    • Warn instead of aborting brew bundle on stale-tab dependency cycles by @bendrucker in #23020
    • Preserve cask quarantine approval by @MikeMcQuaid in #23060
    • github_packages: truncate over-long licenses by @hyuraku in #23063
    • Suggest commands for typos by @andrew in #23064
    • Type formulary_factory cache values as Formula by @hyuraku in #23065
    • Enable privileged tap CI containers by @MikeMcQuaid in #23051
    • test/unpack_strategy: run extract with verbose by @cho-m in #23070
    • cask: fix migration when the new cask is already installed by @bevanjkay in #23076
    • test/install_steps_spec: clear HOMEBREW_GITHUB_ACTIONS to allow CI run by @cho-m in #23069
    • test_bot/formulae: only run brew style if deps are bottled by @cho-m in #23071
    • test_bot fixes for portable formulae by @cho-m in #23068
    • test/unpack_strategy: use Mktemp to set group by @cho-m in #23075
    • Add --ignore-main-package-cooldown to update-python-resources by @robinbowes in #23072

    New Contributors

    • @adamv made their first contribution in #23035
    • @smorimoto made their first contribution in #23038
    • @robinbowes made their first contribution in #23072

    Full Changelog: 6.0.9...6.0.10

    Original source
  • Jul 8, 2026
    • Date parsed from source:
      Jul 8, 2026
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    6.0.9

    Homebrew releases 6.0.9 with faster config gathering, improved cask upgrade reliability, and better install handling. It also writes cask receipts on upgrade, warns when bottles are lost, and smooths out several Linux and CI workflows.

    What's Changed

    • install_steps: handle EUID/UID like postinstall does by @Bo98 in #22985
    • cask/upgrade: don't lose the original exception when rollback itself fails by @aholland in #22997
    • Defer reinstall keg backup and silence analytics curl output by @p-linnane in #22994
    • cask: don't crash upgrade when staged version directory is missing by @gecube in #22999
    • perf/config: gather system configuration concurrently (~31% faster) by @dduugg in #22989
    • github_runner_matrix: unique runner for each shard by @cho-m in #22991
    • Avoid filesystem checks from Pathname presence tests by @dduugg in #22988
    • Warn when all bottles are lost by @MikeMcQuaid in #22971
    • cask/upgrade: make the post-install quarantine release actually run by @aholland in #23002
    • Write cask receipts on upgrade by @MikeMcQuaid in #23001
    • Use sudo user's tap trust by @MikeMcQuaid in #23000
    • Dockerfile: add GCC 14 for compiler selection to use by @cho-m in #23003
    • Use new Linux self-hosted setup by @Bo98 in #22995
    • dev-cmd/bump-formula-pr: avoid attempting same resource update by @cho-m in #23004

    New Contributors

    • @gecube made their first contribution in #22999

    Full Changelog: 6.0.8...6.0.9

    Original source
  • Similar to Homebrew with recent updates:

  • Jul 6, 2026
    • Date parsed from source:
      Jul 6, 2026
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    6.0.8

    Homebrew ships 6.0.8 with faster core workflows, clearer install output, and fixes for cask upgrade metadata. It also adds source options for brew bundle uv tools, structured link install steps, and stores bottle SBOM data in manifests.

    What's Changed

    • test/bundle/brew_spec: allow running test on generic OS by @cho-m in #22973
    • Add source option to brew bundle uv tools by @danielfleischer in #22963
    • test/test_bot_spec: use :trust_store context when testing trust by @cho-m in #22972
    • Update issue links in docs to use correct template by @SMillerDev in #22982
    • Store bottle SBOM data in manifests by @MikeMcQuaid in #22981
    • Clarify install output for durations and single deps by @HaraldNordgren in #22980
    • perf/sorbet: skip sorbet-runtime dispatch when runtime disabled (~6-8% faster) by @dduugg in #22978
    • Fix stale cask upgrade metadata by @MikeMcQuaid in #22986
    • perf/tap-info: generate tap hashes concurrently (up to ~77% faster) by @dduugg in #22975
    • perf/upgrade: avoid linear scans of core formula names (~20% faster) by @dduugg in #22977
    • Add structured link install steps by @MikeMcQuaid in #22987

    New Contributors

    • @danielfleischer made their first contribution in #22963

    Full Changelog: 6.0.7...6.0.8

    Original source
  • Jul 6, 2026
    • Date parsed from source:
      Jul 6, 2026
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    6.0.7

    Homebrew releases 6.0.7 with broad stability, security, and cask handling improvements, plus better dependency resolution, cleaner upgrade and info output, and safer installs and uninstalls across Linux and macOS.

    What's Changed

    • ENV/super: set CC and CXX to unversioned gcc on Linux by @cho-m in #22889
    • audit: require curl dependencies to have a working HTTP mirror by @p-linnane in #22898
    • Force CMake to find shims before $HOMEBREW_PREFIX/bin by @cho-m in #22916
    • Improve awkward wording of Backing Up App by @carter-thaxton in #22918
    • bump-cask-pr: error when update fails by @samford in #22901
    • contributions: fix type error by @samford in #22915
    • extend/ENV/super: set CC/CXX to real names for llvm_clang by @cho-m in #22920
    • bump: fix with invalid arch by @bevanjkay in #22910
    • style: fix infinite loop in array alphabetisation by @bevanjkay in #22912
    • os/mac/mach: avoid delegate for dylib_id by @cho-m in #22924
    • Isolate the upgrade summary alignment spec from the formula API by @p-linnane in #22935
    • Stabilize dependency-related tests by @p-linnane in #22927
    • cask/artifact/pkg: fix type error by @samford in #22923
    • docs/Formula-Cookbook: write_env_script needs binary path by @abitrolly in #22934
    • Allow running bubblewrap in container by @cho-m in #22907
    • Clarify Linux build tools installation instructions by @p-linnane in #22925
    • Cache formula lookups during dependency expansion by @p-linnane in #22930
    • Add CCACHE_FOUND=OFF to default CMake flags by @matteosecli in #22902
    • Info: hide unlinkable kegs by @HaraldNordgren in #22897
    • formula_auditor: propagate OS requirement to dependents by @cho-m in #22938
    • docs/Tap-Trust: replace announcement of future changes with what came to pass by @unitof in #22928
    • Adjust Subversion checkout operands by @MikeMcQuaid in #22942
    • Remove T.let from frozen constants Sorbet can now infer by @dduugg in #22949
    • Prepare cask taps before bundle jobs by @MikeMcQuaid in #22943
    • Restrict livecheck redirects by @MikeMcQuaid in #22944
    • Limit headered curl redirects by @MikeMcQuaid in #22945
    • Uninstall untrusted casks safely by @MikeMcQuaid in #22946
    • Add install step write cops by @MikeMcQuaid in #22947
    • upgrade: Split deps and find older version better by @HaraldNordgren in #22951
    • install_steps: allow gtk_update_icon_cache to run gtk4-update-icon-cache by @cho-m in #22953
    • dev-cmd/test-bot: make --skip-recursive-dependents default by @cho-m in #22950
    • Ignore same-name cask migrations by @MikeMcQuaid in #22955
    • Allow staged install step conversion by @MikeMcQuaid in #22960
    • Prune stale cask downloads by @MikeMcQuaid in #22962
    • Store cask metadata as JSON more often by @MikeMcQuaid in #22952
    • Preserve bottled SBOMs on pour by @MikeMcQuaid in #22956
    • cask/staged: check App Management permissions before chown by @MiMoHo in #22967
    • doc: Clarify version explanation of --json info by @okuramasafumi in #22877
    • test_bot/formulae: handle runtime deps similar to Formula by @cho-m in #22964
    • info: bold dependencies of uninstalled packages by @HaraldNordgren in #22965
    • Add install step data directories by @MikeMcQuaid in #22961
    • Remove redundant T.let annotations by @dduugg in #22974

    New Contributors

    • @carter-thaxton made their first contribution in #22918
    • @matteosecli made their first contribution in #22902
    • @MiMoHo made their first contribution in #22967
    • @okuramasafumi made their first contribution in #22877

    Full Changelog: 6.0.6...6.0.7

    Original source
  • Jun 30, 2026
    • Date parsed from source:
      Jun 30, 2026
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    6.0.6

    Homebrew ships 6.0.6 with path helper improvements, stricter linkage checks, and test fixes.

    What's Changed

    • Flag scoped service path helpers by @MikeMcQuaid in #22858
    • linkage_checker: always report incorrect :no_linkage by @cho-m in #22887
    • Cleanup brew-rs leftovers by @botantony in #22895
    • Add shared Utils::Path.ensure_child_of! containment helper by @p-linnane in #22890
    • test: add :needs_daemon_manager to some tests by @cho-m in #22905
    • test/cmd/update_spec: fix local test run failures by @cho-m in #22906
    • Resolve patch targets via patch --dry-run for containment by @p-linnane in #22908
    • Revalidate tap restrictions for git redirects by @p-linnane in #22909

    Full Changelog: 6.0.5...6.0.6

    Original source
  • Jun 26, 2026
    • Date parsed from source:
      Jun 26, 2026
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    6.0.5

    Homebrew adds formula and command fixes, including new helper methods, safer patch targets, and curl URL env expansion.

    What's Changed

    • rubocop/formula_path_methods: add formula_opt_include method by @botantony in #22867
    • Reject patch targets that escape the staged source tree by @p-linnane in #22881
    • system_command: use Process.spawn to avoid fork-unsafe exec3 child by @p-linnane in #22880
    • formula: std_meson_args prefix param and relative libdir by @cho-m in #22888
    • Expand deferred env in curl URLs by @MikeMcQuaid in #22886

    Full Changelog: 6.0.4...6.0.5

    Original source
  • Jun 25, 2026
    • Date parsed from source:
      Jun 25, 2026
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    6.0.4

    Homebrew ships a broad update with faster tests, improved brew info and brew bundle behavior, new completion and path helper support, better cask and formula handling, and several fixes for security, auditing, and release workflows.

    What's Changed

    Cask Cookbook: document generate_completions_from_executable stanza by @bevanjkay in #22848
    generate_completions: add style for default shells and auto corrections by @daeho-ro in #22841
    Add bump-compatibility-version command by @p-linnane in #22846
    Filter info JSON package types by @MikeMcQuaid in #22851
    Enable formula path helper cop by @MikeMcQuaid in #22845
    Rescue MethodDeprecatedError when attempting to load installed caskfiles by @Rylan12 in #22856
    Speed up tests by @MikeMcQuaid in #22852
    Approve stale lead maintainer PRs by @MikeMcQuaid in #22818
    Rescue MethodDeprecatedError when loading from installed caskfile in installer by @Rylan12 in #22859
    Align upgrade summary columns by @paulogdm in #22844
    Remove dead Formula methods and annotate public DSL by @dduugg in #22733
    download_queue: use tuple instead of T::Array by @botantony in #22861
    Warn about missing libraries in brew info by @HaraldNordgren in #22849
    utils/path: add formula_opt_include helper by @botantony in #22865
    Forward the --quiet flag to all brew bundle subcommands by @wfarr in #22868
    patch: add type and resolves DSL for annotating patches by @andrew in #22466
    Support path helpers in services by @MikeMcQuaid in #22870
    Disable tap Git credential prompts by @MikeMcQuaid in #22869
    Fix HOMEBREW_FORBID_PACKAGES_FROM_PATHS bypasses by @p-linnane in #22872
    formula_auditor: audit new formulae for duplicates by @botantony in #22860
    bump-formula-pr: do not repeat release notes multiple times by @botantony in #22871
    Redact GitHub token in bump dry-run output by @p-linnane in #22874
    Reject inline cask definitions passed to the MCP server by @p-linnane in #22875
    Key Brewfile trust entries by custom tap remotes by @liby in #22862
    Fix core cask tap redirects by @MikeMcQuaid in #22876

    New Contributors

    @paulogdm made their first contribution in #22844
    @wfarr made their first contribution in #22868
    @liby made their first contribution in #22862

    Full Changelog: 6.0.3...6.0.4

    Original source
  • Jun 11, 2026
    • Date parsed from source:
      Jun 11, 2026
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    6.0.0

    Homebrew ships 6.0.0 with major security and performance upgrades, including tap trust, a faster default internal JSON API, Linux sandboxing, improved brew bundle, better defaults from user feedback, and initial support for macOS 27 Golden Gate.

    Today, I’m proud to announce Homebrew 6.0.0. The most significant changes since 5.1.0 are a new tap trust security mechanism, the new faster, smaller, default internal Homebrew JSON API, sandboxing on Linux, better defaults informed by our user survey, many brew bundle improvements, improved performance and initial support for macOS 27 (Golden Gate).

    ✨ Highlights since 5.1.0

    🔐 Tap trust

    Homebrew 6.0.0 introduces tap trust. A third-party tap can contain arbitrary, unsandboxed Ruby that runs on your machine, so Homebrew now requires taps (and tap-qualified formulae and casks) to be explicitly trusted before their code is evaluated or run. This reduces the risk from malicious or compromised taps while leaving the official Homebrew taps trusted by default. See the new Tap-Trust documentation for details.

    • Homebrew enforces initial tap trust so untrusted taps are flagged before their code runs, trusts qualified tap items before install, stops auto-tapping untrusted taps, pins tap allow, forbid and trust lists to remotes and uses tap trust when evaluating all formulae and casks.
    • brew tap gains commands for managing tap trust, can trust a tap by its remote URL, brew trust adds a --json=v1 flag and brew tap-info adds a trusted field.
    • brew bundle honours the trusted: option and brew bundle dump records trusted bundle entries, marking custom-remote taps as trusted.
    • docs.brew.sh has new pages, including Tap-Trust, explaining Homebrew’s new tap trust model, and Homebrew trusts taps in test-bot.

    ⚡ Default internal JSON API

    The internal JSON API is now the default, advancing the smaller API that Homebrew re-enabled and turned on for developers recently. It combines all Homebrew’s metadata into a single download, so brew updates faster and talks to the network less. It was opt-in via HOMEBREW_USE_INTERNAL_API since 5.0.0; that variable is now deprecated (see below).

    🐧 Linux sandbox

    The Linux Bubblewrap sandbox aligns Linux with macOS, where build, test and postinstall phases already run sandboxed. It is on by default for developers, Homebrew moved its macOS sandbox logic to share code, improved Linux sandbox behaviour (with Homebrew/homebrew-core setting the sandbox env in CI), hardened sandboxed install phases, sandboxed cask executable hooks, allowed logs in the build sandbox, installed Bubblewrap on hosted Ubuntu and skips sandbox setup for syntax-only jobs.

    ⚙️ Better defaults

    • Following our Homebrew user survey, we have made many changes based on the results. The most notable is making ask mode the default for developers, so brew install and brew upgrade show a dependency summary and confirmation prompt before making changes.
    • Homebrew adds ask dependency plans and cask support, accepts one-key ask confirmations and aligns ask dry-run prompts.
    • Homebrew fetches ask upgrades together, prints the ask upgrade summary sooner, skips the upgrade ask prompt when empty, adds a final brew upgrade summary and explains the upgrade metadata fetch.

    📦 brew bundle

    • brew bundle gains many improvements, most notably parallel formula installation that now runs jobs automatically by default, plus npm and krew extensions, wider cleanup support and, on Windows, winget support.
    • Homebrew adds cleanup support to npm, cargo, go and uv extensions and asks before removing during cleanup.
    • Homebrew runs brew bundle krew via kubectl-krew directly, respects CARGO_HOME and friends for cargo, adds a --describe flag to brew bundle add and tries mas install before falling back to mas get.
    • Homebrew adds bundle type disable flags, improves check guidance and checks formula link status.
    • Homebrew serialises formula locks, makes non-core DSLs a single file, removes description comments from brew bundle/remover and avoids parsing the output of brew services list.
    • brew bundle performs npm installs more securely.

    🏎️ Performance

    Homebrew is faster across the board, with startup performance tweaks, a ~30% faster brew leaves, parallelised bottle tab fetching on upgrade and less work loading Ruby libraries at startup.

    🍎 macOS 27 (Golden Gate)

    Homebrew adds initial support for macOS 27 (Golden Gate).

    🔮 Upcoming changes

    • macOS 27 (Golden Gate) drops Intel support, so per our Support Tiers: in September 2026, macOS Intel x86_64 moves to Tier 3 with no CI support and no new bottles (binary packages) built for macOS Intel; in September 2027, macOS Intel x86_64 will be unsupported entirely and all related code deleted.
    • The master to main migration begun in 4.6.0 continues: more repositories no longer update master, GitHub Actions warn @master users to migrate to @main and the sync-default-branches workflows are removed from Homebrew/homebrew-cask and Homebrew/homebrew-core.
    • Casks that fail macOS Gatekeeper checks, deprecated in 5.0.0, remain on track to be disabled in September 2026.

    🔒 Security

    🚨 Security advisories

    Homebrew published three security advisories:

    • The POST download strategy bypassed the documented HTTPS-to-HTTP redirect protection by discarding the resolved URL (GHSA-7699-qf8c-q47m), fixed by enforcing secure redirects.
    • Root code execution was possible via Git hooks in the macOS .pkg postinstall (GHSA-6689-q779-c33m), fixed by cleaning Homebrew git state and replacing the installer git directory.
    • The macOS installer package trusted a user-controlled /var/tmp plist and could assign Homebrew ownership to a local attacker (GHSA-59v8-x8q4-px5c), fixed by tweaking the macOS .pkg package-user plist handling.

    🛡️ Other security improvements

    • Homebrew filters sensitive environment variables during Ruby evaluations and defers HOMEBREW_* environment secrets to download time.
    • Homebrew runs forbidden checks for casks and formulae before download and lets you require checksums for casks with HOMEBREW_CASK_OPTS_REQUIRE_SHA.
    • Homebrew links to a shared security policy.

    🗑️ Deprecations

    • The Ubuntu 24.04 CI migration raised the Linux baseline to glibc 2.39, so Linux systems with an older system glibc (such as Ubuntu 22.04 with glibc 2.35) are now Tier 2: no new bottles (binary packages) are built for them and brew doctor warns. Use the ghcr.io/homebrew/brew Docker image or upgrade to a Tier 1 configuration such as Ubuntu 24.04.
    • Homebrew deprecates default opt-ins.
    • Homebrew deprecates now-default bundle and internal API environment variables such as HOMEBREW_BUNDLE_NO_SECRETS and HOMEBREW_USE_INTERNAL_API.
    • Homebrew marks unused options for deprecation.
    • Various other Homebrew 6.0.0 deprecations.
    • Homebrew’s SBOM support is now opt-in with HOMEBREW_SBOM.

    🎁 Features

    🖥️ Casks

    • Homebrew can pin casks and supports casks in brew missing.
    • Homebrew adds AppImage support for Linux and implements a Linux freedesktop trash for casks.
    • Homebrew improves cask upgrades by sharing upgrade download queues, moving upgrade summaries before fetch, adding a quit opt-out and reopening closed apps during upgrade.
    • Homebrew improves auto_updates casks: improving how they update, refining the behaviour, further gating auto-updates behind opt-in and upgrading them when the bundle version is stale.
    • cask adds a generate_completions_from_executable DSL artifact and includes resolved artifact targets in JSON output.
    • Homebrew shows a cask version transition in per-cask upgrade output, skips valid cached cask fetches, speeds up cask backup copies and has caskroom use the user’s primary group on Linux.
    • brew doctor and brew cleanup handle corrupt Caskroom directories.

    💻 Operating system support

    • Homebrew makes Linux cask requirements explicit, aligns cask macOS dependencies, supports bare depends_on :macos in casks, tracks macOS support explicitly and emits Linux variations for casks with Linux checksums.
    • Homebrew adds a maximum macOS for cask dependencies. Homebrew/homebrew-cask adopts the new depends_on maximum_macos: syntax and fixes its macOS dependencies in Homebrew/homebrew-cask and Homebrew/homebrew-core.
    • Homebrew adds M5 and M5 Pro/Max CPU recognition and caps the OCLP tier when macOS is outdated.
    • Homebrew labels WSL analytics, shows the Windows build on WSL in brew config and moves the wsl? boolean from OS::Linux up to the OS module.

    🚰 Taps

    • Homebrew recognises more equivalent tap remote forms, ignoring a .git suffix when matching GitHub remotes and consolidating tap remote normalisation.
    • Homebrew handles formulae and casks more uniformly across commands, installs explicitly requested taps and stops implicit tap installation.
    • Homebrew uses worktrees for local core taps and blocks worktree updates.
    • Homebrew shares full-name parsing helpers and uses full-name helpers for split names.

    ℹ️ brew info and brew tap-info

    • brew info output is clearer: more consistent and helpful, with a Binaries section listing executables, a clearer recursive runtime dependencies line, clearer same-named conflicts and shadowed formulae and a list versions JSON output.
    • brew info shows installed state better: the upgrade target for outdated @-versioned formulae, installed dependents with --verbose, deprecated and disabled packages in install status, installed formulae resolved from the receipt’s tap with a shadowing warning, the installed version and an upgrade hint on the headline, other installed versions and an installed info inventory.
    • brew info and brew tap-info skip the uninstalled marker when not a problem, show more tap info for packages and brew tap-info lists formulae and casks.
    • brew which-formula shows install status and Homebrew shows quarantine script usage.

    🆕 New commands, flags and output

    • brew exec is a new command, like npx, that supports formulae environments.
    • brew as-console-user is a new command for running Homebrew as the right user under MDM/root environments and brew update is aliased to upgrade.
    • Homebrew tidies help and completions: omitting aliases from completions, hiding HOMEBREW_CASK_OPTS_* from help, hiding maintainer commands and hiding hide_from_man_page commands from brew commands.
    • Homebrew avoids install warning annotations and warns when formula executables are shadowed on PATH.

    🧊 Cooldowns, livecheck and bumping

    • Homebrew adds download cooldowns for Bundler, RubyGems livecheck, npm and pip defaults, PyPI resource resolution and npm and PyPI in bump to avoid upstream supply-side security risks.
    • Homebrew prints bump skip status, messages and errors and checks RubyGems licences.
    • Homebrew respects livecheck throttle days in audit, adds livecheck throttling by days and speeds up the formula throttle days check.

    ⬇️ Downloads and fetching

    • brew fetch --all-platforms fetches every variant, Homebrew prints download error details when using concurrency, preserves partial downloads on network errors, avoids cached manifest downloads and hints when a download is HTML, not a binary.
    • Homebrew avoids redundant Caskroom chgrp.

    🛎️ Services

    • Homebrew starts systemd timers for services, creates service path directories automatically (with Homebrew/homebrew-core adopting the new service path creation logic) and audits redundant service path setup.
    • brew services no longer fails to load with --sudo-service-user.

    🧪 Formulae and packaging

    • Homebrew adds the VCS revision as scm_revision in the tab, supports in-repository patch files, supports CPS metadata directories and includes patches in formula to_hash.
    • Homebrew respects installed dependents during autoremove and cross-checks autoremove candidates against formula definitions.

    🪜 Install steps framework

    The install steps framework expresses common postinstall, preflight and postflight behaviour as ordered, literal-only DSL data that is exposed through the JSON APIs. Where a formula or cask only does simple file preparation, it no longer needs to download and evaluate a Ruby file at install time. Homebrew adds formula install steps, cask install steps, an audit for formula install steps, install step rebuild actions, rebuild step methods, rebuild step RuboCop checks and an audit of cask flight step conversions; homebrew/core and homebrew/cask adopt the new DSLs (post_install_steps, postinstall and flight steps). In homebrew/core and homebrew/cask this covers a large share of post_install and *flight blocks (creating directories, touching markers, moving and symlinking files), with more operation types planned.

    🔀 Other changes

    • brew vulns is a new Homebrew tap and subcommand that checks installed packages for known vulnerabilities brew vulns is a new Homebrew tap and subcommand that checks installed packages for known vulnerabilities 🔒.
    • Homebrew warns for Nix-managed Homebrew.

    🧹 Internals, typing and refactors

    • Homebrew replaces brew which-update, uses an AST for source rewrites and enforces public API visibility and docs.
    • Homebrew reworks command parsing: parser subcommand scaffolding, converting the bundle, services and remaining subcommands, scoping subcommand option constraints and usage help, and no longer restricting global options to subcommands.
    • Homebrew limits Sorbet runtime defaults and limits recursive Sorbet in test-bot.

    🛠️ Continuous integration and developer tooling

    • The Ubuntu 24.04 CI migration flagged in 5.1.0 for 6.0.0 has now landed, raising the Linux baseline.
    • Homebrew annotates test-bot dependency impact, closes API-created issues that do not match a template and closes incomplete PRs.
    • Homebrew’s setup-homebrew GitHub Action defaults to the stable tag setup-homebrew GitHub Action defaults to the stable tag and trusts taps on non-stable brew.
    • brew lgtm covers tap audits and formula tests brew lgtm covers tap audits and formula tests and Homebrew works around a non-writable cache for lgtm commands in brew.sh.
    • workflows/docker builds Ubuntu 26.04 images workflows/docker builds Ubuntu 26.04 images and test disables return false handling test disables return false handling.

    📚 Documentation

    • Homebrew’s documentation improves: the Rosetta cask support policy, unsupported multi-user setups, notability requirements, -full formula guidance, upstream expectations and lifecycle requests, the new auto_updates behaviour and a consolidated deprecation policy.
    • Homebrew clarifies compatibility_version guidance and Homebrew/homebrew-core backfills compatibility_version 1. This will help reduce the number of formulae that need upgraded by brew upgrade over time.

    Finally:

    • Homebrew is a non-profit project run entirely by volunteers, not employees. We need your funds to pay for software, hardware and hosting around continuous integration and future improvements to the project. Every donation will be spent on making Homebrew better for our users. Please consider a regular donation through GitHub Sponsors, OpenCollective and Patreon.
    • Homebrew/brew has no open issues at the time of writing 🎉.
    • Homebrew has a brand new brew.sh homepage style.
    • BrewUI is Homebrew’s upcoming official graphical interface. It’s not ready for general use yet.
    • The brew-rs experiment in moving parts of Homebrew’s Ruby frontend to Rust has concluded: benchmarks showed Homebrew’s Rust frontend only ahead on narrow, already-cached bottle fetches, not on representative full installs (pouring bottles, linking, writing metadata and health checks), so the performance focus has moved back to Ruby and to starting useful network and disk I/O sooner. We’ve added an FAQ entry explaining all of this. Our numbers come from honest, fully-compatible comparisons. Not all unofficial Homebrew frontends seem to apply the same rigor to their benchmarks, compatability or security: your mileage with those may vary.
    • Homebrew is increasingly a “package manager for everywhere”: Homebrew is recommended in Microsoft’s Windows Developer Config for WSL comfort, works well on Bazzite and now supports winget in brew bundle as a Windows-only feature.
    • The Homebrew team is aware of the supply-side security issues with other package managers. We’ve taken various steps to mitigate these risks for our users, some existing (e.g. macOS sandboxing, human review on all changes, environment filtering, all package maintainers are Homebrew maintainers), some new (e.g. Linux sandboxing, sandboxing reads of sensitive locations, cooldown from riskier ecosystems). We will continue to monitor the supply-side security landscape and take further steps as needed. See the new Supply Chain Security documentation we’ve added for details.
    • Homebrew has documented the principles behind our AI and LLM usage rules in a new Responsible AI Usage page.
    • Homebrew has joined the Open Source Resistance and you should too.

    Thanks to all our hard-working volunteer maintainers, contributors, sponsors and supporters for getting us this far.

    Original source
  • Mar 10, 2026
    • Date parsed from source:
      Mar 10, 2026
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    5.1.0

    Homebrew releases 5.1.0 with expanded brew bundle support, a new brew version-install command, fuller -full formula handling and installer updates. It also adds service, shell and CI improvements, stronger audits and linkage checks, and broader contributor and docs updates.

    Homebrew 5.1.0

    Homebrew 5.1.0 has been released. Homebrew’s most significant changes since 5.0.0 are expanded brew bundle support, brew version-install, new -full formula handling and installer updates.

    Major changes and deprecations since 5.0.0

    • brew bundle manages Rust Cargo packages from Brewfiles, uv tools and Flatpak remotes or apps.
    • brew bundle fetches downloads in parallel before install, auto-taps formulae and casks from external taps, uses mas get for better fresh Apple ID handling, sets HOMEBREW_INSIDE_BUNDLE and adds --no-secrets for safer environment inspection.
    • brew version-install creates, extracts and installs older formula versions in one step.
    • Homebrew publishes an unversioned Homebrew.pkg installer URL and uses Portable Ruby 4.0.1 with Ruby 4.0.
    • Homebrew adds ffmpeg-full, imagemagick-full, automatic linking for versioned or -full keg-only formulae when the unversioned sibling is absent and stricter rejection of dependencies on *-full formulae.
    • Homebrew deprecates Formula#needs and needs :openmp, option :cxx11 and option :universal and other APIs scheduled for the normal release-cycle removals.

    Upcoming changes

    • Homebrew plans the Ubuntu 24.04 CI migration for 5.2.0, which is expected to raise the Linux baseline to glibc 2.39 and libstdc++ 6.0.33.
    • Homebrew continues the master to main migration introduced in 4.6.0; some repositories stop updating master in 5.1.0 and the remaining compatibility branches are scheduled for removal in 5.2.0 in favour of main.

    Homebrew’s other changes since 5.0.0 worth highlighting are the following

    • brew services supports nice priorities for services.
    • brew services sets ThrottleInterval for LaunchAgents and LaunchDaemons on macOS.
    • brew sh --ruby opens a shell with Homebrew’s bundled Ruby and Bundler preconfigured.
    • brew shellenv uses simpler shell detection and is easier to override when auto-detection is wrong.
    • brew lgtm is recommended in the PR template before submitting changes and brew lgtm --online covers checks that need network access.
    • brew --taps prints Homebrew’s taps directory.
    • brew source jumps straight to a formula’s source repository.
    • brew tap-info exits with a failure status for unknown taps, which makes scripting more reliable.
    • brew edit auto-taps Homebrew/core or Homebrew/cask when API-known formulae or casks are edited on tapless installs.
    • brew config on macOS reports the detected Metal toolchain version.
    • brew info marks installed and uninstalled formulae or casks more clearly.
    • brew search labels deprecated and disabled formulae and casks directly in search results.
    • brew outdated respects HOMEBREW_UPGRADE_GREEDY_CASKS.
    • brew doctor warns early when Linux glibc is older than the upcoming CI baseline.
    • brew uninstall refuses to uninstall casks that other installed casks depend on and keeps going when one requested formula or cask fails.
    • brew upgrade and brew reinstall keep working through individual name-resolution failures instead of stopping early.
    • Homebrew requires AI-assistance disclosure in PRs, documents preferred AI and LLM usage in contributions and ships a CLAUDE.md guide alongside AGENTS.md.
    • Homebrew GitHub Actions include cache-homebrew-prefix for prefix caching in CI.
    • Homebrew GitHub Actions include setup-ruby for Ruby setup through Homebrew in CI.
    • Homebrew preserves WSL_DISTRO_NAME, which keeps CLI tools launched from WSL behaving correctly.
    • Homebrew shows a progress bar for concurrent downloads.
    • Homebrew audits better distinguish true self-submissions from other new-formula submissions.
    • Homebrew allows dashes anywhere in tap names, not just after the homebrew- prefix.
    • Homebrew auto-bumps resources within formulae that have explicit livecheck blocks.
    • Homebrew points issue reporters to GitHub Discussions sooner when issues are not the best fit and updates contributor guidance on when to open discussions, PRs and issues.
    • Homebrew checks SSSE3 support more clearly on Linux x86_64 when Homebrew requires it.
    • Homebrew falls back to simpler output on dumb terminals, which avoids garbled progress display in shells such as Emacs.
    • Homebrew keeps custom HOMEBREW_CURLRC paths through brew update.
    • Homebrew points unsupported older macOS releases to MacPorts instead of unsupported Homebrew installs.
    • Homebrew removes legacy migration code for the old linuxbrew repository, removes the remaining automatic migration logic for old linuxbrew-core formulae and removes more obsolete linuxbrew-core migration entries.
    • Homebrew uses the correct Portable Ruby URLs for custom HOMEBREW_ARTIFACT_DOMAIN mirrors and uses the correct mirror links when building brew mirror URLs.
    • Homebrew guides contributors toward the modern command API as more legacy CLI parser fallback paths are removed.
    • Homebrew contributor guidance tells LLM-assisted contributors to run the repository’s own ./bin/brew so local checks match CI more closely.
    • Homebrew reuses cached API data for up to 7 days in more places, reducing needless refreshes.
    • Homebrew lets old installed casks that still contain removed DSL such as appcast uninstall or upgrade again and filters broken Caskroom metadata out of installed-cask listings.
    • Homebrew closes cleanup lockfiles properly, avoiding a file descriptor leak.
    • Homebrew caching-proxy docs cover the Formulae API as well as bottles.
    • Homebrew cask acceptance docs explain the notability bar for self-submitted casks more clearly and state that dropping support for current macOS versions can lead to rejection.
    • Homebrew support-tier docs state that outdated macOS developer tools count as Tier 2 and brew doctor uses clearer wording about when to report issues from Tier 2 configurations.
    • Homebrew formulae can use simpler shell-completion helpers, including a predefined :cobra format and a built-in :typer format.
    • Homebrew audits revision and compatibility_version changes more strictly, which helps catch ABI mistakes earlier.
    • Homebrew linkage checks fail indirect linkage problems more consistently, which helps catch broken dependencies earlier.
    • Homebrew std_npm_args disables package scripts by default, reducing exposure to malicious npm install hooks.
    • Homebrew container registry users can omit the Docker authentication header by setting HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN=none.

    Finally

    • Homebrew simplified its governance model, cleaned up the related docs and updated references to the current Lead Maintainers.
    • Homebrew is running a short user survey to help inform future development.
    • Homebrew accepts donations through GitHub Sponsors, OpenCollective and Patreon.

    Homebrew thanks all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.

    Original source
  • Nov 12, 2025
    • Date parsed from source:
      Nov 12, 2025
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    5.0.0

    Homebrew releases 5.0.0 with parallel downloads on by default, official Linux ARM64/AArch64 support, and new macOS support and deprecation timelines. It also expands brew bundle, brew doctor, brew info, brew style and other commands while tightening security and packaging behavior.

    Today, I’d like to announce Homebrew 5.0.0. The most significant changes since 4.6.0 are download concurrency by default, official support for Linux ARM64/AArch64, timescales for deprecating macOS Intel and removing macOS Gatekeeper bypass behaviours.

    Major changes and deprecations since 4.6.0

    • HOMEBREW_DOWNLOAD_CONCURRENCY=auto is set by default. This enables parallel downloads by default for all users. It can be disabled by setting HOMEBREW_DOWNLOAD_CONCURRENCY=1. Concurrent downloads now have progress reporting. We expect there may be a long-tail of issues, please report them!
    • Homebrew has promoted Linux ARM64/AArch64 to Tier 1 support.
    • Casks without codesigning are deprecated. We will disable all Homebrew/homebrew-cask casks that fail Gatekeeper checks in September 2026.
    • Homebrew now provides official macOS 26 (Tahoe) support. Homebrew’s future macOS support is noted in our Support Tiers document at https://docs.brew.sh/Support-Tiers#future-macos-support.
      • In September (or later) 2026, Homebrew will not run on macOS Catalina 10.15 and earlier and macOS Intel x86_64 will move to Tier 3, dropping CI support and no additional bottles (binary packages) will be built for macOS Intel.
      • In September (or later) 2027, Homebrew will not run on macOS Big Sur 11 on Apple Silicon or at all on Intel x86_64.
    • HOMEBREW_USE_INTERNAL_API allows opt-in to the new, smaller internal Homebrew JSON API. This will become the default behaviour in a later version of Homebrew. Please consider opting-in now and reporting any issues you encounter.
    • --no-quarantine and --quarantine flags have been deprecated as Homebrew does not wish to easily provide circumvention to macOS security features.
    • Various other deprecations/disables/removals.

    Other changes since 4.6.0 I’d like to highlight are the following

    • brew bundle supports installing go packages in Brewfile. brew bundle --no-go and HOMEBREW_BUNDLE_DUMP_NO_GO will opt-out of this behaviour.
    • brew bundle defaults the global Brewfile location to the user configuration directory.
    • brew bump-*-pr will automatically tap core taps if needed.
    • brew doctor skips the disclaimer when --quiet is passed.
    • brew doctor warns on a pkg-config macOS SDK version mismatch.
    • brew mcp-server provides more development commands.
    • brew search --alpine searches Alpine Linux packages.
    • brew services supports keep_alive systemctl services with Restart=on-failure.
    • brew info --sizes shows the sizes of each formula and cask.
    • brew audit will do online checks for Codeberg repositories.
    • brew lgtm runs multiple style checks in one command.
    • brew release now runs the release workflow and uploads artifacts. This means Homebrew/brew now uses immutable releases.
    • brew style --changed checks style on all changed files in a repository or tap.
    • Homebrew/homebrew-test-bot, Homebrew/homebrew-portable-ruby and Homebrew/command-not-found were imported into Homebrew/brew. This means all Homebrew external commands have now been moved into primary repositories (Homebrew/brew, Homebrew/homebrew-core or Homebrew/homebrew-cask).
    • /usr/local prefix replacement is more selective to increase the number of relocatable bottles.
    • launchctl service removal sudo failures are non-fatal.
    • CGO_ENABLED is enabled by default on ARM64 Linux.
    • pkgconf will be reinstalled automatically on a macOS version mismatch.
    • rubydoc.brew.sh has been redirected to docs.brew.sh/rubydoc.
    • head Git URLs always require a branch name.
    • HOMEBREW_FORBIDDEN_CASK_ARTIFACTS allows selectively blocking cask install methods.
    • HOMEBREW_DEVELOPER is required when installing formulae from paths.
    • Formula’s compatibility_version DSL will help us reduce the number of upgrades needed in future.
    • Formula’s no_linkage DSL will help stricter linkage detection and avoid issues.
    • Formulae can be migrated to casks within the same tap.
    • Linux’s host libstdc++ (instead of gcc) is used for automatically determining if a brewed gcc dependency is needed.
    • Homebrew will avoid downloading JSON API files multiple times per run.
    • Homebrew no longer provides CI for macOS Ventura in Homebrew/core.
    • Homebrew’s Linux CI uses GCC 12.
    • Homebrew will not run on macOS Mojave and older.
    • Homebrew prefers LLVM’s clang over gcc on macOS.
    • Homebrew defaults to -O2 with gcc.
    • Dependencies are resolved correctly when installing older bottles.
    • Casks are better supported and have better usability on Linux.

    Finally

    • We have clarified our stance on adult content in Homebrew formulae and casks.
    • We have loosened our criteria for accepting software into Homebrew.
    • Homebrew accepts donations through GitHub Sponsors, OpenCollective, and Patreon. If you can afford it, please consider donating.

    Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.

    Original source
  • Aug 5, 2025
    • Date parsed from source:
      Aug 5, 2025
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    4.6.0

    Homebrew releases 4.6.0 with opt-in concurrent downloads, preliminary macOS 26 Tahoe support and a built-in brew mcp-server. It also adds new PATH and cask handling improvements, broader repo and installer updates, and several deprecations and fixes across brew and bundle.

    Today, I’d like to announce Homebrew 4.6.0. The most significant changes since 4.5.0 are opt-in concurrent downloads with HOMEBREW_DOWNLOAD_CONCURRENCY, preliminary macOS 26 (Tahoe) support and a built-in brew mcp-server.

    Major changes and deprecations since 4.5.0:

    • HOMEBREW_DOWNLOAD_CONCURRENCY is a new environment variable that allows opt-in to Homebrew’s new download concurrency support. We recommend using HOMEBREW_DOWNLOAD_CONCURRENCY=auto as a starting point. This will become the default behaviour in a later version of Homebrew (with an opt-out).
    • Homebrew provides preliminary macOS 26 (Tahoe) support. It will be officially supported after Apple’s public release.
    • brew mcp-server is an MCP server for Homebrew and is available in Homebrew by default.
    • Miscellaneous additional code deprecations, disables and removals scheduled for Homebrew 4.6.

    Other changes since 4.5.0 I’d like to highlight are the following:

    • All repositories in the Homebrew organisation, including e.g. Homebrew/brew, Homebrew/homebrew-cask and Homebrew/homebrew-core, now use main as their default branch.
    • All casks submitted in Homebrew/homebrew-cask must be signed. We have not yet completed the process of disabling/removing those that aren’t but this will happen at some point in the future.
    • Homebrew prohibits non-ASCII characters in URLs.
    • Homebrew now allows users in Tier 2/3 to file some types of issues.
    • Homebrew’s .pkg and official/shell installers will now add Homebrew to the default PATH if possible.
    • Third-party Homebrew GitHub Packages mirrors that do not require authentication now work as expected.
    • HOMEBREW_FORBID_CASKS is a new environment variable that forbids all casks.
    • HOMEBREW_VERIFY_ATTESTATIONS must be explicitly set again, even for HOMEBREW_DEVELOPERs.
    • brew no longer copies across zeroed environment-variable values.
    • brew resets the sudo timestamp later so it’s not done by e.g. brew --prefix or brew shellenv but remains done by e.g. brew install.
    • brew --debug output is a bit quieter by default.
    • brew bundle no longer uses the brew tap --force-auto-update option as it was removed.
    • brew bundle better handles cask renames for brew bundle and brew bundle dump.
    • brew bundle refers to “formulae” rather than “brews” for consistency with other parts of Homebrew.
    • brew bundle add will create a Brewfile if it doesn’t exist.
    • brew cleanup doesn’t warn when loading a renamed cask.
    • brew install outputs a better error message when there are tap conflicts.
    • brew install --ask will also prompt before installing casks.
    • brew uninstall won’t suggest deleting configuration files that belong to other formulae.
    • brew update displays descriptions for new formulae and casks.
    • brew update will migrate taps from master to main when necessary.
    • brew pin returns a non-zero exit code if pinning formulae that are not installed.
    • brew sh and brew bundle sh use more of the user’s configuration but provide a custom prompt.
    • brew audit ensures that official formula and cask names don’t conflict.
    • brew deps outputs a warning when runtime dependencies are not used (so results may be inconsistent or confusing).
    • env_script_all_files in formulae won’t overwrite existing files.

    Finally:

    • Homebrew is now on Bluesky.
    • Homebrew accepts donations through GitHub Sponsors and still accepts donations through Patreon. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), check out the other ways to donate in our README.

    Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.

    Original source
  • Apr 29, 2025
    • Date parsed from source:
      Apr 29, 2025
    • First seen by Releasebot:
      Jul 29, 2026
    Homebrew logo

    Homebrew

    4.5.0

    Homebrew releases 4.5.0 with major brew bundle and brew services improvements, preliminary Linux cask support, official support tiers, ARM64 Linux progress, and Ruby 3.4. It also adds faster installs, new install and update options, and several deprecations and removals.

    Today, I’d like to announce Homebrew 4.5.0. The most significant changes since 4.4.0 are major improvements to brew bundle / services, preliminary Linux support for casks, official Support Tiers, Tier 2 ARM64 Linux support, Ruby 3.4 and several deprecations.

    Major changes and deprecations since 4.4.0

    brew bundle and brew services

    • The documentation for Homebrew Bundle, brew bundle and Brewfile has been hugely improved. It also documents the many new brew bundle features and changes in this release.
    • brew bundle and brew services are built-in commands instead of being provided by an external tap.
    • brew bundle (exec|env|sh) no longer filter the user’s environment (like other brew commands do)
    • brew services supports passing multiple formulae
    • Brewfiles have a version_file: DSL that allows brew bundle to write to e.g. a .ruby-version file based on the installed version
    • brew bundle no longer includes ${HOMEBREW_PREFIX}/bin in the $PATH by default. You can do this in your Brewfile with ENV["PATH"] = "#{HOMEBREW_PREFIX}/bin:#{ENV["PATH"]}".

    Linux casks

    • Some Homebrew casks are supported on Linux. Right now these are mostly fonts and those with Linux binaries. Some casks will never be available on Linux, such as those for macOS-specific software. The Homebrew Linux fonts cask tap has been deprecated as a result.
    • brew bump-cask-pr allows bumping multi-platform casks on Linux

    Support Tiers

    • Homebrew has three documented Support Tiers plus Unsupported. Tier 1, previously called “supported”, is where you’ll get bottles/binary packages and we have CI coverage.
    • brew doctor links to Support Tiers
    • brew doctor checks for OpenCore Legacy Patcher
    • Clarify that the OpenCore Legacy Patcher is Tier 2 or 3

    ARM64 Linux

    • Homebrew provides a Portable Ruby for ARM64 Linux. This is the first step towards hopefully being able to provide Tier 1 support for ARM64 Linux in the future.
    • Homebrew refers to ARM64 Linux, not AArch64 Linux (for consistency with macOS)
    • Homebrew publishes some ARM64 Docker images

    Ruby

    • Homebrew provides Portable Ruby 3.4.3. It also requires Ruby >=3.4 to run.
    • Homebrew has enabled Bootsnap by default. This should make repeated invocations of brew much faster.

    Deprecations

    • Homebrew 4.5’s various deprecations/disables/removals
    • The Ubuntu 18 Docker image has been removed

    Other changes since 4.4.0 I’d like to highlight are the following:

    • brew install --ask and HOMEBREW_ASK allow viewing the packages, dependencies and sizes in a prompt before installation
    • brew install --skip-link allows installation without running brew link
    • brew update-if-needed provides a much faster possible replacement for brew update that does nothing if no auto-update is required
    • brew install --as-dependency allows installation of formulae as dependencies rather than “on request”
    • brew allows being run by root in podman containers
    • HOMEBREW_TEMP defaults to /var/tmp on Linux, assuming it exists, is readable and is writable
    • brew install --cask produces fewer GitHub Actions warnings
    • Homebrew supports GCC 15
    • brew pyenv-sync creates major version symlinks to fix pyenv support
    • The Homebrew macOS .pkg installer will upgrade existing installations
    • HOMEBREW_UPGRADE_GREEDY_CASKS allows specifying a list of casks that should always be upgraded with --greedy
    • Formulae can include PowerShell (pwsh) or clap completions.
    • @@HOMEBREW_PREFIX@@ can be replaced with the value of HOMEBREW_PREFIX in external patches
    • brew alias and brew unalias commands are part of Homebrew/brew rather than an external tap
    • brew edit and brew bundle edit look for VSCode variants, e.g. Cursor
    • brew bump* can bump synced formulae together
    • brew *env-sync has a HOMEBREW_ENV_SYNC_STRICT mode for stricter version handling
    • In formulae and casks, deprecate!/disable! support specifying replacement software and can specify replacement type
    • brew bump-* only warns, rather than errors, on duplicate PRs for non-official taps
    • brew verify allows verifying package attributions
    • brew audit flags pkg-config dependencies in core tap. We have fully moved to using pkgconf in Homebrew/homebrew-core instead.
    • Formulae allow using Sequoia’s jq instead of Homebrew’s
    • brew config prints the current Homebrew/brew branch
    • Homebrew’s Tabs/INSTALL_RECEIPT.json include the bottle_rebuild in runtime_dependencies
    • Homebrew will use macOS’s new lockf where available
    • Homebrew’s CI is no longer running brew tests on macOS 13. It was too slow and we’re dropping macOS 13 support later this year.

    Finally:

    • Homebrew has switched to SSH-based Git commit signing
    • Homebrew has provided FAQs about their relationship with Workbrew
    • Homebrew accepts donations through GitHub Sponsors and still accepts donations through Patreon. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), check out the other ways to donate in our README.

    Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.

    Original source
Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.

Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.