rubygems-update 3.3.1 → 3.3.2
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 +12 -0
- data/Manifest.txt +1 -0
- data/bundler/CHANGELOG.md +6 -0
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/definition.rb +1 -4
- data/bundler/lib/bundler/version.rb +1 -1
- data/lib/rubygems/exceptions.rb +7 -3
- data/lib/rubygems/specification.rb +1 -1
- data/lib/rubygems/stub_specification.rb +1 -1
- data/lib/rubygems.rb +23 -31
- data/rubygems-update.gemspec +1 -1
- data/test/rubygems/test_gem_commands_install_command.rb +33 -0
- data/test/rubygems/test_gem_installer.rb +0 -27
- data/test/rubygems/test_gem_stream_ui.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 032d5c25431f07d56614be5feb4310775b0beca1cd1150d477655a46999c25e4
|
4
|
+
data.tar.gz: 1c45327dfd8164fbafc2407a6fe2ba21257a827d25a3040ccc803fd4d8ef2400
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5edd1acdf9e66fe8e5e3b263da1921c30a687b2a83defac7c74a39530e7c63dc6b4eaea4dfec3c0c162123cacbc0d1e20a39e53030566efb7ba56b464ced97cf
|
7
|
+
data.tar.gz: 0f3c91e64ca5e5c28e8ccd3baf74b44785b8d1c129b2d155b58b5dcef0f68dbb0be67a4ff2b00d2dbfb8dd066827960afde2c11da6a25c2b474e3a086b30bb21
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 3.3.2 / 2021-12-23
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
* Fix deprecations when activating DidYouMean for misspelled command
|
6
|
+
suggestions. Pull request #5211 by yuki24
|
7
|
+
* Installs bundler 2.3.2 as a default gem.
|
8
|
+
|
9
|
+
## Bug fixes:
|
10
|
+
|
11
|
+
* Fix gemspec truncation. Pull request #5208 by deivid-rodriguez
|
12
|
+
|
1
13
|
# 3.3.1 / 2021-12-22
|
2
14
|
|
3
15
|
## Enhancements:
|
data/Manifest.txt
CHANGED
data/bundler/CHANGELOG.md
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
# not in RDoc
|
@@ -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 = "2021-12-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2021-12-24".freeze
|
8
|
+
@git_commit_sha = "c3c71e7434".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
@@ -292,10 +292,7 @@ module Bundler
|
|
292
292
|
locked_major = @locked_bundler_version.segments.first
|
293
293
|
current_major = Gem::Version.create(Bundler::VERSION).segments.first
|
294
294
|
|
295
|
-
|
296
|
-
Bundler.ui.warn "Warning: the lockfile is being updated to Bundler #{current_major}, " \
|
297
|
-
"after which you will be unable to return to Bundler #{locked_major}."
|
298
|
-
end
|
295
|
+
updating_major = locked_major < current_major
|
299
296
|
end
|
300
297
|
|
301
298
|
preserve_unknown_sections ||= !updating_major && (Bundler.frozen_bundle? || !(unlocking? || @unlocking_bundler))
|
data/lib/rubygems/exceptions.rb
CHANGED
@@ -24,10 +24,14 @@ class Gem::UnknownCommandError < Gem::Exception
|
|
24
24
|
return if defined?(@attached)
|
25
25
|
|
26
26
|
if defined?(DidYouMean::SPELL_CHECKERS) && defined?(DidYouMean::Correctable)
|
27
|
-
DidYouMean
|
28
|
-
Gem::UnknownCommandSpellChecker
|
27
|
+
if DidYouMean.respond_to?(:correct_error)
|
28
|
+
DidYouMean.correct_error(Gem::UnknownCommandError, Gem::UnknownCommandSpellChecker)
|
29
|
+
else
|
30
|
+
DidYouMean::SPELL_CHECKERS['Gem::UnknownCommandError'] =
|
31
|
+
Gem::UnknownCommandSpellChecker
|
29
32
|
|
30
|
-
|
33
|
+
prepend DidYouMean::Correctable
|
34
|
+
end
|
31
35
|
end
|
32
36
|
|
33
37
|
@attached = true
|
@@ -1116,7 +1116,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1116
1116
|
file = file.dup.tap(&Gem::UNTAINT)
|
1117
1117
|
return unless File.file?(file)
|
1118
1118
|
|
1119
|
-
code =
|
1119
|
+
code = Gem.open_with_flock(file, 'r:UTF-8:-', &:read)
|
1120
1120
|
|
1121
1121
|
code.tap(&Gem::UNTAINT)
|
1122
1122
|
|
@@ -110,7 +110,7 @@ class Gem::StubSpecification < Gem::BasicSpecification
|
|
110
110
|
begin
|
111
111
|
saved_lineno = $.
|
112
112
|
|
113
|
-
|
113
|
+
Gem.open_with_flock loaded_from, OPEN_MODE do |file|
|
114
114
|
begin
|
115
115
|
file.readline # discard encoding line
|
116
116
|
stubline = file.readline.chomp
|
data/lib/rubygems.rb
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
require 'rbconfig'
|
9
9
|
|
10
10
|
module Gem
|
11
|
-
VERSION = "3.3.
|
11
|
+
VERSION = "3.3.2".freeze
|
12
12
|
end
|
13
13
|
|
14
14
|
# Must be first since it unloads the prelude from 1.9.2
|
@@ -163,16 +163,6 @@ module Gem
|
|
163
163
|
specifications/default
|
164
164
|
].freeze
|
165
165
|
|
166
|
-
##
|
167
|
-
# Exception classes used in a Gem.read_binary +rescue+ statement
|
168
|
-
|
169
|
-
READ_BINARY_ERRORS = [Errno::EACCES, Errno::EROFS, Errno::ENOSYS, Errno::ENOTSUP].freeze
|
170
|
-
|
171
|
-
##
|
172
|
-
# Exception classes used in Gem.write_binary +rescue+ statement
|
173
|
-
|
174
|
-
WRITE_BINARY_ERRORS = [Errno::ENOSYS, Errno::ENOTSUP].freeze
|
175
|
-
|
176
166
|
@@win_platform = nil
|
177
167
|
|
178
168
|
@configuration = nil
|
@@ -776,40 +766,42 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
776
766
|
# Safely read a file in binary mode on all platforms.
|
777
767
|
|
778
768
|
def self.read_binary(path)
|
779
|
-
|
780
|
-
|
781
|
-
f.read
|
782
|
-
end
|
783
|
-
rescue *READ_BINARY_ERRORS
|
784
|
-
File.open path, 'rb' do |f|
|
785
|
-
f.read
|
769
|
+
open_with_flock(path, 'rb+') do |io|
|
770
|
+
io.read
|
786
771
|
end
|
787
|
-
rescue Errno::
|
788
|
-
|
789
|
-
|
790
|
-
else
|
791
|
-
File.open path, 'rb' do |f|
|
792
|
-
f.read
|
793
|
-
end
|
772
|
+
rescue Errno::EACCES, Errno::EROFS
|
773
|
+
open_with_flock(path, 'rb') do |io|
|
774
|
+
io.read
|
794
775
|
end
|
795
776
|
end
|
796
777
|
|
797
778
|
##
|
798
779
|
# Safely write a file in binary mode on all platforms.
|
799
780
|
def self.write_binary(path, data)
|
800
|
-
|
781
|
+
open_with_flock(path, 'wb') do |io|
|
801
782
|
io.write data
|
802
783
|
end
|
803
|
-
|
804
|
-
|
805
|
-
|
784
|
+
end
|
785
|
+
|
786
|
+
##
|
787
|
+
# Open a file with given flags, and protect access with flock
|
788
|
+
|
789
|
+
def self.open_with_flock(path, flags, &block)
|
790
|
+
File.open(path, flags) do |io|
|
791
|
+
unless java_platform?
|
792
|
+
begin
|
793
|
+
io.flock(File::LOCK_EX)
|
794
|
+
rescue Errno::ENOSYS, Errno::ENOTSUP
|
795
|
+
end
|
796
|
+
end
|
797
|
+
yield io
|
806
798
|
end
|
807
799
|
rescue Errno::ENOLCK # NFS
|
808
800
|
if Thread.main != Thread.current
|
809
801
|
raise
|
810
802
|
else
|
811
|
-
File.open(path,
|
812
|
-
io
|
803
|
+
File.open(path, flags) do |io|
|
804
|
+
yield io
|
813
805
|
end
|
814
806
|
end
|
815
807
|
end
|
data/rubygems-update.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "rubygems-update"
|
5
|
-
s.version = "3.3.
|
5
|
+
s.version = "3.3.2"
|
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
|
|
@@ -782,6 +782,39 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
782
782
|
assert_match "1 gem installed", @ui.output
|
783
783
|
end
|
784
784
|
|
785
|
+
def test_execute_remote_truncates_existing_gemspecs
|
786
|
+
spec_fetcher do |fetcher|
|
787
|
+
fetcher.gem 'a', 1
|
788
|
+
end
|
789
|
+
|
790
|
+
@cmd.options[:domain] = :remote
|
791
|
+
|
792
|
+
@cmd.options[:args] = %w[a]
|
793
|
+
|
794
|
+
use_ui @ui do
|
795
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
796
|
+
@cmd.execute
|
797
|
+
end
|
798
|
+
end
|
799
|
+
|
800
|
+
assert_equal %w[a-1], @cmd.installed_specs.map {|spec| spec.full_name }
|
801
|
+
assert_match "1 gem installed", @ui.output
|
802
|
+
|
803
|
+
a1_gemspec = File.join(@gemhome, 'specifications', "a-1.gemspec")
|
804
|
+
|
805
|
+
initial_a1_gemspec_content = File.read(a1_gemspec)
|
806
|
+
modified_a1_gemspec_content = initial_a1_gemspec_content + "\n # AAAAAAA\n"
|
807
|
+
File.write(a1_gemspec, modified_a1_gemspec_content)
|
808
|
+
|
809
|
+
use_ui @ui do
|
810
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
811
|
+
@cmd.execute
|
812
|
+
end
|
813
|
+
end
|
814
|
+
|
815
|
+
assert_equal initial_a1_gemspec_content, File.read(a1_gemspec)
|
816
|
+
end
|
817
|
+
|
785
818
|
def test_execute_remote_ignores_files
|
786
819
|
specs = spec_fetcher do |fetcher|
|
787
820
|
fetcher.gem 'a', 1
|
@@ -288,33 +288,6 @@ gem 'other', version
|
|
288
288
|
"(SyntaxError)", e.message
|
289
289
|
end
|
290
290
|
|
291
|
-
def test_ensure_no_race_conditions_between_installing_and_loading_gemspecs
|
292
|
-
a, a_gem = util_gem 'a', 2
|
293
|
-
|
294
|
-
Gem::Installer.at(a_gem).install
|
295
|
-
|
296
|
-
t1 = Thread.new do
|
297
|
-
5.times do
|
298
|
-
Gem::Installer.at(a_gem).install
|
299
|
-
sleep 0.1
|
300
|
-
end
|
301
|
-
end
|
302
|
-
|
303
|
-
t2 = Thread.new do
|
304
|
-
_, err = capture_output do
|
305
|
-
20.times do
|
306
|
-
Gem::Specification.load(a.spec_file)
|
307
|
-
Gem::Specification.send(:clear_load_cache)
|
308
|
-
end
|
309
|
-
end
|
310
|
-
|
311
|
-
assert_empty err
|
312
|
-
end
|
313
|
-
|
314
|
-
t1.join
|
315
|
-
t2.join
|
316
|
-
end
|
317
|
-
|
318
291
|
def test_ensure_loadable_spec_security_policy
|
319
292
|
pend 'openssl is missing' unless Gem::HAVE_OPENSSL
|
320
293
|
|
@@ -5,7 +5,7 @@ require 'timeout'
|
|
5
5
|
|
6
6
|
class TestGemStreamUI < Gem::TestCase
|
7
7
|
# increase timeout with MJIT for --jit-wait testing
|
8
|
-
mjit_enabled = defined?(RubyVM::
|
8
|
+
mjit_enabled = defined?(RubyVM::MJIT) ? RubyVM::MJIT.enabled? : defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
|
9
9
|
SHORT_TIMEOUT = (RUBY_ENGINE == "ruby" && !mjit_enabled) ? 0.1 : 1.0
|
10
10
|
|
11
11
|
module IsTty
|
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.3.
|
4
|
+
version: 3.3.2
|
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: 2021-12-
|
19
|
+
date: 2021-12-24 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
|
@@ -74,6 +74,7 @@ files:
|
|
74
74
|
- bundler/exe/bundle
|
75
75
|
- bundler/exe/bundler
|
76
76
|
- bundler/lib/bundler.rb
|
77
|
+
- bundler/lib/bundler/.document
|
77
78
|
- bundler/lib/bundler/build_metadata.rb
|
78
79
|
- bundler/lib/bundler/capistrano.rb
|
79
80
|
- bundler/lib/bundler/cli.rb
|
@@ -803,7 +804,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
803
804
|
- !ruby/object:Gem::Version
|
804
805
|
version: '0'
|
805
806
|
requirements: []
|
806
|
-
rubygems_version: 3.3.
|
807
|
+
rubygems_version: 3.3.2
|
807
808
|
signing_key:
|
808
809
|
specification_version: 4
|
809
810
|
summary: RubyGems is a package management framework for Ruby.
|