bundler 2.4.9 → 2.4.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/definition.rb +5 -1
- data/lib/bundler/plugin/installer.rb +5 -2
- data/lib/bundler/resolver/base.rb +38 -8
- data/lib/bundler/spec_set.rb +13 -10
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler.rb +0 -1
- metadata +3 -4
- data/lib/bundler/incomplete_specification.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce72b26ab92bb2518537d2dad1f4b2c68bc82f4a1a17ad16d3647df275981937
|
4
|
+
data.tar.gz: b6afc954f239e845d5127921fa29b114648a075c154e4c13dcbd25f100af4f03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4fd7c530ab5761267f729fc16d40f287c2ab7873f45bdd7ec18bd9334fdec0466b521a5b369a8e1c485dd178def2c31c3aac5b38dba2e1816aa1ba2f7a0f3bdb
|
7
|
+
data.tar.gz: 4cca0f7b51657657ea12aa35620c0d14f23043d4bf78706e37c50c174cf5f7bc158b8549036b6f058691ecd93a67be1a25b98ffe9ecc9a26b3644181fcd2098c
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
# 2.4.10 (March 27, 2023)
|
2
|
+
|
3
|
+
## Bug fixes:
|
4
|
+
|
5
|
+
- Fix some unnecessary top level dependency downgrades [#6535](https://github.com/rubygems/rubygems/pull/6535)
|
6
|
+
- Fix incorrect ruby platform removal from lockfile when adding Gemfile dependencies [#6540](https://github.com/rubygems/rubygems/pull/6540)
|
7
|
+
- Fix installing plugins in frozen mode [#6543](https://github.com/rubygems/rubygems/pull/6543)
|
8
|
+
- Restore "enumerability" of `SpecSet` [#6532](https://github.com/rubygems/rubygems/pull/6532)
|
9
|
+
|
1
10
|
# 2.4.9 (March 20, 2023)
|
2
11
|
|
3
12
|
## Security:
|
@@ -4,8 +4,8 @@ module Bundler
|
|
4
4
|
# Represents metadata from when the Bundler gem was built.
|
5
5
|
module BuildMetadata
|
6
6
|
# begin ivars
|
7
|
-
@built_at = "2023-03-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2023-03-27".freeze
|
8
|
+
@git_commit_sha = "7ffdec80d0".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
data/lib/bundler/definition.rb
CHANGED
@@ -726,6 +726,8 @@ module Bundler
|
|
726
726
|
dep.source = sources.get(dep.source)
|
727
727
|
end
|
728
728
|
|
729
|
+
next if unlocking?
|
730
|
+
|
729
731
|
unless locked_dep = @locked_deps[dep.name]
|
730
732
|
changes = true
|
731
733
|
next
|
@@ -886,8 +888,9 @@ module Bundler
|
|
886
888
|
end
|
887
889
|
|
888
890
|
def additional_base_requirements_for_resolve(resolution_packages, last_resolve)
|
889
|
-
return resolution_packages unless @locked_gems &&
|
891
|
+
return resolution_packages unless @locked_gems && !sources.expired_sources?(@locked_gems.sources)
|
890
892
|
converge_specs(@originally_locked_specs - last_resolve).each do |locked_spec|
|
893
|
+
next if locked_spec.source.is_a?(Source::Path)
|
891
894
|
resolution_packages.base_requirements[locked_spec.name] = Gem::Requirement.new(">= #{locked_spec.version}")
|
892
895
|
end
|
893
896
|
resolution_packages
|
@@ -898,6 +901,7 @@ module Bundler
|
|
898
901
|
Bundler.local_platform == Gem::Platform::RUBY ||
|
899
902
|
!platforms.include?(Gem::Platform::RUBY) ||
|
900
903
|
(@new_platform && platforms.last == Gem::Platform::RUBY) ||
|
904
|
+
@dependency_changes ||
|
901
905
|
!@originally_locked_specs.incomplete_ruby_specs?(dependencies)
|
902
906
|
|
903
907
|
remove_platform(Gem::Platform::RUBY)
|
@@ -83,8 +83,11 @@ module Bundler
|
|
83
83
|
|
84
84
|
Bundler.configure_gem_home_and_path(Plugin.root)
|
85
85
|
|
86
|
-
|
87
|
-
|
86
|
+
Bundler.settings.temporary(:deployment => false, :frozen => false) do
|
87
|
+
definition = Definition.new(nil, deps, source_list, true)
|
88
|
+
|
89
|
+
install_definition(definition)
|
90
|
+
end
|
88
91
|
end
|
89
92
|
|
90
93
|
# Installs the plugins and deps from the provided specs and returns map of
|
@@ -34,11 +34,9 @@ module Bundler
|
|
34
34
|
@base[name]
|
35
35
|
end
|
36
36
|
|
37
|
-
def delete(
|
38
|
-
|
39
|
-
|
40
|
-
@base.delete(spec)
|
41
|
-
end
|
37
|
+
def delete(specs)
|
38
|
+
specs.each do |spec|
|
39
|
+
@base.delete(spec)
|
42
40
|
end
|
43
41
|
end
|
44
42
|
|
@@ -51,10 +49,18 @@ module Bundler
|
|
51
49
|
end
|
52
50
|
|
53
51
|
def unlock_names(names)
|
54
|
-
|
55
|
-
@base.delete_by_name(name)
|
52
|
+
indirect_pins = indirect_pins(names)
|
56
53
|
|
57
|
-
|
54
|
+
if indirect_pins.any?
|
55
|
+
loosen_names(indirect_pins)
|
56
|
+
else
|
57
|
+
pins = pins(names)
|
58
|
+
|
59
|
+
if pins.any?
|
60
|
+
loosen_names(pins)
|
61
|
+
else
|
62
|
+
unrestrict_names(names)
|
63
|
+
end
|
58
64
|
end
|
59
65
|
end
|
60
66
|
|
@@ -66,6 +72,30 @@ module Bundler
|
|
66
72
|
|
67
73
|
private
|
68
74
|
|
75
|
+
def indirect_pins(names)
|
76
|
+
names.select {|name| @base_requirements[name].exact? && @requirements.none? {|dep| dep.name == name } }
|
77
|
+
end
|
78
|
+
|
79
|
+
def pins(names)
|
80
|
+
names.select {|name| @base_requirements[name].exact? }
|
81
|
+
end
|
82
|
+
|
83
|
+
def loosen_names(names)
|
84
|
+
names.each do |name|
|
85
|
+
version = @base_requirements[name].requirements.first[1]
|
86
|
+
|
87
|
+
@base_requirements[name] = Gem::Requirement.new(">= #{version}")
|
88
|
+
|
89
|
+
@base.delete_by_name(name)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
def unrestrict_names(names)
|
94
|
+
names.each do |name|
|
95
|
+
@base_requirements.delete(name)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
69
99
|
def build_base_requirements
|
70
100
|
base_requirements = {}
|
71
101
|
@base.each do |ls|
|
data/lib/bundler/spec_set.rb
CHANGED
@@ -7,8 +7,11 @@ module Bundler
|
|
7
7
|
include Enumerable
|
8
8
|
include TSort
|
9
9
|
|
10
|
-
|
10
|
+
attr_reader :incomplete_specs
|
11
|
+
|
12
|
+
def initialize(specs, incomplete_specs = [])
|
11
13
|
@specs = specs
|
14
|
+
@incomplete_specs = incomplete_specs
|
12
15
|
end
|
13
16
|
|
14
17
|
def for(dependencies, check = false, platforms = [nil])
|
@@ -42,7 +45,7 @@ module Bundler
|
|
42
45
|
end
|
43
46
|
|
44
47
|
if incomplete && check
|
45
|
-
|
48
|
+
@incomplete_specs += lookup[name].any? ? lookup[name] : [LazySpecification.new(name, nil, nil)]
|
46
49
|
end
|
47
50
|
end
|
48
51
|
|
@@ -78,10 +81,10 @@ module Bundler
|
|
78
81
|
lookup.dup
|
79
82
|
end
|
80
83
|
|
81
|
-
def materialize(deps
|
82
|
-
materialized = self.for(deps, true
|
84
|
+
def materialize(deps)
|
85
|
+
materialized = self.for(deps, true)
|
83
86
|
|
84
|
-
SpecSet.new(materialized)
|
87
|
+
SpecSet.new(materialized, incomplete_specs)
|
85
88
|
end
|
86
89
|
|
87
90
|
# Materialize for all the specs in the spec set, regardless of what platform they're for
|
@@ -100,17 +103,17 @@ module Bundler
|
|
100
103
|
def incomplete_ruby_specs?(deps)
|
101
104
|
return false if @specs.empty?
|
102
105
|
|
103
|
-
|
106
|
+
@incomplete_specs = []
|
107
|
+
|
108
|
+
self.for(deps, true, [Gem::Platform::RUBY])
|
109
|
+
|
110
|
+
@incomplete_specs.any?
|
104
111
|
end
|
105
112
|
|
106
113
|
def missing_specs
|
107
114
|
@specs.select {|s| s.is_a?(LazySpecification) }
|
108
115
|
end
|
109
116
|
|
110
|
-
def incomplete_specs
|
111
|
-
@specs.select {|s| s.is_a?(IncompleteSpecification) }
|
112
|
-
end
|
113
|
-
|
114
117
|
def merge(set)
|
115
118
|
arr = sorted.dup
|
116
119
|
set.each do |set_spec|
|
data/lib/bundler/version.rb
CHANGED
data/lib/bundler.rb
CHANGED
@@ -62,7 +62,6 @@ module Bundler
|
|
62
62
|
autoload :GemHelpers, File.expand_path("bundler/gem_helpers", __dir__)
|
63
63
|
autoload :GemVersionPromoter, File.expand_path("bundler/gem_version_promoter", __dir__)
|
64
64
|
autoload :Graph, File.expand_path("bundler/graph", __dir__)
|
65
|
-
autoload :IncompleteSpecification, File.expand_path("bundler/incomplete_specification", __dir__)
|
66
65
|
autoload :Index, File.expand_path("bundler/index", __dir__)
|
67
66
|
autoload :Injector, File.expand_path("bundler/injector", __dir__)
|
68
67
|
autoload :Installer, File.expand_path("bundler/installer", __dir__)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bundler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- André Arko
|
@@ -22,7 +22,7 @@ authors:
|
|
22
22
|
autorequire:
|
23
23
|
bindir: exe
|
24
24
|
cert_chain: []
|
25
|
-
date: 2023-03-
|
25
|
+
date: 2023-03-27 00:00:00.000000000 Z
|
26
26
|
dependencies: []
|
27
27
|
description: Bundler manages an application's dependencies through its entire life,
|
28
28
|
across many machines, systematically and repeatably
|
@@ -103,7 +103,6 @@ files:
|
|
103
103
|
- lib/bundler/gem_tasks.rb
|
104
104
|
- lib/bundler/gem_version_promoter.rb
|
105
105
|
- lib/bundler/graph.rb
|
106
|
-
- lib/bundler/incomplete_specification.rb
|
107
106
|
- lib/bundler/index.rb
|
108
107
|
- lib/bundler/injector.rb
|
109
108
|
- lib/bundler/inline.rb
|
@@ -381,7 +380,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
381
380
|
- !ruby/object:Gem::Version
|
382
381
|
version: 3.0.1
|
383
382
|
requirements: []
|
384
|
-
rubygems_version: 3.4.
|
383
|
+
rubygems_version: 3.4.10
|
385
384
|
signing_key:
|
386
385
|
specification_version: 4
|
387
386
|
summary: The best way to manage your application's dependencies
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Bundler
|
4
|
-
#
|
5
|
-
# Represents a package name that was found to be incomplete when trying to
|
6
|
-
# materialize a fresh resolution or the lockfile.
|
7
|
-
#
|
8
|
-
# Holds the actual partially complete set of specifications for the name.
|
9
|
-
# These are used so that they can be unlocked in a future resolution, and fix
|
10
|
-
# the situation.
|
11
|
-
#
|
12
|
-
class IncompleteSpecification
|
13
|
-
attr_reader :name, :partially_complete_specs
|
14
|
-
|
15
|
-
def initialize(name, partially_complete_specs = [])
|
16
|
-
@name = name
|
17
|
-
@partially_complete_specs = partially_complete_specs
|
18
|
-
end
|
19
|
-
|
20
|
-
def ==(other)
|
21
|
-
partially_complete_specs == other.partially_complete_specs
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|