rubygems-update 3.4.9 → 3.4.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a0ce67a665c26fdc475dafc0858072799332dc0b01b57143bd46a25bd3d07c8d
4
- data.tar.gz: 88d69d29ecde40e8ca5112f6ee1d706a66c7819842902a0515b322eeff6187f8
3
+ metadata.gz: 46744d5e03cb80dd7f581f3b934f104c88910b8442d3659b6d41d55777ab7f3a
4
+ data.tar.gz: d7a2016d3d9af5bc86f92ec7bdb8ec8199d7de024a5fbe4b4a2cd0584bcbcf37
5
5
  SHA512:
6
- metadata.gz: fd112dabe5437ac6a58a3bbcb73bd08bbc4061cce3c9e2923fead4816bdf956eb6ce4315fb16d40fc78179939bdb516c748fdb0a7a09debad2f520599968f137
7
- data.tar.gz: 1a2ec92153d67b8d8deb53ead80c6ab7652d709cceb4ffe9d97528f1adcd0be95892e90a573a6ff305b82b5fd1ead9c48223bce93bf6d6bfe960c1bd71478629
6
+ metadata.gz: 8416a6fc4327c003c86b8f05dcebcb0c073cb098ccf3d08661a121aedfca3d493b7b6440a605b5c1711f57b77ff230124d58492f99a58a4f926dd94992b4355c
7
+ data.tar.gz: 67d782b6794632c09340a51b0f46cde1b82f70cc91aed59cb01961ed6ab57ee2c9a9043c08250c0c6889e2bab71faa6b6e6fa71de0e6cf5e85472ffade6ce73c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ # 3.4.10 / 2023-03-27
2
+
3
+ ## Enhancements:
4
+
5
+ * Installs bundler 2.4.10 as a default gem.
6
+
1
7
  # 3.4.9 / 2023-03-20
2
8
 
3
9
  ## Enhancements:
@@ -510,7 +516,7 @@
510
516
  ## Breaking changes:
511
517
 
512
518
  * Removed deprecated `gem server` command. Pull request [#5034](https://github.com/rubygems/rubygems/pull/5034) by hsbt
513
- * Remove MacOS specific gem layout. Pull request [#4833](https://github.com/rubygems/rubygems/pull/4833) by deivid-rodriguez
519
+ * Remove macOS specific gem layout. Pull request [#4833](https://github.com/rubygems/rubygems/pull/4833) by deivid-rodriguez
514
520
  * Default `gem update` documentation format is now only `ri`. Pull request
515
521
  [#3888](https://github.com/rubygems/rubygems/pull/3888) by hsbt
516
522
 
data/Manifest.txt CHANGED
@@ -80,7 +80,6 @@ bundler/lib/bundler/gem_helpers.rb
80
80
  bundler/lib/bundler/gem_tasks.rb
81
81
  bundler/lib/bundler/gem_version_promoter.rb
82
82
  bundler/lib/bundler/graph.rb
83
- bundler/lib/bundler/incomplete_specification.rb
84
83
  bundler/lib/bundler/index.rb
85
84
  bundler/lib/bundler/injector.rb
86
85
  bundler/lib/bundler/inline.rb
data/bundler/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-20".freeze
8
- @git_commit_sha = "6f8e92bcc6".freeze
7
+ @built_at = "2023-03-27".freeze
8
+ @git_commit_sha = "7ffdec80d0".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -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 && unlocking? && !sources.expired_sources?(@locked_gems.sources)
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
- definition = Definition.new(nil, deps, source_list, true)
87
- install_definition(definition)
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(incomplete_specs)
38
- incomplete_specs.each do |incomplete_spec|
39
- incomplete_spec.partially_complete_specs.each do |spec|
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
- names.each do |name|
55
- @base.delete_by_name(name)
52
+ indirect_pins = indirect_pins(names)
56
53
 
57
- @base_requirements.delete(name)
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|
@@ -7,8 +7,11 @@ module Bundler
7
7
  include Enumerable
8
8
  include TSort
9
9
 
10
- def initialize(specs)
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
- specs << IncompleteSpecification.new(name, lookup[name])
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, platforms = [nil])
82
- materialized = self.for(deps, true, platforms)
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
- materialize(deps, [Gem::Platform::RUBY]).incomplete_specs.any?
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|
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.4.9".freeze
4
+ VERSION = "2.4.10".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
@@ -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__)
data/lib/rubygems.rb CHANGED
@@ -8,7 +8,7 @@
8
8
  require "rbconfig"
9
9
 
10
10
  module Gem
11
- VERSION = "3.4.9"
11
+ VERSION = "3.4.10"
12
12
  end
13
13
 
14
14
  # Must be first since it unloads the prelude from 1.9.2
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "rubygems-update"
5
- s.version = "3.4.9"
5
+ s.version = "3.4.10"
6
6
  s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
7
  s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
8
 
@@ -87,7 +87,7 @@ class TestGemExtCargoBuilder < Gem::TestCase
87
87
  end
88
88
  end
89
89
 
90
- assert_match /cargo\s.*\sfailed/, error.message
90
+ assert_match(/cargo\s.*\sfailed/, error.message)
91
91
  end
92
92
 
93
93
  def test_full_integration
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-update
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.9
4
+ version: 3.4.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -16,7 +16,7 @@ authors:
16
16
  autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
- date: 2023-03-20 00:00:00.000000000 Z
19
+ date: 2023-03-27 00:00:00.000000000 Z
20
20
  dependencies: []
21
21
  description: |-
22
22
  A package (also known as a library) contains a set of functionality
@@ -136,7 +136,6 @@ files:
136
136
  - bundler/lib/bundler/gem_tasks.rb
137
137
  - bundler/lib/bundler/gem_version_promoter.rb
138
138
  - bundler/lib/bundler/graph.rb
139
- - bundler/lib/bundler/incomplete_specification.rb
140
139
  - bundler/lib/bundler/index.rb
141
140
  - bundler/lib/bundler/injector.rb
142
141
  - bundler/lib/bundler/inline.rb
@@ -837,7 +836,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
837
836
  - !ruby/object:Gem::Version
838
837
  version: '0'
839
838
  requirements: []
840
- rubygems_version: 3.4.9
839
+ rubygems_version: 3.4.10
841
840
  signing_key:
842
841
  specification_version: 4
843
842
  summary: RubyGems is a package management framework for Ruby.
@@ -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