mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[rubygems/rubygems] Fix gemspec source unlocking also for prereleases like 0.0.0.SNAPSHOT
The default prerelease requirement in rubygems doesn't actually match
things like "0.0.0.SNAPSHOT".
711498b342
This commit is contained in:
parent
2a15b28a9e
commit
cf88271331
2 changed files with 34 additions and 1 deletions
|
@ -39,7 +39,7 @@ module Bundler
|
|||
end
|
||||
|
||||
def satisfies?(dependency)
|
||||
effective_requirement = dependency.requirement == Gem::Requirement.default ? Gem::Requirement.default_prerelease : dependency.requirement
|
||||
effective_requirement = dependency.requirement == Gem::Requirement.default ? Gem::Requirement.new(">= 0.A") : dependency.requirement
|
||||
|
||||
@name == dependency.name && effective_requirement.satisfied_by?(Gem::Version.new(@version))
|
||||
end
|
||||
|
|
|
@ -216,6 +216,39 @@ RSpec.describe "bundle install with explicit source paths" do
|
|||
expect(the_bundle).to include_gems "foo 0.0.0.dev"
|
||||
end
|
||||
|
||||
it "works when using uppercase prereleases of 0.0.0" do
|
||||
build_lib "foo", "0.0.0.SNAPSHOT", :path => lib_path("foo")
|
||||
|
||||
gemfile <<~G
|
||||
source "#{file_uri_for(gem_repo1)}"
|
||||
gem "foo", :path => "#{lib_path("foo")}"
|
||||
G
|
||||
|
||||
lockfile <<~L
|
||||
PATH
|
||||
remote: #{lib_path("foo")}
|
||||
specs:
|
||||
foo (0.0.0.SNAPSHOT)
|
||||
|
||||
GEM
|
||||
remote: #{file_uri_for(gem_repo1)}/
|
||||
specs:
|
||||
|
||||
PLATFORMS
|
||||
#{lockfile_platforms}
|
||||
|
||||
DEPENDENCIES
|
||||
foo!
|
||||
|
||||
BUNDLED WITH
|
||||
#{Bundler::VERSION}
|
||||
L
|
||||
|
||||
bundle :install
|
||||
|
||||
expect(the_bundle).to include_gems "foo 0.0.0.SNAPSHOT"
|
||||
end
|
||||
|
||||
it "handles downgrades" do
|
||||
build_lib "omg", "2.0", :path => lib_path("omg")
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue