101 Commits

Author SHA1 Message Date
Markus Reiter
c39abef045
Always prefer default tap. 2024-02-12 21:45:07 +01:00
Markus Reiter
48c9897081
Convert FromNameLoader to class. 2024-02-12 07:43:29 +01:00
Markus Reiter
8e04ab8b42
Fix type signature. 2024-02-12 07:14:28 +01:00
Markus Reiter
0211feebd7
Fix loading test fixtures. 2024-02-12 07:14:27 +01:00
Markus Reiter
6f28392d6e
Remove FromDefaultTapPathLoader and FromDefaultTapLoader. 2024-02-12 07:12:33 +01:00
Markus Reiter
d17aa66759
Avoid T.cast. 2024-02-12 07:12:32 +01:00
Markus Reiter
3e61e3b428
Stop following recursive tap migrations. 2024-02-10 15:07:31 +01:00
Markus Reiter
cb13f95928
Avoid T.cast. 2024-02-09 16:59:27 +01:00
Markus Reiter
1323262610
Rename constant. 2024-02-08 19:22:02 +01:00
Markus Reiter
76d8d6c840
Add type signatures. 2024-02-08 16:30:08 +01:00
Markus Reiter
a37afcb777
Fix loading renamed casks from API. 2024-02-08 16:29:31 +01:00
Markus Reiter
889854b0b3
Merge FromTapPathLoader into FromPathLoader. 2024-02-08 16:20:32 +01:00
Markus Reiter
dc21095731
Simplify multiple ifs into single case statement. 2024-02-08 16:20:32 +01:00
Markus Reiter
732e4438f4
Use token instead of name for casks. 2024-02-08 16:20:31 +01:00
Markus Reiter
6e5b6b7cc9
Remove unused parameter from CaskLoader::tap_paths. 2024-02-08 16:20:31 +01:00
Markus Reiter
c301b9c703
Readd debug logging. 2024-02-07 14:02:12 +01:00
Markus Reiter
825222cc83
Simplify code style.
Co-authored-by: Kevin <apainintheneck@gmail.com>
2024-02-07 14:02:10 +01:00
Markus Reiter
c559e6777c
Reuse rename logic for default cask tap. 2024-02-07 02:02:03 +01:00
Markus Reiter
889c3c38ed
Refactor CaskLoader::for. 2024-02-07 02:02:02 +01:00
Markus Reiter
e5a6f765da
Revert "Merge pull request #16608 from bevanjkay/revert-16596-cask-rename-migrations"
This reverts commit 5799e8541567385c4d729cc3f0062b45e55b9936, reversing
changes made to 677517132782b276ba1c4ba77456adf7540d99ba.
2024-02-07 02:02:02 +01:00
Bevan Kay
f0b8845ad6
Revert "Handle tap migrations in CaskLoader." 2024-02-06 20:16:03 +00:00
Markus Reiter
094761dcd9
Add tests for CaskLoader::for. 2024-02-06 19:56:09 +01:00
Markus Reiter
ed00dc0b95
Add type annotations for cask loaders. 2024-02-06 16:04:08 +01:00
Markus Reiter
5cab0c8a6e
Handle tap migrations in CaskLoader. 2024-02-06 01:08:23 +01:00
Douglas Eichelberger
f6c7eb7124 Add hash/keys to extend/ 2024-01-19 13:36:17 -08:00
apainintheneck
984dcf8c11 API: Load casks/formula from JSON with missing keys
We'd like to reduce the size of the API JSON and to do that we are
going to remove unused and/or blank elements from the cask/formula
definition. This will reduce the amount of data that has to go
over the wire and make it easier to load this data into memory.
2024-01-01 19:10:48 -08:00
Rylan Polster
472dd95b16
Fix cask loading from the API
Co-authored-by: Kevin <apainintheneck@gmail.com>
2023-12-16 20:08:26 -05:00
Rylan Polster
641a80475e
Update cask logic to handle deprecations and disables 2023-12-16 20:01:47 -05:00
Bo Anderson
af7d744af0
Fixes for Ruby 3 2023-09-29 05:25:48 +01:00
Mike McQuaid
b7114651ac
utils/curl: include or use explicitly.
Include or use `Utils::Curl` explicitly everywhere it is used.
2023-09-04 22:17:57 -04:00
apainintheneck
51387287f7 Handle nil urls in cask installer and API cask loader
The goal here is to handle the case where a cask might have a nil
url stanza because that cask is not available on the current version
of macOS or the given architecture. This just moves those checks
from the end of the `Cask::Installer#fetch` method to the beginning
so that we don't try and download casks that are missing urls.

This will now provide a helpful error message like so:
```
Error: This software does not run on macOS versions older than Big Sur.
```

Beyond that it no longer tries to run the url stanza with a nil value
when loading casks from the API.
2023-09-02 20:56:36 -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
c940e15a5c
Use HOMEBREW_CELLAR_PLACEHOLDER
Similarly to HOMEBREW_PREFIX_PLACEHOLDER, this allows the substitution
of HOMEBREW_CELLAR in JSON output when using the API.

Fixes #15668.
2023-07-18 10:59:27 +01:00
Bo Anderson
ba02c669e1
Introduce CoreCaskTap class 2023-07-13 20:33:26 +01:00
Markus Reiter
a3231a03fa
Implement cask renames. 2023-05-12 21:17:30 +02:00
Markus Reiter
8274920217
Rename OS::Mac::Version to MacOSVersion. 2023-05-09 05:08:38 +02:00
Bo Anderson
44f058edb5
Refactor formula, cask and Ruby source downloads to use shared code 2023-04-27 23:23:07 +01: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
apainintheneck
6ccf21c2c9 Merge branch 'master' into add-service-block-to-formula-api 2023-03-22 20:06:32 -07:00
apainintheneck
801ee5e474 Address feedback
- style nits
- better comments for tests that are not idempotent
- moved appdir placeholder constant to global.rb
2023-03-22 19:43:49 -07:00
apainintheneck
38146893c3 api_hashable: Make API path subs generic
This turns the ability to replace common paths with placeholders
into a mixin that can be used with both Casks and Formulae.

The idea here is to make formula hash generation more consistent.
2023-03-21 23:20:42 -07:00
apainintheneck
3aae28aa0d cask: remove old prefix placeholder
This was just a temporary workaround while we
waited for the API to regenerate the JSON content.
2023-03-18 16:42:44 -07:00
Douglas Eichelberger
04fa6e24d7 Enable more typing 2023-03-13 09:08:56 -07:00
Mike McQuaid
b698cef945
brew style --fix (and a manual one) 2023-03-07 10:48:35 +00:00
Mike McQuaid
d20abb4863
brew style --fix 2023-03-03 10:45:08 +00:00
apainintheneck
c19017c6bd Make Cask#to_h work without the API
Set metadata when we load casks from the source API.

Set `@tap_git_head` manually.

Also, allow `auto_update` to receive false.
This is only done for consistency.

Stop double printing the `kext` caveat.

Handle Array elements correctly when substituting
path elements in artifacts. This affected how the
Uninstall Signal keys were evaluated (they are
represented as arrays of arrays).
2023-02-28 19:36:20 -08:00
apainintheneck
b91e93cda0 Load cask source with tap info
This info is used in the installer to
decide whether to report analytics.
2023-02-27 23:51:43 -08:00
apainintheneck
fdc2e9f3f5 Merge branch 'master' into delay-loading-from-cask-source-api 2023-02-26 14:50:13 -08:00