340 Commits

Author SHA1 Message Date
apainintheneck
db507be41a keg: update sorting by version logic
This updates logic to add a `#scheme_and_version` method to be used
with `.sort_by` and `.max_by`. Using `Keg#version` by itself can be
inaccurate when different version schemes are present. This also
updates the behavior of `Formula#eligible_kegs_for_cleanup` to match
the previous behavior. We were dropping the wrong keg based on the
sort being reversed in a previous PR.
2024-03-31 17:52:32 -07:00
Bo Anderson
dd382487c7
Sort kegs based on version scheme 2024-03-29 23:33:41 +00:00
Kevin
7b2bfee363
Merge pull request #16903 from apainintheneck/prevent-unexpected-network-calls-in-tests
Prevent unexpected network calls in tests
2024-03-20 20:40:26 -07:00
Douglas Eichelberger
bf9ebccecd Handle dashed commands 2024-03-20 10:36:19 -07:00
Douglas Eichelberger
6b19bc5535 Style cleanup 2024-03-20 10:36:19 -07:00
Douglas Eichelberger
d873881c47 Port Homebrew::DevCmd::BumpFormulaPr 2024-03-20 10:25:17 -07:00
Douglas Eichelberger
cae62e0175 Update Command API 2024-03-20 10:16:17 -07:00
apainintheneck
ad35db4b24 tests: fix tests that make unexpected network calls
These were found with the Utils::Curl check and just turning
off the network on my computer and running the entire test suite.
2024-03-18 20:57:35 -07:00
Douglas Eichelberger
4b358fc713 Extract global args 2024-03-16 11:15:03 -07:00
Douglas Eichelberger
625206b0bd Avoid duplicating global options 2024-03-15 16:30:09 -07:00
Douglas Eichelberger
76932fdf7e Add tapioca compiler for Homebrew::CLI::Args 2024-03-12 16:34:04 -07:00
Mike McQuaid
ea2892f8ee
brew.rb: handle missing args. 2024-03-07 16:20:20 +00:00
Michael Cho
2d9b352ad7
Merge pull request #16837 from cho-m/bump-replace-untyped-args
dev-cmd/bump: change `args` type to `CLI::Args`
2024-03-07 10:08:38 -05:00
Markus Reiter
42652442af
Don't warn while checking for conflicting casks. 2024-03-06 23:30:34 +01:00
Michael Cho
030980164d
dev-cmd/bump: change args type to CLI::Args
Signed-off-by: Michael Cho <michael@michaelcho.dev>
2024-03-06 11:13:33 -05:00
Douglas Eichelberger
90996e1997 git grep -lE '\(\&[A-Za-z._]+method\(:' | xargs gsed -i -E 's|\(\&([A-Za-z._]+)public_method\(:([a-z?_]+)\)\)| { \1\2(_1) }|g' 2024-03-03 18:55:32 -08:00
Issy Long
f4218a6316
Fix RuboCop Performance/MapCompact offenses
- Rename an iterator variable since it would make the line too long.
2024-02-25 22:59:59 +00:00
Douglas Eichelberger
8a71570a6b brew style --fix 2024-02-18 15:47:56 -08:00
Markus Reiter
76d8d6c840
Add type signatures. 2024-02-08 16:30:08 +01:00
Dave Nicolson
31f09f8d30 Replace “QuickLook” with “Quick Look” 2024-02-03 23:54:04 +01:00
Douglas Eichelberger
08e12b2383 Remove ActiveSupport Array access core extensions 2024-01-19 13:34:52 -08:00
Issy Long
f682147598
Fix RuboCop Style/RedundantFreeze offenses 2024-01-18 22:20:01 +00:00
Bo Anderson
5692c8ecbf
Fix style violations under newer RuboCop 2023-12-14 05:47:12 +00:00
Markus Reiter
0a4d10ba89
Deprecate --new-formula/--new-cask options. 2023-12-06 16:18:26 +01:00
apainintheneck
779d90082d cli/parser: rescue formula specification errors
This came up recently where an outdated formula definition
caused the program to crash with an ambiguous message when
a user wanted to upgrade a cask instead. Catching these errors
allows them to get handled later on improving error messages
and defaults. Now if the only formula with the given name is
invalid it will default to using the cask unless --formula is
specified.

- https://github.com/Homebrew/brew/issues/16123
2023-10-21 17:15:26 -07:00
Mike McQuaid
abeab3e6c6
cli/parser: tweak style.
Co-authored-by: Kevin <apainintheneck@gmail.com>
2023-10-08 19:12:43 +01:00
Eric Knibbe
d3959727d6
cli/parser: depopulate commands' args lists 2023-10-07 23:52:34 -04:00
apainintheneck
23b277bbd7 cli/named_args: better handle name conflicts in #to_paths
Before we used to evaluate all named arguments as local paths
first. This means that the following could be a name conflict.

$ brew edit src

If there was a local file or directory named src, it would default
to that. Otherwise it would search for a formula/cask with the
same name and return that.

Now it will only default to the local path if the named argument
starts or ends with a slash ('/') or includes a period ('.').
This means that in the event of a name clash with a normal package
name it will default to the package instead of the local file.

It also fixes an edge case where the following would be interpreted
as a tap name.

$ brew edit /src
2023-10-01 15:51:02 -07:00
apainintheneck
b1c47969a6 cli/named_args: expand paths in #to_paths
This will make the output clearer for `brew edit --print-path`.
2023-09-27 23:16:20 -07:00
Bo Anderson
ba2ecede1a
cli/named_args: don't interpret --formula/--cask args as paths 2023-09-27 17:56:42 +01:00
Mike McQuaid
58f8832a7e
cli/parser: check env var directly if there's no EnvConfig method.
Before this change, external commands, whether official or not, cannot
use the `env:` DSL for `Homebrew::CLI::Parser` without adding their
environment variable to `Homebrew::EnvConfig`.

Instead, if the method is not defined, check the environment variable
directly. This allows `env:` to be used as expected and allows
simplifying some (new) code in e.g. `brew bundle`.
2023-09-27 12:28:24 +01:00
apainintheneck
5760ae4fb2 cmd/readall: Cleanup todos
- keep running the command against all os/arch combinations
  as the default
- remove todos and deprecations related to changing the behavior
- create constants for os/arch combinations
2023-09-19 21:33:13 -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
Eric Knibbe
b3ecd91f97
dev-cmd/edit: suggest tapping core repositories 2023-08-01 13:39:28 -04:00
Mike McQuaid
7da934f7e2
Deprecate/disable/delete code.
The next release after this is merged will be 4.1.0.

Co-authored-by: Markus Reiter <me@reitermark.us>
2023-07-06 16:56:20 +01:00
Bo Anderson
68289f1165
Add without_api specifier for CLI named args 2023-06-22 01:57:28 +01:00
Markus Reiter
486c3765ce
Add --os=all and --arch=all options. 2023-05-17 15:26:46 +02:00
Markus Reiter
a3231a03fa
Implement cask renames. 2023-05-12 21:17:30 +02:00
Douglas Eichelberger
08af78a2a5 brew style --fix 2023-04-25 09:26:24 -07:00
Douglas Eichelberger
24cf6076e8 brew style --fix 2023-04-24 20:42:39 -07:00
Markus Reiter
bdd6523ce8
Deprecate appcast. 2023-03-30 03:29:06 +02:00
Markus Reiter
c38f0c3aae
Fix typecheck. 2023-03-26 09:26:36 +02:00
Markus Reiter
3da305fa80
Add keyboard_layout stanza. 2023-03-26 08:14:24 +02:00
Douglas Eichelberger
04f7258009 brew style --fix 2023-03-13 11:24:49 -07:00
Douglas Eichelberger
e5a392c256 T.unsafe is now safe 2023-03-13 10:46:39 -07:00
Douglas Eichelberger
b7d2953412 enable typing in --env 2023-03-03 19:12:33 -08:00
Douglas Eichelberger
d98b7845d3 Enable typing in misc files 2023-03-03 08:29:26 -08:00
Douglas Eichelberger
f9f73f3ef6 Tidy up 2023-02-27 21:42:47 -08:00
Douglas Eichelberger
1ab278f74c Fix style/type violations 2023-02-27 20:34:07 -08:00
Douglas Eichelberger
0eccc0e987 git grep -l Utils::Inflection | xargs gsed -i 's|Utils::Inflection|Utils|g' 2023-02-27 20:18:27 -08:00