30369 Commits

Author SHA1 Message Date
Mike McQuaid
dcaa69a2dc
Add GitHub Actions warning/error annotations for deprecations/disables.
This should make these messages, particular warnings, more obvious to
GitHub Actions users.

There's an argument perhaps we should do this more broadly for all
warning/error messages but: this feels like a good start.
2024-03-14 09:49:12 +00:00
Mike McQuaid
a7d77485f1
Merge pull request #16888 from cho-m/formula-no-python2.7-dir
formula: remove setting up home for python 2.7
2024-03-14 08:32:44 +00:00
Michael Cho
697d41674c
Merge pull request #16879 from cho-m/diagnostic-taploader
diagnostic: use FromTapLoader to check 3rd-party formula
2024-03-14 02:16:31 -04:00
Michael Cho
cc82c52d6f
formula: remove setting up home for python 2.7
Signed-off-by: Michael Cho <michael@michaelcho.dev>
2024-03-14 02:05:52 -04:00
Douglas Eichelberger
68cce23e15 Add tests 2024-03-13 22:02:03 -07:00
Bo Anderson
0927f47f99
Merge pull request #16885 from Homebrew/autoupdate-bump-fix
brew.sh: fix autoupdate not working correctly for bump commands
2024-03-14 03:58:15 +00:00
Bo Anderson
f3a99ca676
dev-cmd/bump: skip Repology checks in CI for livecheckables 2024-03-14 03:53:47 +00:00
Bo Anderson
7921e8a67d
brew.sh: fix autoupdate not working correctly for bump commands 2024-03-14 03:47:01 +00:00
Kevin
7473e63f38
Merge pull request #16875 from Homebrew/fix-untap-cmd-bugs
Fix untap cmd bugs
2024-03-13 20:17:38 -07:00
Kevin
58b84c3979
Merge pull request #16867 from Homebrew/stop-using-full-name-as-key-in-cask-json-v3
cask: always return short cask tokens from core cask tap
2024-03-12 22:51:10 -07:00
apainintheneck
9ff0f85335 untap_spec: use builtin spec helpers to simplify tests 2024-03-12 22:07:14 -07:00
apainintheneck
9daeaf6087 untap: only blank rescue unavaiable cask and formula errors 2024-03-12 21:08:58 -07:00
apainintheneck
eed7fd81a3 untap: use cachable to clear cached variables in tests 2024-03-12 21:07:33 -07:00
Kevin
cdcf5d0c69
Merge pull request #16884 from reitermarkus/remove-from-default-name-loader
Actually remove `FromDefaultNameLoader`.
2024-03-12 21:01:34 -07:00
Bo Anderson
c8214fd1ce
Merge pull request #16860 from Homebrew/reproducible-builds
Reproducible builds for native compiled binaries
2024-03-13 03:55:38 +00:00
Douglas Eichelberger
5888cd8607 Fix root namespace 2024-03-12 16:34:04 -07:00
Douglas Eichelberger
76932fdf7e Add tapioca compiler for Homebrew::CLI::Args 2024-03-12 16:34:04 -07:00
Markus Reiter
e575671477
Actually remove FromDefaultNameLoader. 2024-03-12 22:50:13 +01:00
BrewTestBot
97a7b15cd9
brew vendor-gems: commit updates. 2024-03-12 18:23:31 +00:00
dependabot[bot]
ea549649ae
build(deps): bump sorbet-runtime and sorbet-static-and-runtime
Bumps [sorbet-runtime](https://github.com/sorbet/sorbet) and [sorbet-static-and-runtime](https://github.com/sorbet/sorbet). These dependencies needed to be updated together.

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

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

---
updated-dependencies:
- dependency-name: sorbet-runtime
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: sorbet-static-and-runtime
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-12 18:22:13 +00:00
Michael Cho
495bdd0d7a
diagnostic: rename variable to tap_keg_name
Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2024-03-12 10:41:06 -04:00
Mike McQuaid
b1990ed4b6
Merge pull request #16863 from apainintheneck/memoize-installed-tap-loading-v2
Memoize installed tap loading v2
2024-03-12 08:36:09 +00:00
Michael Cho
15dd3317f8
diagnostic: use FromTapLoader to check 3rd-party formula
Signed-off-by: Michael Cho <michael@michaelcho.dev>
2024-03-11 22:00:17 -04:00
BrewTestBot
01564cf495
Update RBI files for rubocop.
Autogenerated by the [vendor-gems](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/vendor-gems.yml) workflow.
2024-03-11 18:20:54 +00:00
BrewTestBot
34e01a037c
brew vendor-gems: commit updates. 2024-03-11 18:20:21 +00:00
dependabot[bot]
33ce77ab62
build(deps-dev): bump rubocop from 1.62.0 to 1.62.1 in /Library/Homebrew
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.62.0 to 1.62.1.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.62.0...v1.62.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 18:19:19 +00:00
Michael Cho
545b83095d
Merge pull request #16871 from cho-m/cleanup-dryrun-print-dirs
cleanup: track removed links & dirs during dry-run
2024-03-11 13:44:31 -04:00
Mike McQuaid
8215f3a283
Merge pull request #16855 from Homebrew/update_tweaks
Various `brew update` behaviour improvements
2024-03-11 16:59:13 +00:00
Mike McQuaid
72f2f1b2fd
Merge pull request #16868 from Homebrew/no-more-ronn
Replace ronn with Kramdown's converter
2024-03-11 16:54:56 +00:00
Bo Anderson
5582849ae7
Reproducible builds for native compiled binaries 2024-03-11 16:06:55 +00:00
Markus Reiter
780fbbc65e
Merge pull request #16873 from cho-m/cleaner-types
cleaner: add types
2024-03-11 16:57:48 +01:00
Michael Cho
2d884981c2
cleaner: add types
Signed-off-by: Michael Cho <michael@michaelcho.dev>
2024-03-11 11:46:23 -04:00
Michael Cho
a30f6c48f2
Merge pull request #16865 from cho-m/cask-audit-@
cask/audit: allow @ for versioned casks
2024-03-11 09:07:28 -04:00
apainintheneck
11b67e04c2 untap: add tests for finding formulae/casks in each tap
These are regression tests to make sure that this logic is reproducible.
If this logic is not working, it might mean that someone removes a tap
accidentally that still includes a formula or cask that they currently
have installed.

The tests are extravagant and over-engineered but I'm not sure that
there's an easier way to do this without massive integration tests.
2024-03-10 22:33:44 -07:00
apainintheneck
ff495a2e44 untap: add new module to make these refactored methods easier to test 2024-03-10 22:33:33 -07:00
apainintheneck
46a32f90c4 cmd/untap: refactor logic into methods to facilitate testing 2024-03-10 22:33:33 -07:00
apainintheneck
819af3cbdd cmd/untap: fix installed formula & cask check
This wasn't working before for a few reasons.

1. It never got past the installed name check because the
installed name sets had short names and the tap names were
long names including the tap namespace too. Now we just trim the
long name before comparing it to the installed name set.

Before:

```
["name"].include?("tap/full/name") # always false
```

After:

```
["name"].include("tap/full/name".split("/").last) # sometimes true
```

2. The names we were trying to load formulae and casks with
were incorrect.

Before:

```
tap = Tap.fetch("homebrew/cask-versions")
token = "homebrew/cask-versions/token"

cask = Cask::CaskLoader.load("#{tap}/#{token}")
```

After:

```
token = "homebrew/cask-versions/token"
cask = CaskCaskLoader.load(token)
```
2024-03-10 22:33:33 -07:00
Michael Cho
29175df63f
cleanup: track removed links & dirs during dry-run
This allows dry-run to display any directories that will be removed
as a result of previous removal steps.

Signed-off-by: Michael Cho <michael@michaelcho.dev>
2024-03-10 19:02:49 -04:00
Bo Anderson
d1cebef8c5
dev-cmd/pr-*: remove Oxford commas previously missed by linter 2024-03-10 22:31:44 +00:00
Bo Anderson
754d580a91
Replace ronn with Kramdown's converter 2024-03-10 22:31:38 +00:00
Michael Cho
74f310577f
cleaner: remove RECORD and modify INSTALLER
According to [Python specification][1], we should remove `RECORD` file
to prevent changes to installed formula files via other tools, e.g. pip.
This also improves chances of generating an `all` bottle as it avoids
diff due to checksums of HOMEBREW_PREFIX present files. Also modify
`INSTALLER` file to indicate that brew is managing the Python package.

[1]: https://packaging.python.org/en/latest/specifications/recording-installed-packages/#intentionally-preventing-changes-to-installed-packages

Signed-off-by: Michael Cho <michael@michaelcho.dev>
2024-03-10 10:22:55 -04:00
apainintheneck
ca5dfadfaf search: update logic to reflect changes to CoreCaskTap#cask_tokens
It was possible for the cask tokens to be included twice in the
cask_tokens array. This was cancelled out by the fact that we |=
the arrays together but still it was unnecessary work that is best
avoided and makes the code harder to reason about. This is simpler.
2024-03-09 19:38:43 -08:00
apainintheneck
6e0e78cadd tap: CoreCaskTap#cask_tokens should always return short names
This seems to be a bug with how we handle name shortening for the
core cask tap. The core tap always returns short formula names
and returning long names from the core cask tap when not using
the API leads to unexpected behavior.

Specifically this can trick the `brew untap` command into thinking
that there aren't any installed casks in the core cask tap and that
it can be removed even when that is not the case.

One risk here is that the full names were used when caching
descriptions so descriptions could be out of date for people in
the short term though hopefully that's not the end of the world.
2024-03-09 18:59:31 -08:00
apainintheneck
08442734ab s/Tap.reverse_tap_migrations_renames/Tap.tap_migration_oldnames/ 2024-03-09 10:27:22 -08:00
apainintheneck
e6a453a20d tap: add some tests
- Add tests for:
  - `Tap.each`
  - `Tap.installed`
  - `Tap.all`
  - `Tap#reverse_tap_migrations_renames`
  - `Tap.reverse_tap_migrations_renames`
2024-03-09 10:27:22 -08:00
apainintheneck
d4a273443c tap: add #reverse_tap_migrations_renames to speed things up
This gets used by `Tap.reverse_tap_migrations_renames` and reduces
the amount of information that needs to be calculated on the fly
every time.
2024-03-09 10:25:47 -08:00
Michael Cho
85a08bcdc4
cask/audit: allow @ for versioned casks
Signed-off-by: Michael Cho <michael@michaelcho.dev>
2024-03-09 12:20:27 -05:00
apainintheneck
fb8c0d2b30 s/Tap.select(&:installed?)/Tap.installed/ 2024-03-08 23:22:00 -08:00
apainintheneck
3834ef1b73 tap: cache more things at the Tap level
I added two new methods to cache both installed and all taps.
All taps includes core taps no matter if they're installed locally
since they're always provided by the API anyway.

This makes it easier to cache `Tap.each` while making the code
easier to reason about. It also will be useful because we'll
be able to avoid the `Tap.select(&:installed?` pattern that has
recently invaded the codebase.

Note: I also stopped clearing all tap instance caches before
tests. Running `Tap.each` would cache existing taps which would
lead to unexpected behavior since the only existing tap before
each test is the core tap. This is the only tap whose directory
is not cleaned up between tests so we just clear it's cache directly.
We also now clear all tap instances after tests as well regardless
of whether the API was used that time.
2024-03-08 23:22:00 -08:00
Patrick Linnane
4348e06888
Merge pull request #16857 from Homebrew/dependabot/bundler/Library/Homebrew/sorbet-static-and-runtime-and-sorbet-runtime-0.5.11287 2024-03-08 11:00:51 -08:00