From 5b4b7b24e6673567b8d6eb1f5f0e031f295e602b Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Sat, 24 Sep 2016 17:40:37 +0100 Subject: [PATCH] version: don't let a/b imply alpha/beta. This is assumption is broken for at least OpenSSL which makes it a bad general rule. As discussed in #1102. --- Library/Homebrew/test/test_versions.rb | 2 ++ Library/Homebrew/version.rb | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/test/test_versions.rb b/Library/Homebrew/test/test_versions.rb index 307bf6ead8..21bf324a38 100644 --- a/Library/Homebrew/test/test_versions.rb +++ b/Library/Homebrew/test/test_versions.rb @@ -63,6 +63,8 @@ class VersionComparisonTests < Homebrew::TestCase end def test_comparing_alpha_versions + assert_operator version("1.2.3alpha"), :<, version("1.2.3") + assert_operator version("1.2.3"), :<, version("1.2.3a") assert_operator version("1.2.3alpha4"), :==, version("1.2.3a4") assert_operator version("1.2.3alpha4"), :==, version("1.2.3A4") assert_operator version("1.2.3alpha4"), :>, version("1.2.3alpha3") diff --git a/Library/Homebrew/version.rb b/Library/Homebrew/version.rb index 00fe2f4901..60a8336095 100644 --- a/Library/Homebrew/version.rb +++ b/Library/Homebrew/version.rb @@ -95,7 +95,7 @@ class Version end class AlphaToken < CompositeToken - PATTERN = /a(?:lpha)?[0-9]*/i + PATTERN = /alpha[0-9]*|a[0-9]+/i def <=>(other) case other @@ -108,7 +108,7 @@ class Version end class BetaToken < CompositeToken - PATTERN = /b(?:eta)?[0-9]*/i + PATTERN = /beta[0-9]*|b[0-9]+/i def <=>(other) case other