3470 Commits

Author SHA1 Message Date
Mike McQuaid
fe909c41b8
Improve duplicate pull request handling
- change the messaging depending on how confident we are that we're
  actually looking at duplicates i.e. we're not confident without a
  version number supplied
- similarly, just warn instead of failing with an error (and no
  override) if we're not confident that we're looking at duplicates
  because a version wasn't supplied
- change `bump-cask-pr` and `bump-formula-pr` to always check for all
  pull requests with the new version number (to allow failing on this)
  rather than only checking closed pull requests with a version number
- change `bump` to check for definite/maybe duplicate PRs and only
  exit if they are definitely duplicates
- cleanup some variable usage to DRY things up a bit
2024-08-30 14:21:42 +01:00
Bo Anderson
6a0db5035f
Fix misuse of fork in sandbox causing crashes 2024-08-28 13:53:01 +01:00
Michael Cho
253db8def2
dev-cmd/bottle: include installed_size in metadata 2024-08-23 14:24:21 -04:00
Michael Cho
f627c70b71
dev-cmd/bottle: use default tar when bottling gnu-tar 2024-08-23 11:14:34 -04:00
Bo Anderson
98fb5f9dea
Don't assume ENV is a superenv in RBI 2024-08-23 05:59:00 +01:00
Mike McQuaid
08c7044598
dev-cmd/edit: simplify flag check.
Co-authored-by: Carlo Cabrera <30379873+carlocab@users.noreply.github.com>
2024-08-21 08:51:04 +01:00
Misty De Méo
89af10f29a dev-cmd/edit: correct path types
* Avoids passing the `--project` pseudopath to path checking methods
* Ensures the project path is a Pathname, not a String
2024-08-20 16:30:43 -07:00
Douglas Eichelberger
b3cb9420ab
Merge pull request #18081 from Homebrew/type-safety
Minor type safety improvements
2024-08-19 13:24:10 -07:00
Mike McQuaid
a2a92fa46d
Merge pull request #18027 from Homebrew/make-brew-typecheck-work-with-taps 2024-08-19 12:56:12 +01:00
Douglas Eichelberger
fb2fdc5249 Minor type safety improvements 2024-08-18 18:16:39 -07:00
Issy Long
4e37436c3a
dev-cmd/typecheck: Disallow --fix when in taps too
- This could autocorrect files in Homebrew/brew when
  we should be targetting the tap, because of the
  weird hierarchy thing
  (https://github.com/Homebrew/brew/pull/18027#issuecomment-2294896044).

Co-authored-by: Bo Anderson <mail@boanderson.me>
2024-08-17 22:04:20 +01:00
Issy Long
feedc5c84e
dev-cmd/typecheck: Use Sorbet's --dir to set the tap path
- This means we don't have to copy config files around,
  and users get instant results rather than having
  to run `srb init`.
2024-08-17 17:18:59 +01:00
Rylan Polster
842b4ac3d3
Improve VS Code debugger support 2024-08-15 11:47:31 -04:00
Rylan Polster
0b5130937f
Update debugger to fail without portable ruby 2024-08-15 10:14:52 -04:00
Rylan Polster
3b63a7eff4
Add brew debugger command 2024-08-14 22:56:26 -04:00
Issy Long
807093f276
dev-cmd/typecheck: Support typechecking in taps
```shell
$ brew typecheck homebrew/bundle
No sorbet/ directory found. Maybe you want to run 'srb init'?

A type checker for Ruby

Usage:
  srb                                 Same as "srb t"
  srb (init | initialize)             Initializes the `sorbet` directory
  srb rbi [options]                   Manage the `sorbet` directory
  srb (t | tc | typecheck) [options]  Typechecks the code

Options:
  -h, --help     View help for this subcommand.
  --version      Show version.

For full help:
  https://sorbet.org
Check https://docs.brew.sh/Typechecking for more information on how to resolve these errors.
```
2024-08-12 18:14:22 +01:00
Issy Long
45978435e7
rubocop: Use Sorbet/StrictSigil as it's better than comments
- Previously I thought that comments were fine to discourage people from
  wasting their time trying to bump things that used `undef` that Sorbet
  didn't support. But RuboCop is better at this since it'll complain if
  the comments are unnecessary.

- Suggested in https://github.com/Homebrew/brew/pull/18018#issuecomment-2283369501.

- I've gone for a mixture of `rubocop:disable` for the files that can't
  be `typed: strict` (use of undef, required before everything else, etc)
  and `rubocop:todo` for everything else that should be tried to make
  strictly typed. There's no functional difference between the two as
  `rubocop:todo` is `rubocop:disable` with a different name.

- And I entirely disabled the cop for the docs/ directory since
  `typed: strict` isn't going to gain us anything for some Markdown
  linting config files.

- This means that now it's easier to track what needs to be done rather
  than relying on checklists of files in our big Sorbet issue:

```shell
$ git grep 'typed: true # rubocop:todo Sorbet/StrictSigil' | wc -l
    268
```

- And this is confirmed working for new files:

```shell
$ git status
On branch use-rubocop-for-sorbet-strict-sigils
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        Library/Homebrew/bad.rb
        Library/Homebrew/good.rb

nothing added to commit but untracked files present (use "git add" to track)

$ brew style
Offenses:

bad.rb:1:1: C: Sorbet/StrictSigil: Sorbet sigil should be at least strict got true.
^^^^^^^^^^^^^

1340 files inspected, 1 offense detected
```
2024-08-12 15:24:27 +01:00
Rui Chen
e28b5091b3
dev-cmd/dispatch-build-bottle: add missing require
```
Error: uninitialized constant Homebrew::DevCmd::DispatchBuildBottle::Tap
Error: uninitialized constant Utils::Bottles
```

Signed-off-by: Rui Chen <rui@chenrui.dev>
2024-08-03 17:44:41 -04:00
Rylan Polster
afc8c0fa62
Remove redundant unless
Co-authored-by: Bo Anderson <mail@boanderson.me>
2024-08-02 19:20:38 -04:00
Rylan Polster
6badcd929c
Add sorbet vscode configuration 2024-08-02 16:03:49 -04:00
Mike McQuaid
96cbc7bd6e
dev-cmd/release: add missing require. 2024-07-29 09:25:51 +01:00
Issy Long
9e98bbf59a
Revert "dev-cmd/contributions: Show only the CSV output for --csv" 2024-07-28 19:28:19 +01:00
Issy Long
c880dd4350
dev-cmd/contributions: Show only the CSV output for --csv
- This was noisy when using `--csv` as it would print the text output
  and then the CSV output.
2024-07-28 16:17:07 +01:00
Sam Ford
a6e61fd664
contributions, github: reorder requires
Per feedback to https://github.com/Homebrew/brew/pull/17806, this
moves some `require` statements in `dev-cmd/contributions.rb` and
`Utils::GitHub` into the methods that need them.
2024-07-25 10:02:18 -04:00
Sam Ford
403b0bf3f1
contributions: resolve type errors
This updates the type signature for `#scan_repositories` to address a
runtime type error and to reflect the actual return type.

The logic in `#scan_repositories` to check for unsupported
repositories leads to a type error, as `#ofail` has a void return
type. To resolve this, I moved the repository verification code into
`#run` (after `repos` is defined but before it's used) and used
`#odie`, so the command will exit early with an error.

While I was at it, I updated the type for the `repos` parameter to
not be `nilable`, as it shouldn't be `nil` based on how we're
handling `repos` in `#run`.
2024-07-18 15:40:10 -04:00
Sam Ford
b4b984e968
contributions: move CSV require into #generate_csv
CSV generation is optional, so this moves the related `require` into
the method where `CSV` is used (following a pattern we've used for
other `require` calls throughout `brew`).
2024-07-18 15:40:07 -04:00
Sam Ford
a9f7da36e0
contributions, github: add missing requires
This resolves `unitialized constant` errors in `brew contributions`
(`Tap`, `GitHub`) and `Utils::GitHub` (`Utils::Curl`).

This also preemptively adds some requires to `Utils::GitHub` and
`GitHub::API`, to avoid similar errors.
2024-07-18 12:55:41 -04:00
Shivam Mathur
7b604ef924 dev-cmd/pr-automerge: add missing require 2024-07-17 05:56:20 +00:00
Nanda H Krishna
9e7eef33a6
Merge pull request #17748 from Homebrew/brew_bump_all
`brew bump`: cleanup and improve `--eval-all` handling
2024-07-15 15:55:27 -04:00
Ruoyu Zhong
22c5bdf2af
dev-cmd/rubocop: use ShellCommand 2024-07-15 14:49:23 -04:00
Mike McQuaid
835c2f2e2b
Merge pull request #17742 from Homebrew/ruby_bash_commands_integrations 2024-07-15 16:10:31 +02:00
Nanda H Krishna
d20add9786
brew bump: more improvements 2024-07-14 23:46:17 -04:00
Ruoyu Zhong
640f3c904a
dev-cmd/bump-formula-pr: fix missing require
Fixes https://github.com/Homebrew/homebrew-core/actions/runs/9931895403/job/27432438142#step:6:716.
2024-07-14 23:17:45 -04:00
Nanda H Krishna
32d1f10fcf
Fix style issues 2024-07-14 23:13:59 -04:00
Mike McQuaid
5987c5c1d0
Add stub Ruby commands for all Bash commands.
This gets us pretty similar (but easier to manage) manpage output but
much nicer completions etc. for all these commands.
2024-07-14 23:12:53 -04:00
Nanda H Krishna
4b2c9e0651
brew bump: cleanup and improve --eval-all handling 2024-07-14 23:11:34 -04:00
Bo Anderson
8cbb04b09d
dev-cmd/update-test: fix dev channel testing 2024-07-15 03:50:53 +01:00
Nanda H Krishna
9f3c404b0b
Merge pull request #17740 from Moisan/brew_bump_all
`brew bump`: do not call repology by default
2024-07-14 16:48:47 -04:00
Thierry Moisan
0bb64fd312
Add --repology flag 2024-07-14 16:35:10 -04:00
Patrick Linnane
e9db766624
dev-cmd/pr-publish: add missing require
Signed-off-by: Patrick Linnane <patrick@linnane.io>
2024-07-14 12:43:39 -07:00
Mike McQuaid
d9853fb412
dev-cmd/bottle: add missing require.
Another one of these.
2024-07-14 15:25:33 -04:00
Thierry Moisan
f4c263f565
brew bump: do not call repology by default 2024-07-14 15:19:46 -04:00
Thierry Moisan
7b98a0e8c5
vendor_gems: require utils/git 2024-07-14 13:09:18 -04:00
Mike McQuaid
320185aa9b
Merge pull request #17717 from samford/bump-add-repology-require 2024-07-14 10:21:59 -04:00
Sam Ford
ae06033afa
bump: add utils/repology require
A recent commit reworked `require`s to improve performance but this
led to an `uninitialized constant Homebrew::DevCmd::Bump::Repology`
error in `brew bump`. This adds a `utils/repology` `require` to
`dev-cmd/bump.rb` to resolve the error.
2024-07-14 10:08:55 -04:00
Mike McQuaid
1f6b6060dd
Remove maintainers.json
This will no longer be needed or used after the merge of:
https://github.com/Homebrew/homebrew-test-bot/pull/1142
2024-07-14 09:03:18 -04:00
Mike McQuaid
c5dbd3ca24
Rearrange requires
This improves the load time of most brew commands. For an example of
one of the simplest commands this speeds up:

Without Bootsnap:
```
$ hyperfine 'git checkout master; brew help' 'git checkout optimise_requires; brew help'
Benchmark 1: git checkout master; brew help
  Time (mean ± σ):     525.0 ms ±  35.8 ms    [User: 229.9 ms, System: 113.1 ms]
  Range (min … max):   465.3 ms … 576.6 ms    10 runs

Benchmark 2: git checkout optimise_requires; brew help
  Time (mean ± σ):     383.3 ms ±  25.1 ms    [User: 133.0 ms, System: 72.1 ms]
  Range (min … max):   353.0 ms … 443.6 ms    10 runs

Summary
  git checkout optimise_requires; brew help ran
    1.37 ± 0.13 times faster than git checkout master; brew help
```

With Bootsnap:
```
$ hyperfine 'git checkout master; brew help' 'git checkout optimise_requires; brew help'
Benchmark 1: git checkout master; brew help
  Time (mean ± σ):     386.0 ms ±  30.9 ms    [User: 130.2 ms, System: 93.8 ms]
  Range (min … max):   359.5 ms … 469.3 ms    10 runs

Benchmark 2: git checkout optimise_requires; brew help
  Time (mean ± σ):     330.2 ms ±  32.4 ms    [User: 93.4 ms, System: 73.0 ms]
  Range (min … max):   302.9 ms … 413.9 ms    10 runs

Summary
  git checkout optimise_requires; brew help ran
    1.17 ± 0.15 times faster than git checkout master; brew help
```
2024-07-14 08:49:39 -04:00
Mike McQuaid
f39b5c1426
Merge pull request #17554 from Homebrew/cask-install-receipt 2024-07-13 10:55:06 -04:00
Mike McQuaid
7b66004d2c
Merge pull request #17655 from Homebrew/fix-bump-formula-pr-types-for-kwargs 2024-07-08 19:07:04 +01:00
Issy Long
517d3c9bcf
dev-cmd/bump-formula-pr: Fix types for fetch_resource_and_forced_version
- This should fix https://github.com/Homebrew/homebrew-core/actions/runs/9839505520, that is:

```
Parameter 'tag': Expected type Float, got type String with value "2024-07-05"
Caller: /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11473/lib/types/private/methods/call_validation.rb:215
Definition: /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/dev-cmd/bump-formula-pr.rb:445 (Homebrew::DevCmd::BumpFormulaPr#fetch_resource_and_forced_version)
```

- I think I read https://sorbet.org/docs/sigs#rest-parameters too literally,
  yes Sorbet expands the kwargs into a hash type, but it's the value type that
  needs specifying in the sig (which for us is `String`).
2024-07-08 18:46:21 +01:00