3458 Commits

Author SHA1 Message Date
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
Ilya Kulakov
1a6f6f0c5e
Update Library/Homebrew/dev-cmd/extract.rb
Co-authored-by: Ruoyu Zhong <zhongruoyu@outlook.com>
2024-07-06 10:57:51 -07:00
Ilya Kulakov
a1f9f501e2 extract: Fix missing '--git-revision' in the usage banner 2024-07-05 17:27:22 -07:00
Issy Long
58fb8afa2f
dev-cmd/bump-formula-pr: formula_version is Version not String
- Fixes https://github.com/Homebrew/brew/issues/17626.
2024-07-04 17:52:38 +01:00
Issy Long
f6e093a076
Remove unnecessary comment
- `T.let` is necessary in this case in strict mode.

Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2024-07-04 13:45:42 +01:00
Issy Long
f2f4f1c06d
sorbet: Tighten up dev-cmd types
- Change `returns(NilClass)` to `void`.
- Get rid of some of the `T.untyped`.
2024-07-04 12:04:29 +01:00
Mike McQuaid
21ba72b190
Merge pull request #17621 from Homebrew/actually-use-spoom-in-ci 2024-07-04 08:38:10 +01:00
Mike McQuaid
a934713992
dev-cmd/typecheck: improve indentation. 2024-07-04 08:28:24 +01:00
Mike McQuaid
e7b9a732b4
dev-cmd/typecheck: improve exit code handling. 2024-07-04 08:27:21 +01:00
Mike McQuaid
0fda9cb85e
Merge pull request #17622 from Kentzo/extract-log-version 2024-07-04 08:26:00 +01:00
Mike McQuaid
3773940382
Merge pull request #17606 from Homebrew/sorbet-strict-devcmd 2024-07-04 08:25:40 +01:00
Rylan Polster
acd60181c2
Add cask install receipts 2024-07-04 01:47:13 -04:00
Ilya Kulakov
0b4839b397 extract: Log formula version
When extracting based on --git-revision the version of the formula is
not known to the user upfront.
2024-07-03 16:41:31 -07:00