Commit Graph
51730 Commits
Author SHA1 Message Date
Michael Cho 94ab189257 requirements/macos_requirement: fix handling for Linux 2026-08-07 15:43:41 -04:00
Michael Cho 0691ed01cc dev-cmd/unbottled: fix macOS-only after changes for min/max handling 2026-08-07 13:35:31 -04:00
Mike McQuaidandGitHub d0319d2056 Merge pull request #23452 from dduugg/rubocop-1.89.0
Update rubocop to 1.89.0 and rubocop-sorbet to 0.14.0
2026-08-07 16:20:09 +00:00
Mike McQuaid f492b2dc72 Handle project index offences
- Ignore intentional bootstrap constant reassignments, RBI declarations
  and OS-specific method overrides.
- Allow valid names unavailable to the project-only index.
- Retain absolute core constants where inherited lookup can make the
  indexed autocorrection unsafe.
2026-08-07 17:00:27 +01:00
Mike McQuaid 21a016c3d8 Enable RuboCop project index 2026-08-07 17:00:27 +01:00
Douglas EichelbergerandMike McQuaid a923f27661 Update rubocop to 1.89.0
Also updates rubocop-sorbet (0.13.2 -> 0.14.0) and json (2.21.1 ->
2.21.2), which rubocop depends on.

Two suppressions can go away thanks to bug fixes in this release:

- rubocop/rubocop#15438 and rubocop/rubocop#15442 stop
  `Style/ArrayIntersect` firing when the `include?` receiver in a block
  is not an array literal, so the cop is re-enabled. It still cannot
  guarantee the *outer* receiver is an `Array`, and in
  `cask/artifact/abstract_uninstall.rb` that receiver is the `Enumerator`
  from `Pathname#each_filename`, which has no `intersect?`. Convert with
  `to_a` there rather than taking the autocorrect verbatim.
- rubocop/rubocop#15452 fixes the `Layout/HashAlignment` false positive on
  multi-line hash keys, so the two `delegate` disable comments in
  `formula.rb` are dead and removed.

One suppression is added: rubocop/rubocop#15493 makes
`Style/IfUnlessModifier` respect `Layout/LineLength`'s exemptions rather
than its `Max`. Several of our exemption patterns are unescaped regexes
(`"#{version."` matches `#{version}`, `#{version_text}` and
`#{version_info[...]}`), so the cop demanded modifier form for statements
that then ran to 179 characters. Disable the cop. Reported upstream as
rubocop/rubocop#15531.

rubocop-sorbet 0.14.0 widens `Sorbet/SetterReturnType` to cover setters
taking splat and keyword arguments, so several `depends_on` and ENV
setters switch to `.void`. Under `HOMEBREW_SORBET_RUNTIME` a `.void`
method returns the sentinel `T::Private::Types::Void::VOID`, which breaks
the two callers that consumed a setter's return value. Sorbet does not
catch either statically:

- `DependsOn#load` stored the result of `send(:"#{key}=", ...)` into the
  delegated hash, so the whole `depends_on` stanza became `VOID`. Read the
  value back through the matching reader instead.
- `Superenv#cc=` assigned `super` to `HOMEBREW_CC`, raising `TypeError:
  no implicit conversion of Module into String`. Assign from `val`.

Drop `extend/ENV/shared.rbi`, which existed to widen `[]=` to accept
`Pathname` and `PATH`. Without it `[]=` resolves to Sorbet's own
`ENVClass#[]=`, which takes `T.nilable(String)`, so the ENV assignments
convert explicitly with `to_s`/`&.to_s`. Both `Pathname` and `PATH`
define `to_str`, so Ruby was already converting implicitly and behaviour
is unchanged.

The remaining changes are new offenses in this release:

- `Lint/UselessAssignment` (rubocop/rubocop#12269) catches the
  `root_url = root_url =` workaround in `dev-cmd/tap-new.rb`. The Ruby
  `assigned but unused variable` warning it silenced no longer fires on
  our vendored Ruby, so drop it.
- `Style/RedundantParentheses` (rubocop/rubocop#15472) and
  `Layout/MultilineMethodCallIndentation` autocorrections.

The redundant `T.let` on `GitHub::API::ERRORS` is also dropped.

Claude-Session: https://claude.ai/code/session_01AdSQcU5MmY4VWiFdfrPeu2
2026-08-07 17:00:27 +01:00
Mike McQuaidandGitHub fdfe33a798 Merge pull request #23470 from Homebrew/stabilise-caveats-service-spec
Stabilise service caveats spec
2026-08-07 15:41:28 +00:00
Mike McQuaid 1f1e064bcf Stabilise service caveats spec 2026-08-07 16:10:51 +01:00
Mike McQuaidandGitHub 136ad7e229 Merge pull request #23451 from tftio/cargo-source-option
bundle: install cargo packages from a git URL or path
2026-08-07 14:08:40 +00:00
James Felix Black ea1188495a bundle: drop the cargo local-origin dump warning
A crate cargo reports as installed from a local origin is still dumped
as a registry crate, but without warning about the origin that could
not be expressed, which is noise for anyone who is content with the
crate they have.
2026-08-07 08:29:15 -04:00
Ruoyu ZhongandGitHub 368c8135cc Merge pull request #23466 from Homebrew/dependabot/bundler/Library/Homebrew/bundler-6665f5f057
build(deps): bump the bundler group across 2 directories with 8 updates
2026-08-07 09:01:41 +00:00
Ruoyu ZhongandGitHub 0f44e95dfb Merge pull request #23467 from Homebrew/dependabot/github_actions/github-actions-432e0d4de6
build(deps): bump the github-actions group across 1 directory with 3 updates
2026-08-07 08:37:09 +00:00
dependabot[bot]andGitHub 3064ef6f26 build(deps): bump the github-actions group across 1 directory with 3 updates
Bumps the github-actions group with 3 updates in the / directory: [github/codeql-action/upload-sarif](https://github.com/github/codeql-action), [github/codeql-action/init](https://github.com/github/codeql-action) and [github/codeql-action/analyze](https://github.com/github/codeql-action).


Updates `github/codeql-action/upload-sarif` from 4.37.3 to 4.37.4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81...f205ea1c3313d32999d8d6a48b4f6530d4437b38)

Updates `github/codeql-action/init` from 4.37.3 to 4.37.4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81...f205ea1c3313d32999d8d6a48b4f6530d4437b38)

Updates `github/codeql-action/analyze` from 4.37.3 to 4.37.4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81...f205ea1c3313d32999d8d6a48b4f6530d4437b38)

---
updated-dependencies:
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.37.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action/init
  dependency-version: 4.37.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.37.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-07 08:13:55 +00:00
github-actions[bot] 9927cbec60 brew vendor-gems: commit updates. 2026-08-07 08:10:11 +00:00
dependabot[bot]andGitHub 52dc53e244 build(deps): bump the bundler group across 2 directories with 8 updates
Bumps the bundler group with 2 updates in the /Library/Homebrew directory: [sorbet-static-and-runtime](https://github.com/sorbet/sorbet) and [json](https://github.com/ruby/json).
Bumps the bundler group with 3 updates in the /docs directory: [jekyll-optional-front-matter](https://github.com/benbalter/jekyll-optional-front-matter), [jekyll-relative-links](https://github.com/benbalter/jekyll-relative-links) and [jekyll-titles-from-headings](https://github.com/benbalter/jekyll-titles-from-headings).


Updates `sorbet-static-and-runtime` from 0.6.13365 to 0.6.13386
- [Release notes](https://github.com/sorbet/sorbet/releases)
- [Commits](https://github.com/sorbet/sorbet/commits)

Updates `sorbet-runtime` from 0.6.13365 to 0.6.13386
- [Release notes](https://github.com/sorbet/sorbet/releases)
- [Commits](https://github.com/sorbet/sorbet/commits)

Updates `json` from 2.21.1 to 2.21.2
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](https://github.com/ruby/json/compare/v2.21.1...v2.21.2)

Updates `sorbet` from 0.6.13365 to 0.6.13386
- [Release notes](https://github.com/sorbet/sorbet/releases)
- [Commits](https://github.com/sorbet/sorbet/commits)

Updates `sorbet-static` from 0.6.13365 to 0.6.13386
- [Release notes](https://github.com/sorbet/sorbet/releases)
- [Commits](https://github.com/sorbet/sorbet/commits)

Updates `jekyll-optional-front-matter` from 0.3.2 to 0.3.3
- [Release notes](https://github.com/benbalter/jekyll-optional-front-matter/releases)
- [Changelog](https://github.com/benbalter/jekyll-optional-front-matter/blob/main/CHANGELOG.md)
- [Commits](https://github.com/benbalter/jekyll-optional-front-matter/compare/v0.3.2...v0.3.3)

Updates `jekyll-relative-links` from 0.7.0 to 0.8.0
- [Release notes](https://github.com/benbalter/jekyll-relative-links/releases)
- [Changelog](https://github.com/benbalter/jekyll-relative-links/blob/main/CHANGELOG.md)
- [Commits](https://github.com/benbalter/jekyll-relative-links/compare/v0.7.0...v0.8.0)

Updates `jekyll-titles-from-headings` from 0.5.3 to 0.5.4
- [Release notes](https://github.com/benbalter/jekyll-titles-from-headings/releases)
- [Changelog](https://github.com/benbalter/jekyll-titles-from-headings/blob/main/CHANGELOG.md)
- [Commits](https://github.com/benbalter/jekyll-titles-from-headings/compare/v0.5.3...v0.5.4)

---
updated-dependencies:
- dependency-name: sorbet-static-and-runtime
  dependency-version: 0.6.13386
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: bundler
- dependency-name: sorbet-runtime
  dependency-version: 0.6.13386
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: bundler
- dependency-name: json
  dependency-version: 2.21.2
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: bundler
- dependency-name: sorbet
  dependency-version: 0.6.13386
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: bundler
- dependency-name: sorbet-static
  dependency-version: 0.6.13386
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: bundler
- dependency-name: jekyll-optional-front-matter
  dependency-version: 0.3.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: bundler
- dependency-name: jekyll-relative-links
  dependency-version: 0.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: bundler
- dependency-name: jekyll-titles-from-headings
  dependency-version: 0.5.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: bundler
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-07 08:09:20 +00:00
James Felix BlackandGitHub b4a81cf9ab Merge branch 'main' into cargo-source-option 2026-08-06 11:55:15 -04:00
James Felix Black bc5662a7b6 bundle: accept only remote git URLs as cargo sources
Neither a local path nor a file:// URL resolves on another machine, so
both are rejected when the Brewfile is parsed. A crate cargo reports as
installed from one is dumped as a registry crate rather than dropped,
with a warning naming the origin that could not be expressed.
2026-08-06 11:51:28 -04:00
Mike McQuaidandGitHub 73720671af Merge pull request #23455 from HaraldNordgren/concise-auto-update-package-list
Add quiet mode for automatic updates
2026-08-06 12:29:20 +00:00
Harald Nordgren 225514741d Add quiet mode for automatic updates 2026-08-06 14:07:03 +02:00
Mike McQuaidandGitHub 617a2175be Merge pull request #23456 from AlternateRT/audit-reject-verified-on-new-casks
cask/audit: reject verified parameter on new casks
2026-08-06 10:35:48 +00:00
AltCode ae064079da cask/audit: reject verified parameter on new casks 2026-08-06 12:06:07 +02:00
Mike McQuaidandGitHub 17b5cd7632 Merge pull request #23373 from Homebrew/install-step-remove-var-default
Remove the formula install-step var default (29/29)
2026-08-06 09:04:28 +00:00
Mike McQuaid 5e4dba4d6b Remove the formula install-step var default
Formula install-step paths now serialise only a base that was explicitly
specified. RuboCop prevents relative official-tap paths from relying on the
current working directory.

Run structured-only API post-installs from the current JSON data so old
formula snapshots embedded in bottles cannot restore the removed default.
Keep using bottle snapshots for formulae that still have Ruby hooks.
2026-08-06 08:30:57 +01:00
Mike McQuaidandGitHub ad31b20e98 Merge pull request #23258 from kmarekspartz/autogenerated-files-trigger
workflows: check autogenerated files when commands change
2026-08-06 07:30:49 +00:00
Mike McQuaidandGitHub 44f506abd4 Merge pull request #23448 from Homebrew/sync-shared-config
Synchronize shared configuration
2026-08-06 02:00:31 +00:00
Kyle Marek-SpartzandGitHub c43bdd0d0d Merge branch 'main' into autogenerated-files-trigger 2026-08-05 17:39:45 -05:00
Mike McQuaidandGitHub a084a7df0e Merge pull request #23453 from AlternateRT/rubocop-adjust-os-depends-on
rubocops: adjust `depends_on` checks for Linux
2026-08-05 20:21:33 +00:00
AltCode 729981c16d rubocops: adjust depends_on checks for Linux 2026-08-05 20:28:14 +02:00
James Felix BlackandGitHub 7b7896482f Merge branch 'main' into cargo-source-option 2026-08-05 14:24:39 -04:00
James Felix Black 8ef369e1fa bundle: validate cargo sources when the Brewfile is parsed
Two forms were accepted at parse time that `cargo install` cannot act
on, so the failure surfaced later and less clearly.

`--git` takes a URL and rejects an scp-style remote outright, naming
the `ssh://` form to use instead, so require a scheme rather than also
accepting anything ending in `.git`.

Only a `branch`, `tag` or `rev` query is restored as a `cargo install`
flag. Any other query was accepted and then silently dropped, which
left the installed origin unequal to the `Brewfile` entry and so made
`brew bundle check` report the crate missing on every run.
2026-08-05 14:15:30 -04:00
James Felix Black 86ad0327e6 bundle: install cargo packages from a git URL or path
`cargo "name"` could only install from crates.io. Accept a `source:`
option naming a git URL or a local path, mirroring the `uv` extension,
and install with `cargo install --git` or `cargo install --path`.

`cargo install --list` reports the origin of anything not installed
from a registry, so dumped Brewfiles round-trip. The resolved commit is
dropped, since a dumped entry has to compare equal to a hand-written
one, while a branch, tag or revision chosen at install time is carried
in the URL query and restored with `--branch`, `--tag` or `--rev`.
2026-08-05 14:00:28 -04:00
Mike McQuaidandGitHub 0c43785fe6 Merge pull request #23450 from Homebrew/sorbet-files-update
sorbet: Update RBI files.
2026-08-05 16:50:35 +00:00
Mike McQuaidandGitHub 271b3f5d38 Merge pull request #23404 from Homebrew/install-step-explicit-var-enforcement
Enforce explicit formula install-step bases (28/29)
2026-08-05 16:42:09 +00:00
BrewTestBot f733dc1043 sorbet: Update RBI files.
Autogenerated by the [sorbet](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/sorbet.yml) workflow.
2026-08-05 16:29:32 +00:00
Mike McQuaidandGitHub c8c7573865 Merge pull request #23449 from AbishekRaj2007/use-public-send-over-send
Use `public_send` instead of `send` for public methods
2026-08-05 16:28:15 +00:00
Mike McQuaidandGitHub 64cf02d234 Merge pull request #23433 from Homebrew/cask-explicit-os-support
Treat cask OS support as explicit data
2026-08-05 16:24:09 +00:00
Abishek Raj R RandGitHub 04f0346867 Merge branch 'main' into use-public-send-over-send 2026-08-05 21:05:18 +05:30
Mike McQuaid 8c5f51cfc8 Enforce explicit formula install-step bases
- Reject relative formula step paths without an explicit base.
- Autocorrect paths that previously relied on the temporary `var`
  compatibility default.
- Keep absolute paths and install-time path tokens unchanged.
2026-08-05 16:24:27 +01:00
Mike McQuaid 233377e66a Treat cask OS support as explicit data
- Align casks with formulae: platform support comes from
  `depends_on :macos`/`:linux`/`macos:` data rather than generation
  heuristics guessing intent from `os` stanzas, Linux checksums or
  `on_linux` blocks.
- `Cask#to_hash_with_variations` now emits variations for every
  valid OS/arch tag whenever `on_system` blocks exist, matching
  `Formula#to_hash_with_variations`; the Linux-specific gate and its
  `sha256_set_for_linux?` and `on_linux_blocks_exist?` tracking are
  removed. macOS-only casks publish truthful Linux variations, e.g.
  a `null` `sha256`, instead of omitting them.
- `Cask::Installer` gains a first-class unsupported-system error:
  API-loaded casks with no activatable artifact for the running
  system fail with "This cask is not available on macOS/Linux."
  instead of installing nothing. Audited casks always declare an
  activatable artifact for the systems they support, so missing
  artifacts in API data mean the system is unsupported. Source
  loads keep working for unaudited casks, e.g. naked containers.
- A sweep of the full homebrew/cask generation pipeline (all casks,
  both Linux tags, including internal per-tag payloads) confirmed
  no cask needs new `depends_on` annotations and nothing regresses.
2026-08-05 16:23:33 +01:00
Abishek Raj R RandGitHub b7c55dafa0 Merge branch 'main' into use-public-send-over-send 2026-08-05 20:53:15 +05:30
Mike McQuaidandGitHub 4798afc8f1 Merge pull request #23447 from AlternateRT/fix-appimage-cask-dsl
Fix AppImage's stanza name in cask DSL
2026-08-05 15:16:59 +00:00
AbishekRaj2007 b6eec366c0 Use public_send instead of send for public methods
A few spots were calling send on methods that are already public
(stable, head, deps.build/required/recommended/optional, and
SimulateSystem's os check), so there was no real need for the
private-method backdoor. Switching to public_send makes that clear
and keeps Ruby's privacy checks in place if that ever changes.
2026-08-05 20:36:04 +05:30
BrewTestBot e76f0a4ba6 check-prs.yml: update to match main configuration 2026-08-05 15:02:02 +00:00
AltCode a34997fa55 Document new artifacts 2026-08-05 13:57:09 +02:00
Mike McQuaidandGitHub 67658c8cf6 Merge pull request #23366 from Homebrew/install-step-26-official-hook-enforcement
Reject official legacy install hooks (26/26)
2026-08-05 11:33:49 +00:00
AltCode 497536f560 Fix AppImage's stanza name in cask DSL 2026-08-05 12:46:45 +02:00
Mike McQuaidandGitHub 9e0022780b Merge pull request #23444 from Homebrew/revert-23414-dmg-diskutil-image
Revert "unpack_strategy/dmg: use `diskutil image` on macOS 14+"
2026-08-05 08:35:44 +00:00
Mike McQuaidandGitHub 8ea50ea2f4 Revert "unpack_strategy/dmg: use diskutil image on macOS 14+" 2026-08-05 09:19:00 +01:00
Andrew NesbittandGitHub fcec8a10f1 Merge pull request #23152 from kmarekspartz/vulns-fix-available-flag
vulns: add --fix-available and --no-fix-available flags
2026-08-05 07:52:19 +00:00
Andrew NesbittandGitHub fd73448209 Merge branch 'main' into vulns-fix-available-flag 2026-08-05 08:33:53 +01:00