rubygems-update 3.4.13 → 3.4.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/bundler/CHANGELOG.md +16 -0
- data/bundler/exe/bundle +5 -13
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/definition.rb +5 -5
- data/bundler/lib/bundler/installer.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +1 -0
- data/bundler/lib/bundler/settings.rb +3 -2
- data/bundler/lib/bundler/source/rubygems.rb +7 -4
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +2 -1
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +9 -4
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler.rb +4 -3
- data/lib/rubygems/installer.rb +15 -0
- data/lib/rubygems.rb +1 -1
- data/rubygems-update.gemspec +4 -3
- data/test/rubygems/test_gem.rb +7 -0
- data/test/rubygems/test_gem_commands_pristine_command.rb +1 -1
- data/test/rubygems/test_gem_commands_setup_command.rb +1 -1
- data/test/rubygems/test_gem_gem_runner.rb +5 -5
- data/test/rubygems/test_gem_installer.rb +50 -2
- data/test/rubygems/test_gem_uninstaller.rb +4 -4
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d8a97e5b6198a831e3a4f9394870dbf6a2d53b720cfd769bf11876061199bb1
|
4
|
+
data.tar.gz: 0623b2dbd7c85370eabf89e2f908d4fbeb59ffcd725eac2bf883e0b760a9402d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a95e7a9fd03a2552b5d1c3be6529ddf8c13b352f1ba7b9079a914dd060275386a6f2fa1a47b0b68b9a2ee68b67d37a1bdf31a90d0716bd9b805d73421d579d0
|
7
|
+
data.tar.gz: 172343a13367b7973cc14f9c721b92a876cc518e00ab257d6af34424b25011053e3bfed66f16dd005f59ca5da32d5c825f6d36845d99ed14f74caf44710a2e8f
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
# 3.4.14 / 2023-06-12
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
* Load plugin immediately. Pull request
|
6
|
+
[#6673](https://github.com/rubygems/rubygems/pull/6673) by kou
|
7
|
+
* Installs bundler 2.4.14 as a default gem.
|
8
|
+
|
9
|
+
## Documentation:
|
10
|
+
|
11
|
+
* Clarify what the `rubygems-update` gem is for, and link to source code
|
12
|
+
and guides. Pull request
|
13
|
+
[#6710](https://github.com/rubygems/rubygems/pull/6710) by davetron5000
|
14
|
+
|
1
15
|
# 3.4.13 / 2023-05-09
|
2
16
|
|
3
17
|
## Enhancements:
|
data/bundler/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
# 2.4.14 (June 12, 2023)
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
- Stop publishing Gemfile in default gem template [#6723](https://github.com/rubygems/rubygems/pull/6723)
|
6
|
+
- Avoid infinite loops when hitting resolution bugs [#6722](https://github.com/rubygems/rubygems/pull/6722)
|
7
|
+
- Make `LockfileParser` usable with just a lockfile [#6694](https://github.com/rubygems/rubygems/pull/6694)
|
8
|
+
- Always rely on `$LOAD_PATH` when jumping from `exe/` to `lib/` [#6702](https://github.com/rubygems/rubygems/pull/6702)
|
9
|
+
- Make `frozen` setting take precedence over `deployment` setting [#6685](https://github.com/rubygems/rubygems/pull/6685)
|
10
|
+
- Show an error when trying to update bundler in frozen mode [#6684](https://github.com/rubygems/rubygems/pull/6684)
|
11
|
+
|
12
|
+
## Bug fixes:
|
13
|
+
|
14
|
+
- Fix `deployment` vs `path` precedence [#6703](https://github.com/rubygems/rubygems/pull/6703)
|
15
|
+
- Fix inline mode with multiple sources [#6699](https://github.com/rubygems/rubygems/pull/6699)
|
16
|
+
|
1
17
|
# 2.4.13 (May 9, 2023)
|
2
18
|
|
3
19
|
## Bug fixes:
|
data/bundler/exe/bundle
CHANGED
@@ -10,11 +10,11 @@ end
|
|
10
10
|
base_path = File.expand_path("../lib", __dir__)
|
11
11
|
|
12
12
|
if File.exist?(base_path)
|
13
|
-
|
14
|
-
else
|
15
|
-
require "bundler"
|
13
|
+
$LOAD_PATH.unshift(base_path)
|
16
14
|
end
|
17
15
|
|
16
|
+
require "bundler"
|
17
|
+
|
18
18
|
if Gem.rubygems_version < Gem::Version.new("3.2.3") && Gem.ruby_version < Gem::Version.new("2.7.a") && !ENV["BUNDLER_NO_OLD_RUBYGEMS_WARNING"]
|
19
19
|
Bundler.ui.warn \
|
20
20
|
"Your RubyGems version (#{Gem::VERSION}) has a bug that prevents " \
|
@@ -24,18 +24,10 @@ if Gem.rubygems_version < Gem::Version.new("3.2.3") && Gem.ruby_version < Gem::V
|
|
24
24
|
"and silence this warning by running `gem update --system 3.2.3`"
|
25
25
|
end
|
26
26
|
|
27
|
-
|
28
|
-
require_relative "../lib/bundler/friendly_errors"
|
29
|
-
else
|
30
|
-
require "bundler/friendly_errors"
|
31
|
-
end
|
27
|
+
require "bundler/friendly_errors"
|
32
28
|
|
33
29
|
Bundler.with_friendly_errors do
|
34
|
-
|
35
|
-
require_relative "../lib/bundler/cli"
|
36
|
-
else
|
37
|
-
require "bundler/cli"
|
38
|
-
end
|
30
|
+
require "bundler/cli"
|
39
31
|
|
40
32
|
# Allow any command to use --help flag to show help for that command
|
41
33
|
help_flags = %w[--help -h]
|
@@ -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-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2023-06-12".freeze
|
8
|
+
@git_commit_sha = "69f47cf53a".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
@@ -217,6 +217,7 @@ module Bundler
|
|
217
217
|
rescue BundlerError => e
|
218
218
|
@resolve = nil
|
219
219
|
@resolver = nil
|
220
|
+
@resolution_packages = nil
|
220
221
|
@specs = nil
|
221
222
|
@gem_version_promoter = nil
|
222
223
|
|
@@ -361,10 +362,8 @@ module Bundler
|
|
361
362
|
"updated #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)} to version control."
|
362
363
|
|
363
364
|
unless explicit_flag
|
364
|
-
suggested_command =
|
365
|
-
"bundle config
|
366
|
-
elsif Bundler.settings.locations("deployment").keys.&([:global, :local]).any?
|
367
|
-
"bundle config unset deployment"
|
365
|
+
suggested_command = unless Bundler.settings.locations("frozen").keys.include?(:env)
|
366
|
+
"bundle config set frozen false"
|
368
367
|
end
|
369
368
|
msg << "\n\nIf this is a development machine, remove the #{Bundler.default_gemfile} " \
|
370
369
|
"freeze \nby running `#{suggested_command}`." if suggested_command
|
@@ -886,7 +885,8 @@ module Bundler
|
|
886
885
|
if preserve_unknown_sections
|
887
886
|
sections_to_ignore = LockfileParser.sections_to_ignore(@locked_bundler_version)
|
888
887
|
sections_to_ignore += LockfileParser.unknown_sections_in_lockfile(current)
|
889
|
-
sections_to_ignore
|
888
|
+
sections_to_ignore << LockfileParser::RUBY
|
889
|
+
sections_to_ignore << LockfileParser::BUNDLED unless @unlocking_bundler
|
890
890
|
pattern = /#{Regexp.union(sections_to_ignore)}\n(\s{2,}.*\n)+/
|
891
891
|
whitespace_cleanup = /\n{2,}/
|
892
892
|
current = current.gsub(pattern, "\n").gsub(whitespace_cleanup, "\n\n").strip
|
@@ -90,7 +90,7 @@ module Bundler
|
|
90
90
|
|
91
91
|
Gem::Specification.reset # invalidate gem specification cache so that installed gems are immediately available
|
92
92
|
|
93
|
-
lock
|
93
|
+
lock
|
94
94
|
Standalone.new(options[:standalone], @definition).generate if options[:standalone]
|
95
95
|
end
|
96
96
|
end
|
@@ -26,6 +26,7 @@ module Bundler
|
|
26
26
|
KNOWN_SECTIONS = SECTIONS_BY_VERSION_INTRODUCED.values.flatten.freeze
|
27
27
|
|
28
28
|
ENVIRONMENT_VERSION_SECTIONS = [BUNDLED, RUBY].freeze
|
29
|
+
deprecate_constant(:ENVIRONMENT_VERSION_SECTIONS)
|
29
30
|
|
30
31
|
def self.sections_in_lockfile(lockfile_contents)
|
31
32
|
lockfile_contents.scan(/^\w[\w ]*$/).uniq
|
@@ -219,7 +219,6 @@ module Bundler
|
|
219
219
|
def path
|
220
220
|
configs.each do |_level, settings|
|
221
221
|
path = value_for("path", settings)
|
222
|
-
path = "vendor/bundle" if value_for("deployment", settings) && path.nil?
|
223
222
|
path_system = value_for("path.system", settings)
|
224
223
|
disabled_shared_gems = value_for("disable_shared_gems", settings)
|
225
224
|
next if path.nil? && path_system.nil? && disabled_shared_gems.nil?
|
@@ -227,7 +226,9 @@ module Bundler
|
|
227
226
|
return Path.new(path, system_path)
|
228
227
|
end
|
229
228
|
|
230
|
-
|
229
|
+
path = "vendor/bundle" if self[:deployment]
|
230
|
+
|
231
|
+
Path.new(path, false)
|
231
232
|
end
|
232
233
|
|
233
234
|
Path = Struct.new(:explicit_path, :system_path) do
|
@@ -10,7 +10,7 @@ module Bundler
|
|
10
10
|
# Ask for X gems per API request
|
11
11
|
API_REQUEST_SIZE = 50
|
12
12
|
|
13
|
-
attr_reader :remotes
|
13
|
+
attr_reader :remotes
|
14
14
|
|
15
15
|
def initialize(options = {})
|
16
16
|
@options = options
|
@@ -19,11 +19,14 @@ module Bundler
|
|
19
19
|
@allow_remote = false
|
20
20
|
@allow_cached = false
|
21
21
|
@allow_local = options["allow_local"] || false
|
22
|
-
@caches = [cache_path, *Bundler.rubygems.gem_cache]
|
23
22
|
|
24
23
|
Array(options["remotes"]).reverse_each {|r| add_remote(r) }
|
25
24
|
end
|
26
25
|
|
26
|
+
def caches
|
27
|
+
@caches ||= [cache_path, *Bundler.rubygems.gem_cache]
|
28
|
+
end
|
29
|
+
|
27
30
|
def local_only!
|
28
31
|
@specs = nil
|
29
32
|
@allow_local = true
|
@@ -324,9 +327,9 @@ module Bundler
|
|
324
327
|
|
325
328
|
def cached_path(spec)
|
326
329
|
global_cache_path = download_cache_path(spec)
|
327
|
-
|
330
|
+
caches << global_cache_path if global_cache_path
|
328
331
|
|
329
|
-
possibilities =
|
332
|
+
possibilities = caches.map {|p| package_path(p, spec) }
|
330
333
|
possibilities.find {|p| File.exist?(p) }
|
331
334
|
end
|
332
335
|
|
@@ -29,7 +29,8 @@ Gem::Specification.new do |spec|
|
|
29
29
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
30
30
|
spec.files = Dir.chdir(__dir__) do
|
31
31
|
`git ls-files -z`.split("\x0").reject do |f|
|
32
|
-
(File.expand_path(f) == __FILE__) ||
|
32
|
+
(File.expand_path(f) == __FILE__) ||
|
33
|
+
f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor Gemfile])
|
33
34
|
end
|
34
35
|
end
|
35
36
|
spec.bindir = "exe"
|
@@ -162,7 +162,7 @@ module Bundler::PubGrub
|
|
162
162
|
def resolve_conflict(incompatibility)
|
163
163
|
logger.info { "conflict: #{incompatibility}" }
|
164
164
|
|
165
|
-
new_incompatibility =
|
165
|
+
new_incompatibility = nil
|
166
166
|
|
167
167
|
while !incompatibility.failure?
|
168
168
|
most_recent_term = nil
|
@@ -204,7 +204,7 @@ module Bundler::PubGrub
|
|
204
204
|
solution.backtrack(previous_level)
|
205
205
|
|
206
206
|
if new_incompatibility
|
207
|
-
add_incompatibility(
|
207
|
+
add_incompatibility(new_incompatibility)
|
208
208
|
end
|
209
209
|
|
210
210
|
return incompatibility
|
@@ -219,9 +219,14 @@ module Bundler::PubGrub
|
|
219
219
|
new_terms << difference.invert
|
220
220
|
end
|
221
221
|
|
222
|
-
|
222
|
+
new_incompatibility = Incompatibility.new(new_terms, cause: Incompatibility::ConflictCause.new(incompatibility, most_recent_satisfier.cause))
|
223
223
|
|
224
|
-
|
224
|
+
if incompatibility.to_s == new_incompatibility.to_s
|
225
|
+
logger.info { "!! failed to resolve conflicts, this shouldn't have happened" }
|
226
|
+
break
|
227
|
+
end
|
228
|
+
|
229
|
+
incompatibility = new_incompatibility
|
225
230
|
|
226
231
|
partially = difference ? " partially" : ""
|
227
232
|
logger.info { "! #{most_recent_term} is#{partially} satisfied by #{most_recent_satisfier.term}" }
|
data/bundler/lib/bundler.rb
CHANGED
@@ -210,9 +210,10 @@ module Bundler
|
|
210
210
|
end
|
211
211
|
|
212
212
|
def frozen_bundle?
|
213
|
-
frozen = settings[:
|
214
|
-
frozen
|
215
|
-
|
213
|
+
frozen = settings[:frozen]
|
214
|
+
return frozen unless frozen.nil?
|
215
|
+
|
216
|
+
settings[:deployment]
|
216
217
|
end
|
217
218
|
|
218
219
|
def locked_gems
|
data/lib/rubygems/installer.rb
CHANGED
@@ -342,6 +342,8 @@ class Gem::Installer
|
|
342
342
|
|
343
343
|
Gem::Specification.add_spec(spec)
|
344
344
|
|
345
|
+
load_plugin
|
346
|
+
|
345
347
|
run_post_install_hooks
|
346
348
|
|
347
349
|
spec
|
@@ -1002,4 +1004,17 @@ TEXT
|
|
1002
1004
|
""
|
1003
1005
|
end
|
1004
1006
|
end
|
1007
|
+
|
1008
|
+
def load_plugin
|
1009
|
+
specs = Gem::Specification.find_all_by_name(spec.name)
|
1010
|
+
# If old version already exists, this plugin isn't loaded
|
1011
|
+
# immediately. It's for avoiding a case that multiple versions
|
1012
|
+
# are loaded at the same time.
|
1013
|
+
return unless specs.size == 1
|
1014
|
+
|
1015
|
+
plugin_files = spec.plugins.map do |plugin|
|
1016
|
+
File.join(@plugins_dir, "#{spec.name}_plugin#{File.extname(plugin)}")
|
1017
|
+
end
|
1018
|
+
Gem.load_plugin_files(plugin_files)
|
1019
|
+
end
|
1005
1020
|
end
|
data/lib/rubygems.rb
CHANGED
data/rubygems-update.gemspec
CHANGED
@@ -2,18 +2,19 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "rubygems-update"
|
5
|
-
s.version = "3.4.
|
5
|
+
s.version = "3.4.14"
|
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
|
|
9
|
-
s.summary = "RubyGems is a package management framework for Ruby."
|
9
|
+
s.summary = "RubyGems is a package management framework for Ruby. This gem is downloaded and installed by `gem update --system`, so that the `gem` CLI can update itself."
|
10
10
|
s.description = "A package (also known as a library) contains a set of functionality
|
11
11
|
that can be invoked by a Ruby program, such as reading and parsing an XML file. We call
|
12
12
|
these packages 'gems' and RubyGems is a tool to install, create, manage and load these
|
13
13
|
packages in your Ruby environment. RubyGems is also a client for RubyGems.org, a public
|
14
14
|
repository of Gems that allows you to publish a Gem that can be shared and used by other
|
15
15
|
developers. See our guide on publishing a Gem at guides.rubygems.org"
|
16
|
-
s.homepage = "https://rubygems.org"
|
16
|
+
s.homepage = "https://guides.rubygems.org"
|
17
|
+
s.metadata = { "source_code_uri" => "https://github.com/rubygems/rubygems" }
|
17
18
|
s.licenses = ["Ruby", "MIT"]
|
18
19
|
|
19
20
|
s.files = File.read("Manifest.txt").split
|
data/test/rubygems/test_gem.rb
CHANGED
@@ -1435,6 +1435,8 @@ class TestGem < Gem::TestCase
|
|
1435
1435
|
def test_load_plugins
|
1436
1436
|
plugin_path = File.join "lib", "rubygems_plugin.rb"
|
1437
1437
|
|
1438
|
+
foo1_plugin_path = nil
|
1439
|
+
foo2_plugin_path = nil
|
1438
1440
|
Dir.chdir @tempdir do
|
1439
1441
|
FileUtils.mkdir_p "lib"
|
1440
1442
|
File.open plugin_path, "w" do |fp|
|
@@ -1444,17 +1446,22 @@ class TestGem < Gem::TestCase
|
|
1444
1446
|
foo1 = util_spec "foo", "1" do |s|
|
1445
1447
|
s.files << plugin_path
|
1446
1448
|
end
|
1449
|
+
foo1_plugin_path = File.join(foo1.gem_dir, plugin_path)
|
1447
1450
|
|
1448
1451
|
install_gem foo1
|
1449
1452
|
|
1450
1453
|
foo2 = util_spec "foo", "2" do |s|
|
1451
1454
|
s.files << plugin_path
|
1452
1455
|
end
|
1456
|
+
foo2_plugin_path = File.join(foo2.gem_dir, plugin_path)
|
1453
1457
|
|
1454
1458
|
install_gem foo2
|
1455
1459
|
end
|
1456
1460
|
|
1457
1461
|
Gem::Specification.reset
|
1462
|
+
PLUGINS_LOADED.clear
|
1463
|
+
$LOADED_FEATURES.delete(foo1_plugin_path)
|
1464
|
+
$LOADED_FEATURES.delete(foo2_plugin_path)
|
1458
1465
|
|
1459
1466
|
gem "foo"
|
1460
1467
|
|
@@ -545,7 +545,7 @@ class TestGemCommandsPristineCommand < Gem::TestCase
|
|
545
545
|
fp.puts "puts __FILE__"
|
546
546
|
end
|
547
547
|
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |fp|
|
548
|
-
fp.puts "
|
548
|
+
fp.puts "# do nothing"
|
549
549
|
end
|
550
550
|
write_file File.join(@tempdir, "bin", "foo") do |fp|
|
551
551
|
fp.puts "#!/usr/bin/ruby"
|
@@ -433,7 +433,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
433
433
|
s.files = %W[lib/rubygems_plugin.rb]
|
434
434
|
end
|
435
435
|
write_file File.join @tempdir, "lib", "rubygems_plugin.rb" do |f|
|
436
|
-
f.puts "
|
436
|
+
f.puts "# do nothing"
|
437
437
|
end
|
438
438
|
install_gem gem
|
439
439
|
|
@@ -3,9 +3,6 @@ require_relative "helper"
|
|
3
3
|
|
4
4
|
class TestGemGemRunner < Gem::TestCase
|
5
5
|
def setup
|
6
|
-
@orig_gem_home = ENV["GEM_HOME"]
|
7
|
-
ENV["GEM_HOME"] = @gemhome
|
8
|
-
|
9
6
|
require "rubygems/command"
|
10
7
|
@orig_args = Gem::Command.build_args
|
11
8
|
@orig_specific_extra_args = Gem::Command.specific_extra_args_hash.dup
|
@@ -13,18 +10,21 @@ class TestGemGemRunner < Gem::TestCase
|
|
13
10
|
|
14
11
|
super
|
15
12
|
|
13
|
+
@orig_gem_home = ENV["GEM_HOME"]
|
14
|
+
ENV["GEM_HOME"] = @gemhome
|
15
|
+
|
16
16
|
require "rubygems/gem_runner"
|
17
17
|
@runner = Gem::GemRunner.new
|
18
18
|
end
|
19
19
|
|
20
20
|
def teardown
|
21
|
+
ENV["GEM_HOME"] = @orig_gem_home
|
22
|
+
|
21
23
|
super
|
22
24
|
|
23
25
|
Gem::Command.build_args = @orig_args
|
24
26
|
Gem::Command.specific_extra_args_hash = @orig_specific_extra_args
|
25
27
|
Gem::Command.extra_args = @orig_extra_args
|
26
|
-
|
27
|
-
ENV["GEM_HOME"] = @orig_gem_home
|
28
28
|
end
|
29
29
|
|
30
30
|
def test_do_configuration
|
@@ -766,7 +766,7 @@ gem 'other', version
|
|
766
766
|
def test_generate_plugins
|
767
767
|
installer = util_setup_installer do |spec|
|
768
768
|
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
769
|
-
io.write "
|
769
|
+
io.write "# do nothing"
|
770
770
|
end
|
771
771
|
|
772
772
|
spec.files += %w[lib/rubygems_plugin.rb]
|
@@ -853,11 +853,59 @@ gem 'other', version
|
|
853
853
|
refute_includes File.read(build_root_path), build_root
|
854
854
|
end
|
855
855
|
|
856
|
+
class << self
|
857
|
+
attr_accessor :plugin_loaded
|
858
|
+
attr_accessor :post_install_is_called
|
859
|
+
end
|
860
|
+
|
861
|
+
def test_use_plugin_immediately
|
862
|
+
self.class.plugin_loaded = false
|
863
|
+
self.class.post_install_is_called = false
|
864
|
+
spec_version = nil
|
865
|
+
plugin_path = nil
|
866
|
+
installer = util_setup_installer do |spec|
|
867
|
+
spec_version = spec.version
|
868
|
+
plugin_path = File.join("lib", "rubygems_plugin.rb")
|
869
|
+
write_file File.join(@tempdir, plugin_path) do |io|
|
870
|
+
io.write <<-PLUGIN
|
871
|
+
#{self.class}.plugin_loaded = true
|
872
|
+
Gem.post_install do
|
873
|
+
#{self.class}.post_install_is_called = true
|
874
|
+
end
|
875
|
+
PLUGIN
|
876
|
+
end
|
877
|
+
spec.files += [plugin_path]
|
878
|
+
plugin_path = File.join(spec.gem_dir, plugin_path)
|
879
|
+
end
|
880
|
+
build_rake_in do
|
881
|
+
installer.install
|
882
|
+
end
|
883
|
+
assert self.class.plugin_loaded, "plugin is not loaded"
|
884
|
+
assert self.class.post_install_is_called,
|
885
|
+
"post install hook registered by plugin is not called"
|
886
|
+
|
887
|
+
self.class.plugin_loaded = false
|
888
|
+
$LOADED_FEATURES.delete(plugin_path)
|
889
|
+
installer_new = util_setup_installer do |spec_new|
|
890
|
+
spec_new.version = spec_version.version.succ
|
891
|
+
plugin_path = File.join("lib", "rubygems_plugin.rb")
|
892
|
+
write_file File.join(@tempdir, plugin_path) do |io|
|
893
|
+
io.write "#{self.class}.plugin_loaded = true"
|
894
|
+
end
|
895
|
+
spec_new.files += [plugin_path]
|
896
|
+
end
|
897
|
+
build_rake_in do
|
898
|
+
installer_new.install
|
899
|
+
end
|
900
|
+
assert !self.class.plugin_loaded,
|
901
|
+
"plugin is loaded even when old version is already loaded"
|
902
|
+
end
|
903
|
+
|
856
904
|
def test_keeps_plugins_up_to_date
|
857
905
|
# NOTE: version a-2 is already installed by setup hooks
|
858
906
|
|
859
907
|
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
860
|
-
io.write "
|
908
|
+
io.write "# do nothing"
|
861
909
|
end
|
862
910
|
|
863
911
|
build_rake_in do
|
@@ -172,7 +172,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
172
172
|
|
173
173
|
def test_remove_plugins
|
174
174
|
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
175
|
-
io.write "
|
175
|
+
io.write "# do nothing"
|
176
176
|
end
|
177
177
|
|
178
178
|
@spec.files += %w[lib/rubygems_plugin.rb]
|
@@ -189,7 +189,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
189
189
|
|
190
190
|
def test_remove_plugins_with_install_dir
|
191
191
|
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
192
|
-
io.write "
|
192
|
+
io.write "# do nothing"
|
193
193
|
end
|
194
194
|
|
195
195
|
@spec.files += %w[lib/rubygems_plugin.rb]
|
@@ -207,7 +207,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
207
207
|
|
208
208
|
def test_regenerate_plugins_for
|
209
209
|
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
210
|
-
io.write "
|
210
|
+
io.write "# do nothing"
|
211
211
|
end
|
212
212
|
|
213
213
|
@spec.files += %w[lib/rubygems_plugin.rb]
|
@@ -634,7 +634,7 @@ create_makefile '#{@spec.name}'
|
|
634
634
|
|
635
635
|
def test_uninstall_keeps_plugins_up_to_date
|
636
636
|
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
637
|
-
io.write "
|
637
|
+
io.write "# do nothing"
|
638
638
|
end
|
639
639
|
|
640
640
|
plugin_path = File.join Gem.plugindir, "a_plugin.rb"
|
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.
|
4
|
+
version: 3.4.14
|
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-
|
19
|
+
date: 2023-06-12 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
|
@@ -818,11 +818,12 @@ files:
|
|
818
818
|
- test/rubygems/wrong_key_cert.pem
|
819
819
|
- test/rubygems/wrong_key_cert_32.pem
|
820
820
|
- test/test_changelog_generator.rb
|
821
|
-
homepage: https://rubygems.org
|
821
|
+
homepage: https://guides.rubygems.org
|
822
822
|
licenses:
|
823
823
|
- Ruby
|
824
824
|
- MIT
|
825
|
-
metadata:
|
825
|
+
metadata:
|
826
|
+
source_code_uri: https://github.com/rubygems/rubygems
|
826
827
|
post_install_message:
|
827
828
|
rdoc_options:
|
828
829
|
- "--main"
|
@@ -841,8 +842,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
841
842
|
- !ruby/object:Gem::Version
|
842
843
|
version: '0'
|
843
844
|
requirements: []
|
844
|
-
rubygems_version: 3.4.
|
845
|
+
rubygems_version: 3.4.14
|
845
846
|
signing_key:
|
846
847
|
specification_version: 4
|
847
|
-
summary: RubyGems is a package management framework for Ruby.
|
848
|
+
summary: RubyGems is a package management framework for Ruby. This gem is downloaded
|
849
|
+
and installed by `gem update --system`, so that the `gem` CLI can update itself.
|
848
850
|
test_files: []
|