29565 Commits

Author SHA1 Message Date
Sam Ford
d1297c0974
node: add shebang rewriting
Formulae that depend on `node` sometimes contain files that use a
shebang like `#!/usr/bin/env node` and this can lead to issues when
the `node` in a user's environment isn't brewed `node`.

For example, some node modules are compiled when the formula is built
but if the user's `node` is a different major version than brew's
`node`, the differing `NODE_MODULE_VERSION` can produce an error when
certain parts of the application are used. The formula may build and
test fine and the issue may only become apparent when more of the
application is exercised.

This adds a `Language::Node::Shebang` module (borrowing from the
existing Perl and Python examples), which allows us to use
`rewrite_shebang detected_node_shebang, ...` in formulae to address
this type of issue.
2023-08-15 00:53:41 -04:00
Bo Anderson
d30b68715f
Merge pull request #15866 from MikeMcQuaid/update_report_sharding_add_delete
cmd/update-report: correctly handle added/deleted formulae/casks.
2023-08-15 03:07:50 +01:00
BrewTestBot
ebdea56cd8
sorbet: Autobump sigils via Spoom
Autogenerated by the [sorbet](https://github.com/Homebrew/brew/blob/master/.github/workflows/sorbet.yml) workflow.
2023-08-15 00:25:50 +00:00
BrewTestBot
3c9dce0ac6
sorbet: Update RBI files.
Autogenerated by the [sorbet](https://github.com/Homebrew/brew/blob/master/.github/workflows/sorbet.yml) workflow.
2023-08-15 00:25:50 +00:00
Mike McQuaid
38f00671c4
cmd/update-report: correctly handle added/deleted formulae/casks.
If a formulae or cask is marked as both added and deleted, we've just
incorrectly detected it. Remove it from the report.

This can happen when a formula or cask is moved around in the repository
e.g. with sharding.
2023-08-14 19:28:56 +01:00
Mike McQuaid
0bd17c5b79
Merge pull request #15863 from dduugg/strict-types
Turn up the types
2023-08-14 12:40:15 +01:00
Carlo Cabrera
93b43ad7a9
os/mac/mach: fix rpath deletion of fat machos
Fixes #15859.
2023-08-14 14:29:05 +08:00
Douglas Eichelberger
d01cda2815 Turn up the types 2023-08-12 22:01:22 -07:00
Eric Knibbe
569c833924
Formula-Cookbook: expand terminology table 2023-08-12 21:48:16 -04:00
Mike McQuaid
597f0840a3
dev-cmd/tests: add --fail-fast.
This is useful when testing very slow test files with many tests.
2023-08-10 16:27:37 +01:00
Mike McQuaid
22553cd34a
Fix cask sharding issues
- Fix cask info output being incorrect
- Improve some code referring to casks as formulae
- Move livecheck cask fixtures to not shadow existing names
- Adjust the cask tap symlinking logic to make handling outdated
  shadowed casks significantly easier
- Fix various flaky tests caused by casks sharding logic
- Prefer longer paths when there's multiple formulae or casks in a tap
  with the same name rather than always using the first
2023-08-10 16:08:47 +01:00
Razvan Azamfirei
72df964b33
change path 2023-08-09 15:27:36 -04:00
Razvan Azamfirei
a916d6184b
Update Library/Homebrew/cask/audit.rb
Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2023-08-09 15:26:47 -04:00
Razvan Azamfirei
ef9e0bc8a6
cask/audit: audit for appropriate sharding directory 2023-08-09 14:52:30 -04:00
Mike McQuaid
d30fee25e4
formula_cop: fix style_exceptions_dir handling.
This needed to be adjusted to handle a sharded homebrew/core and
repositories with formulae in the root.
2023-08-09 15:20:57 +01:00
Mike McQuaid
f18aa6ff1a
Merge pull request #15847 from MikeMcQuaid/all_casks_subdirectory
tap: always create new casks in subdirectory.
2023-08-09 12:55:13 +01:00
Mike McQuaid
cf71b5b3ea
tap: always create new casks in subdirectory.
For homebrew-cask, all casks should now be created in subdirectories,
even if that subdirectory doesn't yet exist.
2023-08-09 12:11:20 +01:00
Mike McQuaid
319faed8f9
Merge pull request #15845 from MikeMcQuaid/update_deleted_installed
update_report: show "Delete and Installed" header.
2023-08-09 10:59:01 +01:00
Mike McQuaid
565eb363ea
update_report: show "Delete and Installed" header.
Clarify that the deleted formulae/casks when not using `report_all`
are only those that have been deleted _and_ the user has them
installed. This should avoid users glossing over this information as
it is pretty relevant to them.

While we're here, refactor some of the `report_all` logic to make it
easier to remove it all on the next Homebrew major/minor version.
2023-08-08 16:57:03 +01:00
Mike McQuaid
d313e8b027
Merge pull request #15824 from dduugg/inreplace-static
Make inreplace a purely static method v2
2023-08-08 12:32:10 +01:00
Douglas Eichelberger
5d5c22e104 Replace integration test with unit test 2023-08-07 18:32:08 -07:00
Douglas Eichelberger
2b29c498fa s/blk/block 2023-08-07 17:26:46 -07:00
eugenesvk
2c7c064040 Allow hiding new formula/cask sections on update 2023-08-07 20:38:54 +07:00
Mike McQuaid
a8022e6040
Merge pull request #15835 from carlocab/framework-install-names
keg_relocate: retain framework info in relocatable install names
2023-08-07 08:47:05 +01:00
Mike McQuaid
3929bbc1de
Merge pull request #15830 from branchvincent/pip-no-compile
formula: use pip's `--no-compile`
2023-08-07 08:20:15 +01:00
Mike McQuaid
6b773a36e8
Merge pull request #15831 from branchvincent/update-python-git-clone
pypi: support updating resources for git clones
2023-08-07 08:19:44 +01:00
Carlo Cabrera
dbeac59584
keg_relocate: retain framework info in relocatable install names
`dyld` uses the target library's install name to work out whether this
is a Framework or a dylib, which affects how `dyld` searches for the
desired library.

We should therefore avoid confusing `dyld` by including the
`*.framework` part of the install name in the target dylib, which is
what this change does.

Here's a concrete example of what this changes. Before:

    ❯ otool -L /usr/local/bin/python3
    /usr/local/bin/python3:
            @loader_path/../Python (compatibility version 3.11.0, current version 3.11.0)
            /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.100.3)

After:

    ❯ otool -L /usr/local/bin/python3
    /usr/local/bin/python3:
            @loader_path/../../../../Python.framework/Versions/3.11/Python (compatibility version 3.11.0, current version 3.11.0)
            /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.100.3)

By retaining the `Python.framework` part of the install name, we make
sure that `dyld` knows that it should be looking for a framework rather
than a dylib.
2023-08-07 14:43:56 +08:00
Kevin
98f1be77f9
Merge pull request #15829 from apainintheneck/add-installed-flag-to-bump-cmd
cmd/bump: add --installed flag
2023-08-06 20:39:46 -07:00
Muescha
c447aa6d94
unversioned_cask_checker.rb - fix signature of KeyboardLayout
fix signature for KeyboardLayout
2023-08-06 21:30:45 +02:00
Branch Vincent
e5ed11a5b7
pypi: support updating resources for git clones 2023-08-05 17:12:23 -07:00
Branch Vincent
61d23fef53
formula: use pip's --no-compile 2023-08-05 16:39:29 -07:00
apainintheneck
0979f7c35f cmd/bump: add --installed flag
This allows users to only try to bump formulae and casks they
currently have installed. It copies this behavior from the
livecheck command.
2023-08-05 10:01:11 -07:00
Carlo Cabrera
b5334b818c
os/mac/mach: avoid recursively resolving rpaths
This is just a recipe for infinite loops. Plus, recursive references are
likely to be invalid, so we don't really gain much by attempting to
resolve them.[^1] (But we could if we made the logic here much more
complicated.)

Fixes a CI failure seen at Homebrew/homebrew-core#138323.

[^1]: See, for example, embree/embree#455.
2023-08-05 23:40:22 +08:00
apainintheneck
474656ffaa dev-cmd/bump : stop using API to load formulae/casks
Even though the command already sets without_api that only
affects how named args are loaded. In this command, we used to load
many formulae and casks all at once using the API according to
user settings. Now we just mandate that all loading must skip the API.
2023-08-04 19:08:22 -07:00
Douglas Eichelberger
880362669b Add tests 2023-08-04 16:21:34 -07:00
Douglas Eichelberger
864f31e52a Forward block argument 2023-08-04 16:20:56 -07:00
Douglas Eichelberger
efd02b956d Revert "Revert "Make inreplace a purely static method""
This reverts commit 8656caa67ce2dd9ec6484969b183c1fd7805451e.
2023-08-04 16:20:38 -07:00
Mike McQuaid
b3c33d34ab
Various sharding fixes
- Load paths with no API when needed (e.g. for `brew edit`)
- Use no API mode for `brew log` as it's needed there
- Define sharding format for homebrew-cask and homebrew-core inside
  `Tap` methods
- Create new formulae/casks in location defined by these `Tap` methods
- Fix a bug in Formulary that made sharded formulae lookup less
  efficient (and possibly broke it for core and some API usage)
- Fix various other hardcoded Formula/Cask directory assumptions

Co-authored-by: Bo Anderson <mail@boanderson.me>
2023-08-04 16:43:13 +01:00
Mike McQuaid
4877de52d3
Merge pull request #15819 from MikeMcQuaid/bottle_reproducibility_fixes
bottle: reproducibility fixes.
2023-08-04 10:26:55 +01:00
Mike McQuaid
71888db8ba
bottle: reproducibility fixes.
I noticed from
https://github.com/Homebrew/homebrew-core/actions/runs/5751070010 that
we're no longer creating reproducible bottles between macOS and Linux.

All macOS checksums have changed but Linux ones have not. The main
difference between the two platforms is the `gtar` version used so let's
always just use the formula on both platforms.

While we're here, clear up the ordering and comments a little on the
reproducible `tar` arguments so that it's easier to compare with the
reproducible builds archives documentation.
2023-08-04 10:02:44 +01:00
Mike McQuaid
1d4a24d226
Make more warnings quiet with environment hints disabled.
Combined with https://github.com/Homebrew/homebrew-test-bot/pull/963
this should make `brew test-bot` output a bit quieter and less annoying.
2023-08-04 09:36:27 +01:00
Mike McQuaid
11af9e8a1e
Merge pull request #15805 from ZhongRuoyu/formulary-alias_path
formulary: fix type of `alias_path`
2023-08-04 08:10:57 +01:00
Mike McQuaid
0e098510c2
Merge pull request #15763 from razvanazamfirei/bump-add-arch-support
bump: add arch-specific support
2023-08-04 08:10:01 +01:00
Ruoyu Zhong
99607e8ec4
development_tools: allow Symbols to be located
Fixes error seen in Homebrew/homebrew-core#138452.
`DevelopmentTools.default_compiler` can return a `Symbol` like `:clang`.
Make sure its result can be fed to `DevelopmentTools.locate`.

Signed-off-by: Ruoyu Zhong <zhongruoyu@outlook.com>
2023-08-04 11:26:30 +08:00
Mike McQuaid
a2b49440e7
Merge pull request #15815 from Homebrew/dependabot/bundler/Library/Homebrew/addressable-2.8.5
build(deps): bump addressable from 2.8.4 to 2.8.5 in /Library/Homebrew
2023-08-03 19:33:37 +01:00
BrewTestBot
3fb4c6c069
Update RBI files for addressable.
Autogenerated by the [vendor-gems](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/vendor-gems.yml) workflow.
2023-08-03 18:17:42 +00:00
BrewTestBot
e590c30851
Update RBI files for zeitwerk.
Autogenerated by the [vendor-gems](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/vendor-gems.yml) workflow.
2023-08-03 18:15:55 +00:00
BrewTestBot
b281f51c25
brew vendor-gems: commit updates. 2023-08-03 18:11:46 +00:00
BrewTestBot
ce1818df99
brew vendor-gems: commit updates. 2023-08-03 18:09:53 +00:00
dependabot[bot]
783d30855b
build(deps): bump addressable from 2.8.4 to 2.8.5 in /Library/Homebrew
Bumps [addressable](https://github.com/sporkmonger/addressable) from 2.8.4 to 2.8.5.
- [Changelog](https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sporkmonger/addressable/compare/addressable-2.8.4...addressable-2.8.5)

---
updated-dependencies:
- dependency-name: addressable
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-03 18:08:20 +00:00