diff --git a/lib/rubygems/specification_policy.rb b/lib/rubygems/specification_policy.rb index c076881915d7..a05edcd5c9c6 100644 --- a/lib/rubygems/specification_policy.rb +++ b/lib/rubygems/specification_policy.rb @@ -152,7 +152,7 @@ def validate_dependencies # :nodoc: if #{dep.name} is semantically versioned, use: add_#{dep.type}_dependency '#{dep.name}', '~> #{base.join '.'}', '>= #{dep_version}' if #{dep.name} is not semantically versioned, you can bypass this warning with: - add_#{dep.type}_dependency '#{dep.name}', '>= #{dep_version}', '< #{upper_bound.join '.'}' + add_#{dep.type}_dependency '#{dep.name}', '>= #{dep_version}', '< #{upper_bound.join '.'}.a' WARNING end diff --git a/test/rubygems/test_gem_requirement.rb b/test/rubygems/test_gem_requirement.rb index 974f5891e5d4..7bca00e58b32 100644 --- a/test/rubygems/test_gem_requirement.rb +++ b/test/rubygems/test_gem_requirement.rb @@ -330,6 +330,20 @@ def test_satisfied_by_boxed refute_satisfied_by "2.0", "~> 1.4.4" end + def test_satisfied_by_explicitly_bounded + req = [">= 1.4.4", "< 1.5"] + + assert_satisfied_by "1.4.5", req + assert_satisfied_by "1.5.0.rc1", req + refute_satisfied_by "1.5.0", req + + req = [">= 1.4.4", "< 1.5.a"] + + assert_satisfied_by "1.4.5", req + refute_satisfied_by "1.5.0.rc1", req + refute_satisfied_by "1.5.0", req + end + def test_specific refute req('> 1') .specific? refute req('>= 1').specific? diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb index 87ad724e6b17..81f113b60e9f 100644 --- a/test/rubygems/test_gem_specification.rb +++ b/test/rubygems/test_gem_specification.rb @@ -2614,12 +2614,12 @@ def test_validate_dependencies if d is semantically versioned, use: add_runtime_dependency 'd', '~> 1.2', '>= 1.2.3' if d is not semantically versioned, you can bypass this warning with: - add_runtime_dependency 'd', '>= 1.2.3', '< 1.3' + add_runtime_dependency 'd', '>= 1.2.3', '< 1.3.a' #{w}: pessimistic dependency on e (~> 1.2.3.4) may be overly strict if e is semantically versioned, use: add_runtime_dependency 'e', '~> 1.2', '>= 1.2.3.4' if e is not semantically versioned, you can bypass this warning with: - add_runtime_dependency 'e', '>= 1.2.3.4', '< 1.2.4' + add_runtime_dependency 'e', '>= 1.2.3.4', '< 1.2.4.a' #{w}: open-ended dependency on i (>= 1.2) is not recommended if i is semantically versioned, use: add_runtime_dependency 'i', '~> 1.2' @@ -2636,7 +2636,7 @@ def test_validate_dependencies if m is semantically versioned, use: add_runtime_dependency 'm', '~> 2.1', '>= 2.1.0' if m is not semantically versioned, you can bypass this warning with: - add_runtime_dependency 'm', '>= 2.1.0', '< 2.2' + add_runtime_dependency 'm', '>= 2.1.0', '< 2.2.a' #{w}: See http://guides.rubygems.org/specification-reference/ for help EXPECTED