diff --git a/Library/Homebrew/test/version_spec.rb b/Library/Homebrew/test/version_spec.rb index 2a0cf93629..c387836786 100644 --- a/Library/Homebrew/test/version_spec.rb +++ b/Library/Homebrew/test/version_spec.rb @@ -479,6 +479,12 @@ describe Version do specify "version internal dash" do expect(described_class.create("1.1-2")) .to be_detected_from("https://brew.sh/foo-arse-1.1-2.tar.gz") + expect(described_class.create("3.3.04-1")) + .to be_detected_from("https://brew.sh/3.3.04-1.tar.gz") + expect(described_class.create("1.2-20200102")) + .to be_detected_from("https://brew.sh/v1.2-20200102.tar.gz") + expect(described_class.create("3.6.6-0.2")) + .to be_detected_from("https://brew.sh/v3.6.6-0.2.tar.gz") end specify "version single digit" do diff --git a/Library/Homebrew/version.rb b/Library/Homebrew/version.rb index 97de346cc0..43919dc480 100644 --- a/Library/Homebrew/version.rb +++ b/Library/Homebrew/version.rb @@ -417,6 +417,14 @@ class Version # e.g. ruby-1.9.1-p243 StemParser.new(/[_-](#{NUMERIC_WITH_DOTS}-(?:p|rc|RC)?\d+)#{CONTENT_SUFFIX}?$/), + # Hyphenated versions without software-name prefix (e.g. brew-) + # e.g. v0.0.8-12.tar.gz + # e.g. 3.3.04-1.tar.gz + # e.g. v2.1-20210510.tar.gz + # e.g. 2020.11.11-3.tar.gz + # e.g. v3.6.6-0.2 + StemParser.new(/^v?(#{NUMERIC_WITH_DOTS}(?:-#{NUMERIC_WITH_OPTIONAL_DOTS})+)/), + # URL with no extension # e.g. https://waf.io/waf-1.8.12 # e.g. https://codeload.github.com/gsamokovarov/jump/tar.gz/v0.7.1