195 Commits

Author SHA1 Message Date
BrewTestBot
2911ea1117
Update RBI files for sorbet.
Autogenerated by the [vendor-gems](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/vendor-gems.yml) workflow.
2025-04-04 15:17:28 +00:00
BrewTestBot
12e2818d1b
sorbet: Update RBI files.
Autogenerated by the [sorbet](https://github.com/Homebrew/brew/blob/master/.github/workflows/sorbet.yml) workflow.
2025-04-03 08:12:33 +00:00
Mike McQuaid
e537b716e8
Merge pull request #19685 from botantony/bump-no-auto
dev-cmd/bump: add `--no-autobump` flag
2025-04-03 07:47:20 +00:00
Mike McQuaid
89d0309b9c
Add brew bundle --upgrade-formulae
This flag allows you to specify formulae to upgrade, even if
`$HOMEBREW_BUNDLE_NO_UPGRADE` is set.

This is useful for upgrading specific formulae without upgrading all
formulae.

While we're here, let's add Sorbet signatures to the `Bundle` module
because I needed to add a new method there anyway.
2025-04-02 17:15:36 +01:00
botantony
aa86fcc9b3
dev-cmd/bump: suggestions from MikeMcQuaid
Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
Signed-off-by: botantony <antonsm21@gmail.com>
2025-04-02 17:23:09 +02:00
botantony
e3875f790e
dev-cmd/bump: add --no-auto flag
I do not like that `brew bump` command checks every single formula/cask,
even ones updated by BrewTestBot. Instead of showing useful info about
outdated packages, my terminal buffer is fludded with `Formula is
autobumped so will have bump PRs opened by BrewTestBot every ~3 hours`.
This flag excludes autobumped packages before checking them.

Signed-off-by: botantony <antonsm21@gmail.com>
2025-04-02 16:44:44 +02:00
Mike McQuaid
9560c01453
Enable Bootsnap by default
- do some optimisation of `require`s before Bootsnap
- remove `HOMEBREW_BOOTSTRAP` environment variable as it's set by
  default
- add fast require in `bootsnap.rb` using logic from `ruby.sh`
- cleanup `bootsnap.rb` a bit
- remove setting `HOMEBREW_BOOTSNAP` in GitHub Actions
2025-03-31 17:55:07 +01:00
Bo Anderson
c7e8b66da3
bundle: add --services flag for sh and exec 2025-03-28 05:54:57 +00:00
Bo Anderson
0b58e8fd37
services: add --keep flag 2025-03-28 05:21:05 +00:00
BrewTestBot
c1c35b5473
Update RBI files for rubocop.
Autogenerated by the [vendor-gems](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/vendor-gems.yml) workflow.
2025-03-27 21:16:43 +00:00
Carlo Cabrera
6c49462b41
Merge pull request #19593 from Homebrew/dispatch-arm64-linux
dev-cmd/dispatch-build-bottle: support arm64 Linux
2025-03-25 08:52:12 +00:00
Carlo Cabrera
40588b0ad9
dev-cmd/dispatch-build-bottle: support arm64 Linux
This will make it easier to dispatch bottle builds for arm64 Linux.
2025-03-25 11:03:37 +08:00
Mike McQuaid
61bb2f6225
cmd/*env-sync: add HOMEBREW_ENV_SYNC_STRICT mode.
If this variable is set, `brew *env-sync` will only sync the exact
installed versions of formulae rather than all the patch (or, for node,
minor and patch) versions.
2025-03-24 15:00:16 +00:00
Mike McQuaid
e41a1f6d8a
Add brew install --as-dependency
This option avoids needing to immediately use
`brew tab --no-installed-on-request` when manually installing a
dependency.
2025-03-21 15:49:22 +00:00
Mike McQuaid
bdeca530ff
Migrate Homebrew/bundle to Homebrew/brew
Co-authored-by: Bo Anderson <mail@boanderson.me>
2025-03-19 06:47:01 +00:00
BrewTestBot
b28d170972
sorbet: Update RBI files.
Autogenerated by the [sorbet](https://github.com/Homebrew/brew/blob/master/.github/workflows/sorbet.yml) workflow.
2025-03-15 00:26:29 +00:00
Douglas Eichelberger
c9a6bd6438
Merge pull request #19475 from Homebrew/typed-system-command
refactor: Enable strict typing in download_strategy
2025-03-14 22:34:17 +00:00
BrewTestBot
90ab32b7da Update RBI files for sorbet.
Autogenerated by the [vendor-gems](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/vendor-gems.yml) workflow.
2025-03-14 15:07:40 -04:00
botantony
3ef52e4844
services: migrate command to main repo (WIP) 2025-03-13 13:22:01 +00:00
Douglas Eichelberger
1ca5299f40
refactor: Enable strict typing in download_strategy 2025-03-12 15:15:20 -07:00
thibhero
f0f2e59fb7 Merge branch 'master' into ask-test
# Conflicts:
#	Library/Homebrew/vendor/bundle/bundler/setup.rb
2025-03-06 00:12:32 -05:00
BrewTestBot
e8ce2d6fdc
sorbet: Update RBI files.
Autogenerated by the [sorbet](https://github.com/Homebrew/brew/blob/master/.github/workflows/sorbet.yml) workflow.
2025-03-06 00:26:37 +00:00
Douglas Eichelberger
fcf18912fe
Inline use of attr_predicate 2025-03-02 21:36:03 -08:00
BrewTestBot
4b2ce255ec
Update RBI files for sorbet.
Autogenerated by the [vendor-gems](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/vendor-gems.yml) workflow.
2025-02-25 19:00:23 +00:00
Mike McQuaid
b1559f38a0
Add HOMEBREW_UPGRADE_GREEDY_CASKS
A space-separated list of casks. Homebrew will act as if `--greedy`
was passed when upgrading any cask on this list.
2025-02-25 15:34:49 +00:00
Douglas Eichelberger
3ef22f3181
Inline use of attr_rw 2025-02-23 13:18:49 -08:00
BrewTestBot
88751b7db9
sorbet: Update RBI files.
Autogenerated by the [sorbet](https://github.com/Homebrew/brew/blob/master/.github/workflows/sorbet.yml) workflow.
2025-02-22 00:24:35 +00:00
botantony
4adb910a8b
create.rbi: add zig 2025-02-21 15:17:55 +01:00
thibhero
63f94708b0 running brew typecheck --update 2025-02-18 22:42:08 -05:00
thibhero
b457b764c9 Merge branch 'upgrade-reinstall-size' into install-size 2025-02-16 00:07:31 -05:00
Douglas Eichelberger
d8c790dddc Use delegation to create Cask DSL methods 2025-02-11 08:33:04 -08:00
thibhero
db10b644ad updating typecheck 2025-02-10 23:18:56 -05:00
thibhero
92470e0028 adding the --ask option for the upgrade command 2025-02-09 20:47:35 -05:00
Thibaut Hérault
fc91ddc518
Merge branch 'master' into install-size 2025-02-07 17:45:21 -05:00
thibhero
403887deb6 moving back to --ask option 2025-02-07 15:23:36 -05:00
Mike McQuaid
6f99704a64
Import brew formula-analytics and generate-analytics-api commands
Import these from the homebrew/formula-analytics tap and deprecate
that tap.

This required a little messing around with filenames and paths to get
it finding Python and writing to the user's home directory.
2025-02-07 20:05:05 +00:00
thibhero
1992bb44b2 moving ask? to install_ask? 2025-02-07 14:15:41 -05:00
thibhero
f3c2d27cd0 Updating env and option, now using --install-ask 2025-02-07 13:57:51 -05:00
Mike McQuaid
8adc188992
Import brew alias and brew unalias commands
Import these from the homebrew/aliases tap and deprecate that tap.

This required a little messing around with class/module/constant names
to get `brew tests` and `brew typecheck` to play nicely.

I added also added Sorbet type signatures and integration tests.
2025-02-07 14:31:50 +00:00
Thibaut Hérault
c575566928
Merge branch 'master' into install-size 2025-02-06 13:22:26 -05:00
thibhero
c8a9cfa4d0 Add support for the HOMEBREW_ASK environment variable 2025-02-06 09:07:55 -05:00
Adrian Ho
956b71eeed update-python-resources: add option to ignore errors
This is particularly useful for third-party Python formulae that have a ton of resources, not all of which may adhere to homebrew/core's strict policies. See #19240 for context.

I've also added logic that ignores `--ignore-errors` on `homebrew/core`, although I personally think this new behavior is also useful for mainline formula creation.

Before: error out on a single non-conforming resource, zero resource blocks added to formula, scary stacktrace.

After: all conforming resources added, all non-conforming resources identified in comments, error message at end, `brew` exits non-zero without scary stacktrace:-
```
% brew update-python-resources --ignore-errors gromgit/test/auto-coder || echo OOPS
==> Retrieving PyPI dependencies for "auto-coder==0.1.243"...
==> Retrieving PyPI dependencies for excluded ""...
==> Getting PyPI info for "aiohappyeyeballs==2.4.4"
[200+ resource lines elided]
==> Getting PyPI info for "zhipuai==2.1.5.20250106"
==> Updating resource blocks
Error: Unable to resolve some dependencies. Please check /opt/homebrew/Library/Taps/gromgit/homebrew-test/Formula/auto-coder.rb for RESOURCE-ERROR comments.
OOPS

% brew cat gromgit/test/auto-coder | ggrep -C10 RESOURCE-ERROR
  license "Apache-2.0"

  depends_on "python@3.11"

  # Additional dependency
  # resource "" do
  #   url ""
  #   sha256 ""
  # end

  # RESOURCE-ERROR: Unable to resolve "azure-cognitiveservices-speech==1.42.0" (no suitable source distribution on PyPI)
  # RESOURCE-ERROR: Unable to resolve "ray==2.42.0" (no suitable source distribution on PyPI)

  resource "aiohappyeyeballs" do
    url "e4373e888f/aiohappyeyeballs-2.4.4.tar.gz"
    sha256 "5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"
  end

  resource "aiohttp" do
    url "952d49c730/aiohttp-3.11.12.tar.gz"
    sha256 "7603ca26d75b1b86160ce1bbe2787a0b706e592af5b2504e12caa88a217767b0"
  end
```
2025-02-06 21:20:55 +08:00
thibhero
e7e34c40f1 Adding the function ask to check if option is present 2025-02-05 19:06:09 -05:00
William Woodruff
04bde137e9
regenerate hints
Signed-off-by: William Woodruff <william@yossarian.net>
2025-02-03 17:09:14 +01:00
William Woodruff
f7557ae9fe
strict typechecking
Signed-off-by: William Woodruff <william@yossarian.net>
2025-02-03 16:28:46 +01:00
Mike McQuaid
7bf1b82112
Merge pull request #19148 from Homebrew/rubocops-more-typed-strict
Bump more Cask RuboCops to Sorbet `typed: strict`
2025-01-27 08:55:56 +00:00
Issy Long
9a97456767
Bump more Cask RuboCops to Sorbet typed: strict
- This includes a new Tapioca compiler for
  `RuboCop::Cask::AST::Stanza` dynamic methods like
  `caveats?`.
2025-01-25 18:45:24 +00:00
Mike McQuaid
b49625a7dc
Add brew install --skip-link
We already have `--skip-post-install` and this adds similar behaviour
for e.g. `brew bundle` (and other users) to be able to install a
formula but skip the `brew link` stage afterwards.
2025-01-23 14:42:03 +00:00
Mike McQuaid
bb74d26a93
Fix HOMEBREW_*BREW_WRAPPER behaviour
- handle reading from variables that may not be defined yet
- avoid unnecessary handling of defined variables
- fix incorrect `env_config.rbi` file entry
- add `HOMEBREW_NO_FORCE_BREW_WRAPPER` to disable
  `HOMEBREW_FORCE_BREW_WRAPPER` functionality if needed
2025-01-08 14:10:55 +00:00
Mike McQuaid
e9b4979f40
Add support for Homebrew wrappers
Allow the ability for a system administrator to use
`HOMEBREW_BREW_WRAPPER` and `HOMEBREW_FORCE_BREW_WRAPPER` variables to
enforce the usage of a particular `brew` command for non-trivial (e.g.
`brew --prefix` is considered trivial, it doesn't need to write to the
prefix) Homebrew commands.

This also introduces a `HOMEBREW_ORIGINAL_BREW_FILE` variable for some
internal usage; `HOMEBREW_BREW_FILE` was being used internally for
both "how should we shell out to Homebrew" and "what should we use
to check permissions on Homebrew". `HOMEBREW_ORIGINAL_BREW_FILE` is
now used just for the latter case.

Inspired by conversation in
https://github.com/Homebrew/homebrew-bundle/pull/1551 which suggested
this was worth fixing in wider than just `brew bundle`.
2025-01-07 17:40:18 +00:00