Commit Graph
51746 Commits
Author SHA1 Message Date
Mike McQuaidandGitHub c84082db3a Merge pull request #23476 from SSakutaro/fix-sandboxed-cask-sudo
Allow sudo in sandboxed Cask install steps
2026-08-09 10:49:59 +00:00
Michka PopoffandGitHub d78e977efa Merge pull request #23477 from Homebrew/feature/ghcr-license-limit-255
util: spdx license tag limit from 256 to 255
2026-08-09 10:22:59 +00:00
Daeho Ro 846833c5f7 util: spdx license tag limit from 256 to 255
-----

<!-- Only tick a checkbox once you've done it; honesty keeps reviews smooth. -->
<!-- Tick with [x] before creating, or click the boxes afterwards. -->
<!-- Don't delete these checkboxes or this pull request is closed automatically. -->

- [x] Have you followed our [Contributing](https://github.com/Homebrew/brew/blob/HEAD/CONTRIBUTING.md) guidelines?
- [x] Have you checked for other open [Pull Requests](https://github.com/Homebrew/brew/pulls) for the same change?
- [x] Have you explained what your changes do? Performance claims (e.g. "this is faster") must include [Hyperfine](https://github.com/sharkdp/hyperfine) benchmarks.
- [x] Have you explained why you'd like these changes included, not just what they do?
- [ ] For bug fixes, have you given step-by-step `brew` commands to reproduce the bug?
- [ ] Have you written new tests (excluding integration tests)? [Here's an example](https://github.com/Homebrew/brew/blob/HEAD/Library/Homebrew/test/PATH_spec.rb).
- [x] Have you successfully run `brew lgtm` (style, typechecking and tests) locally?

-----

- [ ] AI was used to generate or assist with generating this PR.

<!-- If ticked, explain below how AI was used and how you verified the changes. Non-maintainers may only have one AI-assisted PR open at a time. See https://docs.brew.sh/Responsible-AI-Usage for guidance. -->

-----

License tag for OCI image limit 256 chars by documentation but it is actually failed with 256 chars. I have tested my own private repo for this and 255 is fine to use.

`mesa` is failed because of this,
- https://github.com/Homebrew/homebrew-core/pull/294670
2026-08-09 16:30:26 +09:00
Sakutaro Shiina d00ee3faaa Handle implicit sudo in sandboxed cask steps 2026-08-09 15:17:51 +09:00
Sakutaro Shiina 31e21f1753 Allow sudo in sandboxed cask install steps 2026-08-09 12:56:31 +09:00
Mike McQuaidandGitHub 6337b35945 Merge pull request #23475 from Homebrew/reject-post-install-coexistence
Enforce structured install step authoring
2026-08-09 01:56:59 +00:00
Mike McQuaid 601472bfda Enforce structured install step authoring
- reject mixing formula install hooks in every tap
- autocorrect legacy step methods and keywords
- retain stable serialised API values for compatibility
- document canonical Formula and Cask step authoring
- remove the resolved Cask sandbox deprecation reminder
2026-08-08 15:06:51 +01:00
Mike McQuaidandGitHub 749b3557cc Merge pull request #23474 from AbishekRaj2007/public-send-remaining-call-sites
Use .public_send instead of .send for calls to public methods
2026-08-08 13:16:35 +00:00
AbishekRaj2007 3a65eb6acb Use .public_send instead of .send for calls to public methods 2026-08-08 17:01:08 +05:30
Mike McQuaidandGitHub b1f5207994 Merge pull request #23468 from Homebrew/bottled-post-install-inputs
Use bottled inputs and add RuboCop guard
2026-08-08 07:41:01 +00:00
Mike McQuaid f38b89391e Use bottled inputs and add RuboCop guard
- Discover CPython wheels already packaged in each keg.
- Expand PyPy bootstrap archives packaged in `libexec`.
- Resolve dependency paths without loading formula source.
- Validate helper executables before attempting to run them.
- Enforce source independence with RuboCop and API-loaded tests.
- Keep the internal JSON API unchanged and minimal.
2026-08-08 08:17:46 +01:00
Mike McQuaidandGitHub fe24bd2dc9 Merge pull request #23472 from Homebrew/fresh-official-tap
Fetch official tap HEAD for worktrees
2026-08-08 04:12:54 +00:00
Mike McQuaidandGitHub 0df0c9625a Merge pull request #23461 from Homebrew/sandbox-cask-install-step-commands
Sandbox structured cask operations
2026-08-08 04:10:10 +00:00
Michael ChoandGitHub 8ea475e23d Merge pull request #23473 from Homebrew/fix-macos-only
requirements/macos_requirement: fix handling for Linux
2026-08-07 20:33:09 +00:00
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 McQuaid 900fef4e8c Fetch official tap HEAD for worktrees
- Avoid creating official tap worktrees from a stale local branch.
- Preserve source state and offline fallback to the existing `HEAD`.
2026-08-07 16:49:55 +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
Mike McQuaid f8fcbd88e0 Sandbox structured cask operations
- Run each complete cask step block in one isolated subprocess and all
  generated completions in another phase-scoped sandbox.
- Share sandbox selection, fork fallback, install-hook rules and child
  error reporting with formula build, post-install and test processes.
- Restrict home, network and filesystem access while preserving `brew`
  and supporting explicit command write paths.
- Keep JSON payloads compact and independent of cask Ruby files.
- Remove the completed official-tap migration plan.
2026-08-07 08:37:09 +01: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