85 Commits

Author SHA1 Message Date
Sam Ford
bd4124c10f
Livecheck: Avoid duplicate URLs
Some formulae/casks contain duplicate checkable URLs or contain
URLs that become duplicates after `#preprocess_url` is used. With
the former, a formula's `stable` and `head` URLs can be the same if
they both use the Git repository. With the latter, a formula's
`homepage` and `stable` URLs are different but `#preprocess_url` can
return the same Git repository URL for each (which can also be
a duplicate of the `head` URL).

The `fabric-completion` formula is a worst case scenario, as it
contains both of these conditions but the repository has no tags.
By default, livecheck would needlessly check the repository three
times (i.e., no versions are found so livecheck tries the next URL,
which happens to be the same URL).

This commit avoids duplicate URLs in `#checkable_urls` and keeps
track of checked URLs in `#latest_version` to avoid a duplicate
caused by `#preprocess_url`. This should effectively resolve the
issue of checking the same URL more than once for a given
formula/cask. Checking the same URL only once across all the
formulae/casks in a given livecheck run will be handled in a later
commit (though I've done most of the groundwork already in previous
PRs).
2021-12-14 10:31:15 -05:00
EricFromCanada
ed3042c37a
livecheck: use brewed curl if called for by download URL 2021-11-28 12:57:24 -05:00
Sam Ford
f8ded0a435
PageMatch: Enforce requirements in #find_versions
This aligns `PageMatch` with how cask strategies handle requirements
in their `#find_versions` methods. This moves related logic from
`Livecheck#latest_version` into the `PageMatch` strategy, which feels
a bit more appropriate.
2021-11-20 00:39:00 -05:00
Sam Ford
e73524b093
livecheck: Fix debug strategy info printing
The `ExtractPlist` strategy doesn't return certain values (e.g.,
`:url`), so it's necessary to also ensure these values are present
before printing related debug info. Without these changes, we end up
printing info for a blank value (e.g., "URL (strategy):").
2021-11-19 23:58:55 -05:00
Sam Ford
13b349b4ae
Refactor #find_versions parameters in strategies 2021-08-16 12:01:32 -04:00
Sam Ford
cf79ced740
Rework how strategy constants are identified
Up to this point, we've had to rely on making `Strategy` constants
private to ensure that the only available constants are strategies.
With the current setup, the existence of a constant that's not a
strategy would break `Strategy#strategies` and
`Livecheck#livecheck_strategy_names`.

Instead, we can achieve the same goal by skipping over constants
that aren't a class. Other than saving us from having to make these
constants private, this is necessary to be able to create a
`Strategy` constant that can be used in all strategies.
2021-08-11 18:25:34 -04:00
Sam Ford
ddde0f7589
livecheck: allow inheriting from a formula/cask 2021-08-02 09:12:22 -04:00
Mike McQuaid
30a65342e8
Deprecate, disable, delete code for Homebrew 3.2.0
Do the usual deprecation, disable, delete dance for Homebrew 3.2.0.
2021-06-17 11:34:32 +01:00
Mike McQuaid
6f071a06f8
Use JSON.pretty_generate
It's dramatically more human readable for very little difference in
space.
2021-04-09 15:44:37 +01:00
Mike McQuaid
d5733a4133
Remove some premature odisabled
See https://github.com/Homebrew/brew/pull/11075#discussion_r610602507
2021-04-09 14:12:40 +01:00
Mike McQuaid
d73351251c
Deprecate, disable, delete code for next major/minor version.
Do the usual dance for bumping our major/minor version.
2021-04-09 09:30:36 +01:00
Markus Reiter
a210b1a04e
Add extract_plist strategy. 2021-04-07 04:58:31 +02:00
nandahkrishna
8ddf9b37bd
Apply suggestions from code review
Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2021-03-05 18:55:51 +05:30
nandahkrishna
ab0e427d3e
Disambiguate formulae/casks from different taps 2021-03-04 23:56:04 +05:30
nandahkrishna
7d5216c500
Improve formula/cask disambiguation 2021-03-04 23:56:04 +05:30
nandahkrishna
f11786d63d
Apply suggestions from code review
Co-authored-by: Sam Ford <1584702+samford@users.noreply.github.com>
2021-03-04 23:56:04 +05:30
nandahkrishna
22cc750c66
livecheck and bump: formula/cask disambiguation 2021-03-04 23:56:04 +05:30
Sam Ford
703d59b521
livecheck: check stable before head by default 2021-02-04 15:44:09 -05:00
EricFromCanada
a427de5bee capitalization fixes
"curl" is the binary, while "cURL" is the umbrella project.
2021-01-26 15:36:44 -05:00
Seeker
a308c6da73
Merge pull request #10376 from SeekingMeaning/livecheck-multi-version
livecheck: split cask versions into sub-versions
2021-01-25 10:08:27 -08:00
nandahkrishna
138f7de18f
Refactor brew bump: apply suggestions from code review
Co-authored-by: Sam Ford <1584702+samford@users.noreply.github.com>
2021-01-24 19:10:47 +05:30
nandahkrishna
e2ddf9894a
Refactor brew bump 2021-01-24 19:10:46 +05:30
Seeker
d9da53044e livecheck: rename version.rb to livecheck_version.rb 2021-01-22 12:25:13 -08:00
Seeker
9edb648869 livecheck: split cask versions into sub-versions 2021-01-21 08:56:50 -08:00
Seeker
e42e98108b
Merge pull request #10348 from SeekingMeaning/livecheck-actual-version
livecheck: compare actual version for casks
2021-01-20 07:44:33 -08:00
Seeker
fbafaff4fe rubocop: require braces for Sorbet sig 2021-01-18 16:52:45 -08:00
Seeker
94a33b1d2e livecheck: compare actual version for casks 2021-01-17 11:24:52 -08:00
Sam Ford
6c4041c026
Livecheck: Do not convert URL symbol to string 2021-01-13 09:35:54 -05:00
Sam Ford
12e5f4dce1
Livecheck: Refactor #skip_conditions into a module
Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2021-01-12 18:34:33 -05:00
Sam Ford
aae91cacae
Livecheck: Skip Internet Archive stable URLs 2021-01-12 18:04:26 -05:00
Sam Ford
f36d1a7fb6
Livecheck: Skip Google Code Archive stable URLs 2021-01-12 18:04:26 -05:00
Markus Reiter
41a8fa4efc
Merge pull request #10235 from reitermarkus/livecheck-header
Don't preprocess URL for `:header_match` strategy.
2021-01-07 15:01:31 +01:00
Markus Reiter
52daccb365 Don't preprocess URL for :header_match strategy. 2021-01-06 12:34:30 +01:00
Seeker
790d807b97 livecheck: enable Sorbet type checking 2021-01-05 14:16:54 -08:00
Sam Ford
d7fa400930
Livecheck: Surface cached status in debug output 2020-12-24 22:19:14 -05:00
Sam Ford
88843d2e43
Livecheck: Fix final url spacing in debug output 2020-12-24 15:00:57 -05:00
Sam Ford
12afb272bb
Strategy: Manually handle redirections 2020-12-23 00:35:27 -05:00
Markus Reiter
921485c672
Don't print backtrace for “Unable to get versions” error. 2020-12-19 19:34:27 -05:00
Sam Ford
0148ee870e
Livecheck: Use alphabetical order in symbols array 2020-12-19 19:34:26 -05:00
Sam Ford
a55686a0e2
Enforce strategy url requirement in latest_version 2020-12-19 19:34:25 -05:00
Markus Reiter
8a583a7aee
Remove args. 2020-12-19 19:34:23 -05:00
Markus Reiter
126842531e
Print backtrace in debug mode. 2020-12-19 19:34:21 -05:00
Markus Reiter
8b7f38faf0
Fix code style. 2020-12-19 19:34:19 -05:00
Markus Reiter
0fe3bf7c7f
Only use Sparkle strategy if URL is specified explicitly. 2020-12-19 19:34:19 -05:00
Markus Reiter
1857e0ebfa
Skip discontinued, latest and unversioned casks. 2020-12-19 19:34:18 -05:00
Markus Reiter
b3c46ba2b9
Allow extracting URL in Sparkle strategy. 2020-12-19 19:34:17 -05:00
Markus Reiter
7762a597d6
Don't preprocess URL for Sparkle strategy. 2020-12-19 19:34:17 -05:00
Markus Reiter
f711352cfd Add audit for livecheck in casks. 2020-12-14 15:44:35 +01:00
Sam Ford
9d08f09714
livecheck: assume type of formula_or_cask less 2020-12-12 17:43:26 -05:00
Sam Ford
704ec8abf0
livecheck: reinstate previous order of hashes 2020-12-12 17:43:26 -05:00