35845 Commits

Author SHA1 Message Date
Patrick Linnane
cb15b67b8e
various: correct Style/CollectionQuerying
Signed-off-by: Patrick Linnane <patrick@linnane.io>
2025-07-11 10:43:00 -07:00
Patrick Linnane
b952ec1b0b
rubocop: update cop name
Signed-off-by: Patrick Linnane <patrick@linnane.io>
2025-07-11 10:42:38 -07:00
BrewTestBot
ac57e48885
Update RBI files for dependabot.
Autogenerated by the [vendor-gems](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/vendor-gems.yml) workflow.
2025-07-11 17:02:54 +00:00
BrewTestBot
f3db247045
brew vendor-gems: commit updates. 2025-07-11 17:02:23 +00:00
dependabot[bot]
d4325c0137
build(deps): bump the dependabot group across 1 directory with 25 updates
---
updated-dependencies:
- dependency-name: rubocop-ast
  dependency-version: 1.45.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependabot
- dependency-name: ruby-prof
  dependency-version: 1.7.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: vernier
  dependency-version: 1.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependabot
- dependency-name: rubocop
  dependency-version: 1.77.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependabot
- dependency-name: rubocop-sorbet
  dependency-version: 0.10.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: parallel_tests
  dependency-version: 5.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependabot
- dependency-name: rspec
  dependency-version: 3.13.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: rspec-core
  dependency-version: 3.13.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: rspec-expectations
  dependency-version: 3.13.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: sorbet-static-and-runtime
  dependency-version: 0.5.12221
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: spoom
  dependency-version: 1.7.4
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependabot
- dependency-name: sorbet-static-and-runtime
  dependency-version: 0.5.12222
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: sorbet-runtime
  dependency-version: 0.5.12222
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: tapioca
  dependency-version: 0.17.5
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependabot
- dependency-name: ruby-lsp
  dependency-version: 0.24.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependabot
- dependency-name: csv
  dependency-version: 3.3.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: base64
  dependency-version: 0.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependabot
- dependency-name: sorbet-runtime
  dependency-version: 0.5.12222
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: benchmark
  dependency-version: 0.4.1
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: bigdecimal
  dependency-version: 3.2.2
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: dependabot
- dependency-name: json
  dependency-version: 2.12.2
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: rbi
  dependency-version: 0.3.6
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: rbs
  dependency-version: 4.0.0.dev.4
  dependency-type: indirect
  update-type: version-update:semver-major
  dependency-group: dependabot
- dependency-name: rspec-mocks
  dependency-version: 3.13.5
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: rspec-support
  dependency-version: 3.13.4
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: sorbet
  dependency-version: 0.5.12222
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dependabot
- dependency-name: sorbet-static
  dependency-version: 0.5.12222
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dependabot
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-11 15:38:40 +00:00
Mike McQuaid
eec800149f
Merge pull request #20238 from Homebrew/fix_rubocop_fixture_style
`fixtures/rubocop@x.x.x.rbi`: fix style.
2025-07-11 13:17:54 +00:00
Mike McQuaid
370ce002e9
Merge pull request #20237 from Homebrew/actionlint_skip_homebrew_brew
style: fix skipping actionlint checks on Homebrew/brew.
2025-07-11 13:06:52 +00:00
Issy Long
7f333ab6ec
Merge pull request #20235 from Homebrew/slash-not-plus-in-paths
rubocops/text: Prefer `lib/"string"` over `lib+"string"`
2025-07-11 12:56:54 +00:00
Mike McQuaid
607ffafd9f
fixtures/rubocop@x.x.x.rbi: fix style.
At least for me locally: `brew style` complains about this and
`brew style --fix` autocorrects it.
2025-07-11 13:54:51 +01:00
Mike McQuaid
26bb16e26d
style: fix skipping actionlint checks on Homebrew/brew.
If we're running `brew style` on Homebrew/brew: let's ensure that we
don't run the `actionlint` checks as they are handled by the dedicated
`actionlint.yml` workflow.
2025-07-11 13:51:59 +01:00
Mike McQuaid
36a4cb42ed
Merge pull request #20233 from Homebrew/zero_zero_zero_zero
Add ZeroZeroZeroZero cop
2025-07-11 12:44:23 +00:00
Issy Long
d4d1b4a22a
rubocops/text: Prefer lib/"string" over lib+"string"
- I found a few occurrences of this pattern from
  https://github.com/orgs/Homebrew/projects/5?pane=issue&itemId=97021840,
  that is an automated style request for:
  `core: use / instead of + operator in e.g. (lib+"lv").install "lv.hlp"`.
- Upon adding tests I realised that there's also the `prefix + "bin"`
  case that's already handled differently, so let's combine the handling
  given it's the same `+` that's wrong.
2025-07-11 13:41:58 +01:00
Mike McQuaid
d57efd9ea2
Improve some Pathname instance variable handling
Will fix or at least partly address:
```
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/os/linux/elf.rb:225: warning: The class Pathname reached 8 shape variations, instance variables accesses will be slower and memory usage increased.
35
It is recommended to define instance variables in a consistent order, for instance by eagerly defining them all in the #initialize method.
```
2025-07-11 08:02:27 +00:00
Mike McQuaid
71bab462e1
Add ZeroZeroZeroZero cop
Add a new RuboCop to detect the use of 0.0.0.0 in formulae which
indicates binding to all network interfaces, internally or externally,
so is a bad default and potentially a security risk.

Co-authored-by: Issy Long <me@issylong.com>
2025-07-11 08:24:19 +01:00
Mike McQuaid
a2bf23ef70
Merge pull request #20224 from Homebrew/cask_dumper_old_tokens
Support Cask renames when installing/dumping
2025-07-10 13:54:26 +00:00
Carlo Cabrera
0b99d57621
Merge pull request #20226 from Homebrew/formula-loading-stdout
formulary: prevent formulae from printing to stdout while being loaded
2025-07-10 12:43:42 +00:00
Carlo Cabrera
69ce5edd14
formulary: improve style
Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2025-07-10 20:27:52 +08:00
Mike McQuaid
b53f3b570c
Merge pull request #20228 from Paulchen5/use-github-secrets-in-workflow
Replace `github.token` by `secrets.GITHUB_TOKEN`
2025-07-10 08:32:40 +00:00
Mike McQuaid
5bc5d53a23
Merge pull request #20229 from Homebrew/attestation_opt_in
attestation: require explicit opt-in.
2025-07-10 08:24:48 +00:00
Mike McQuaid
17762fa77a
attestation: require explicit opt-in.
Work on this has stalled a bit and it slows things down so let's require
an explicit opt-in to use it.

While we're here, remove the silent/implicit opt-out for CI, too.
2025-07-10 09:10:08 +01:00
Mike McQuaid
e8bfa23877
Support Cask renames when installing/dumping
This adds support for Cask old tokens used for renames of Casks.

We'll now correctly check these at installation time to avoid repeatedly
installing renamed Casks and dump them in the Brewfile. We also use this
logic to avoid cleaning up renamed Casks.
2025-07-10 08:05:36 +00:00
Paulchen
b7b369270e
Replace github.token by secrets.GITHUB_TOKEN 2025-07-10 17:01:29 +09:00
Carlo Cabrera
6141c6a181
formulary: prevent formulae from printing to stdout while being loaded
Formulae can execute arbitrary Ruby code when being loaded. In
particular, they can print to stdout with methods like `puts`. This can
break the parsing of output of commands like `brew info --json=v2`.

Let's fix that by capturing the output to stdout, and then printing
those messages to stderr instead (using `opoo` to try to discourage
formula authors from doing this).
2025-07-10 03:58:39 +08:00
Issy Long
50c3181cdb
Rename the brew_{dumper,installer}_spec.rb files
- The classes were renamed in 990c1efc16aad71254ae89e0b7983eee97696c72,
  but I forgot to rename the test filenames.
2025-07-09 17:47:08 +01:00
Eric Knibbe
0f2131484d
download_strategy: only require content-disposition header 2025-07-07 13:16:33 -04:00
Mike McQuaid
5ec756e0ca
Merge pull request #20193 from Homebrew/skinny-rubocop-rbi
Keep only the parts of `rubocop.rbi` that we actually use
2025-07-07 16:59:45 +00:00
Bo Anderson
2dfb8c0b76
style: run shfmt on real brew 2025-07-07 17:28:31 +01:00
BrewTestBot
d010adb903
sorbet: Update RBI files.
Autogenerated by the [sorbet](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/sorbet.yml) workflow.
2025-07-05 00:29:43 +00:00
Douglas Eichelberger
43b72d3633
Merge pull request #20213 from Homebrew/dug-20205
Exit non-zero when pinning uninstalled formula
2025-07-04 21:56:14 +00:00
Issy Long
ce8bf906c1
Retain the old brew bundle --brews flag for compatibility
https://github.com/Homebrew/brew/pull/20209#discussion_r2186099917
2025-07-04 22:02:59 +01:00
Douglas Eichelberger
e78cc286e0
Keep exiting zero on already pinned formulae 2025-07-04 13:55:12 -07:00
Douglas Eichelberger
f4bcda325a
Exit non-zero when pinning uninstalled formula 2025-07-04 13:28:54 -07:00
Issy Long
495b5bedde
Merge pull request #20209 from Homebrew/bundle-rename-brews-to-formulae
bundle: Rename "brews" to "formulae" for consistency
2025-07-04 20:21:38 +00:00
Issy Long
990c1efc16
bundle: Rename "brews" to "formulae" for consistency
- Homebrew Bundle referred to formulae as "brews". But it referred to
  casks as "casks" and taps as "taps".
- Let's use the same terminology everywhere.
- (I know that `brew "hello"` is the formula syntax in the Brewfile, so
  I'm not changing that (though would be up for it, in a backwards
  compatible manner), just making the code more consistent.)
2025-07-04 21:08:37 +01:00
Eric Knibbe
bb372b2665
Formula-Cookbook: improve download strategy info 2025-07-04 15:12:32 -04:00
Eric Knibbe
a7471e449e
cmd/info: fix brew info <formula> 2025-07-04 10:33:11 -04:00
Eric Knibbe
94606f343a
Merge pull request #20200 from Homebrew/consider-content-type
download_strategy: preserve cache upon text response
2025-07-04 02:18:45 +00:00
Eric Knibbe
eff4523074
download_strategy: preserve cache upon text response 2025-07-03 22:05:49 -04:00
Issy Long
836d85277f
Keep only the parts of rubocop.rbi that we actually use
- This file was _massive_ - over 60k lines and we had to bump the file
  size limit for pushes to the repo!
- This was because by default Tapioca, when it encounters a
  `require "rubocop"` during RBI generation, loads all of the cops ever
  because they're all classes inside `RuboCop::Cop`.
- There wasn't an easy way to control this at Tapioca generation time
  (we tried), so now we parse the generated RBI file and delete classes
  and method definitions that we don't use.
- I regenerated the RBIs (`brew tc --update rubocop`) and added new
  things to the allowlist until Sorbet came back green.
- Now the file is ~7k lines and 240K - much better!
2025-07-04 00:27:12 +01:00
Eric Knibbe
f5c5d26173
cmd/dev-cmd: fetch HOMEBREW_EVAL_ALL for --eval-all 2025-07-03 12:59:12 -04:00
Carlo Cabrera
57024a9f2d
Merge pull request #20195 from tyuwags/ask-option-refactoring
Ask option refactoring
2025-07-03 12:28:46 +00:00
Issy Long
4b85b24531
Merge pull request #20201 from Homebrew/fix-dry-run-install
Fix "undefined method 'name' for an instance of FormulaInstaller"
2025-07-03 10:47:12 +00:00
Issy Long
c7af63488d
Be more explicit that we want the formula name 2025-07-03 11:29:50 +01:00
Thibaut Hérault
ea240e5aad
Update Library/Homebrew/reinstall.rb
Co-authored-by: Carlo Cabrera <github@carlo.cab>
2025-07-02 15:43:24 -04:00
BrewTestBot
2e963b2e06
spdx: update license data.
Autogenerated by [a scheduled GitHub Action](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/spdx.yml).
2025-07-02 00:17:54 +00:00
Issy Long
5310c5e730
Fix "undefined method 'name' for an instance of FormulaInstaller"
- Because `name` is not a method on `FormulaInstaller`, instead
  `formula` shows the name.
- Fixes issue 20199.

Before:

```
$ brew install -n hello
Error: undefined method 'name' for an instance of FormulaInstaller
Warning: Removed Sorbet lines from backtrace!
Rerun with `--verbose` to see the original backtrace
/opt/homebrew/Library/Homebrew/install.rb:330:in 'Array#map'
/opt/homebrew/Library/Homebrew/install.rb:330:in 'Homebrew::Install.install_formulae'
```

After:

```
$ brew install -n hello
==> Would install 1 formula:
hello
```
2025-07-01 22:25:22 +01:00
Eric Knibbe
f92e961ff1
github_runner_matrix: fix skipped runner creation 2025-07-01 15:07:24 -04:00
Thibaut Hérault
a6aad3d12f
Update Library/Homebrew/upgrade.rb
Co-authored-by: Carlo Cabrera <github@carlo.cab>
2025-07-01 09:59:54 -04:00
thibhero
006d3779f3 returning early if upgradeable is blank
resolves #20197
2025-06-30 10:58:33 -04:00
thibhero
e3cc36a8b9 guard if keg or linked is nil 2025-06-30 10:57:41 -04:00