rubygems-update 3.0.4 → 3.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.txt +53 -0
- data/Manifest.txt +3 -1
- data/Rakefile +7 -5
- data/bundler/lib/bundler/build_metadata.rb +1 -1
- data/lib/rubygems.rb +6 -12
- data/lib/rubygems/commands/environment_command.rb +0 -3
- data/lib/rubygems/commands/push_command.rb +2 -0
- data/lib/rubygems/commands/uninstall_command.rb +16 -6
- data/lib/rubygems/commands/which_command.rb +1 -3
- data/lib/rubygems/defaults.rb +1 -8
- data/lib/rubygems/dependency_installer.rb +1 -2
- data/lib/rubygems/exceptions.rb +0 -4
- data/lib/rubygems/gemcutter_utilities.rb +9 -5
- data/lib/rubygems/installer.rb +1 -1
- data/lib/rubygems/installer_test_case.rb +2 -2
- data/lib/rubygems/package/tar_header.rb +11 -2
- data/lib/rubygems/remote_fetcher.rb +15 -54
- data/lib/rubygems/request.rb +1 -1
- data/lib/rubygems/request_set/gem_dependency_api.rb +3 -5
- data/lib/rubygems/s3_uri_signer.rb +175 -0
- data/lib/rubygems/security_option.rb +0 -1
- data/lib/rubygems/specification.rb +0 -1
- data/lib/rubygems/stub_specification.rb +1 -2
- data/lib/rubygems/test_case.rb +8 -4
- data/lib/rubygems/util.rb +12 -0
- data/rubygems-update.gemspec +1 -1
- data/test/rubygems/test_gem.rb +6 -3
- data/test/rubygems/test_gem_commands_environment_command.rb +0 -11
- data/test/rubygems/test_gem_commands_push_command.rb +15 -0
- data/test/rubygems/test_gem_commands_uninstall_command.rb +80 -1
- data/test/rubygems/test_gem_indexer.rb +8 -8
- data/test/rubygems/test_gem_installer.rb +48 -17
- data/test/rubygems/test_gem_package_tar_header.rb +41 -0
- data/test/rubygems/test_gem_remote_fetcher.rb +133 -14
- data/test/rubygems/test_gem_request.rb +4 -4
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +20 -30
- data/test/rubygems/test_gem_util.rb +8 -0
- data/util/cops/deprecations.rb +52 -0
- data/util/create_certs.sh +27 -0
- metadata +5 -3
- data/lib/rubygems/compatibility.rb +0 -40
@@ -20,35 +20,28 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def with_engine_version(name, version)
|
23
|
-
engine
|
24
|
-
|
25
|
-
engine_version = Object.const_get engine_version_const
|
23
|
+
engine = RUBY_ENGINE
|
24
|
+
engine_version = RUBY_ENGINE_VERSION
|
26
25
|
|
27
|
-
Object.send :remove_const, :RUBY_ENGINE
|
28
|
-
Object.send :remove_const,
|
29
|
-
Object.const_defined? engine_version_const
|
26
|
+
Object.send :remove_const, :RUBY_ENGINE
|
27
|
+
Object.send :remove_const, :RUBY_ENGINE_VERSION
|
30
28
|
|
31
|
-
|
32
|
-
Object.const_set :
|
33
|
-
Object.const_set new_engine_version_const, version if version
|
29
|
+
Object.const_set :RUBY_ENGINE, name if name
|
30
|
+
Object.const_set :RUBY_ENGINE_VERSION, version if version
|
34
31
|
|
35
32
|
Gem.instance_variable_set :@ruby_version, Gem::Version.new(version)
|
36
33
|
|
37
|
-
|
34
|
+
begin
|
35
|
+
yield
|
36
|
+
ensure
|
37
|
+
Object.send :remove_const, :RUBY_ENGINE if name
|
38
|
+
Object.send :remove_const, :RUBY_ENGINE_VERSION if version
|
38
39
|
|
39
|
-
|
40
|
-
|
41
|
-
Object.send :remove_const, new_engine_version_const if version
|
42
|
-
|
43
|
-
Object.send :remove_const, engine_version_const if name == 'ruby' and
|
44
|
-
Object.const_defined? engine_version_const
|
45
|
-
|
46
|
-
Object.const_set :RUBY_ENGINE, engine if engine
|
47
|
-
Object.const_set engine_version_const, engine_version unless
|
48
|
-
Object.const_defined? engine_version_const
|
40
|
+
Object.const_set :RUBY_ENGINE, engine
|
41
|
+
Object.const_set :RUBY_ENGINE_VERSION, engine_version
|
49
42
|
|
50
|
-
|
51
|
-
|
43
|
+
Gem.send :remove_instance_variable, :@ruby_version
|
44
|
+
end
|
52
45
|
end
|
53
46
|
|
54
47
|
def test_gempspec_with_multiple_runtime_deps
|
@@ -837,23 +830,20 @@ end
|
|
837
830
|
|
838
831
|
def test_with_engine_version
|
839
832
|
version = RUBY_VERSION
|
840
|
-
engine
|
841
|
-
|
842
|
-
engine_version_const = "#{Gem.ruby_engine.upcase}_VERSION"
|
843
|
-
engine_version = Object.const_get engine_version_const
|
833
|
+
engine = Gem.ruby_engine
|
834
|
+
engine_version = RUBY_ENGINE_VERSION
|
844
835
|
|
845
836
|
with_engine_version 'other', '1.2.3' do
|
846
837
|
assert_equal 'other', Gem.ruby_engine
|
847
|
-
assert_equal '1.2.3',
|
838
|
+
assert_equal '1.2.3', RUBY_ENGINE_VERSION
|
848
839
|
|
849
|
-
assert_equal version, RUBY_VERSION
|
840
|
+
assert_equal version, RUBY_VERSION
|
850
841
|
end
|
851
842
|
|
852
843
|
assert_equal version, RUBY_VERSION
|
853
844
|
assert_equal engine, Gem.ruby_engine
|
854
845
|
|
855
|
-
assert_equal engine_version,
|
856
|
-
engine
|
846
|
+
assert_equal engine_version, RUBY_ENGINE_VERSION if engine
|
857
847
|
end
|
858
848
|
|
859
849
|
end
|
@@ -75,4 +75,12 @@ class TestGemUtil < Gem::TestCase
|
|
75
75
|
assert_equal expected_paths.to_set, files_with_relative_base.to_set
|
76
76
|
end
|
77
77
|
|
78
|
+
def test_correct_for_windows_path
|
79
|
+
path = "/C:/WINDOWS/Temp/gems"
|
80
|
+
assert_equal "C:/WINDOWS/Temp/gems", Gem::Util.correct_for_windows_path(path)
|
81
|
+
|
82
|
+
path = "/home/skillet"
|
83
|
+
assert_equal "/home/skillet", Gem::Util.correct_for_windows_path(path)
|
84
|
+
end
|
85
|
+
|
78
86
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Rubygems
|
6
|
+
# This cop enforces that no outdated deprecations are present on RubyGems
|
7
|
+
# code base.
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
#
|
11
|
+
# As of March, 2019
|
12
|
+
#
|
13
|
+
# # bad
|
14
|
+
# deprecate :safdfa, nil, 2018, 12
|
15
|
+
# deprecate :safdfa, nil, 2019, 03
|
16
|
+
#
|
17
|
+
# # good
|
18
|
+
# deprecate :safdfa, nil, 2019, 04
|
19
|
+
#
|
20
|
+
class Deprecations < Cop
|
21
|
+
|
22
|
+
MSG = "Remove `deprecate` calls with dates in the past, along with " \
|
23
|
+
"the methods they deprecate, or expand the deprecation horizons to " \
|
24
|
+
"a future date"
|
25
|
+
|
26
|
+
def on_send(node)
|
27
|
+
_receiver, method_name, *args = *node
|
28
|
+
return unless method_name == :deprecate
|
29
|
+
|
30
|
+
scheduled_year = args[2].children.last
|
31
|
+
scheduled_month = args[3].children.last
|
32
|
+
|
33
|
+
current_time = Time.now
|
34
|
+
|
35
|
+
current_year = current_time.year
|
36
|
+
current_month = current_time.month
|
37
|
+
|
38
|
+
if current_year >= scheduled_year || (current_year == scheduled_year && current_month >= scheduled_month)
|
39
|
+
add_offense(node)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def message(node)
|
46
|
+
format(MSG, method: node.method_name)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
# cp /etc/ssl/openssl.cnf . # copied from OpenSSL 1.1.1b source
|
4
|
+
|
5
|
+
rm -rf demoCA/ server/ client/
|
6
|
+
|
7
|
+
mkdir demoCA demoCA/private demoCA/newcerts
|
8
|
+
touch demoCA/index.txt
|
9
|
+
echo 00 > demoCA/serial
|
10
|
+
openssl genrsa -out demoCA/private/cakey.pem 2048
|
11
|
+
openssl req -new -key demoCA/private/cakey.pem -out demoCA/careq.pem -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=CA"
|
12
|
+
openssl ca -batch -config openssl.cnf -extensions v3_ca -out demoCA/cacert.pem -startdate 090101000000Z -enddate 491231235959Z -batch -keyfile demoCA/private/cakey.pem -selfsign -infiles demoCA/careq.pem
|
13
|
+
|
14
|
+
mkdir server
|
15
|
+
openssl genrsa -out server/server.key 2048
|
16
|
+
openssl req -new -key server/server.key -out server/csr.pem -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=localhost"
|
17
|
+
openssl ca -batch -config openssl.cnf -startdate 090101000000Z -enddate 491231235959Z -in server/csr.pem -keyfile demoCA/private/cakey.pem -cert demoCA/cacert.pem -out server/cert.pem
|
18
|
+
|
19
|
+
mkdir client
|
20
|
+
openssl genrsa -out client/client.key 2048
|
21
|
+
openssl req -config openssl.cnf -new -key client/client.key -out client/csr.pem -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=client"
|
22
|
+
openssl ca -batch -config openssl.cnf -startdate 090101000000Z -enddate 491231235959Z -in client/csr.pem -keyfile demoCA/private/cakey.pem -cert demoCA/cacert.pem -out client/cert.pem
|
23
|
+
|
24
|
+
cp demoCA/cacert.pem $(git rev-parse --show-toplevel)/test/rubygems/ca_cert.pem
|
25
|
+
cp server/cert.pem $(git rev-parse --show-toplevel)/test/rubygems/ssl_cert.pem
|
26
|
+
cp server/server.key $(git rev-parse --show-toplevel)/test/rubygems/ssl_key.pem
|
27
|
+
cat client/cert.pem client/client.key > $(git rev-parse --show-toplevel)/test/rubygems/client.pem
|
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.0.
|
4
|
+
version: 3.0.5
|
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: 2019-
|
19
|
+
date: 2019-08-16 00:00:00.000000000 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: builder
|
@@ -449,7 +449,6 @@ files:
|
|
449
449
|
- lib/rubygems/commands/update_command.rb
|
450
450
|
- lib/rubygems/commands/which_command.rb
|
451
451
|
- lib/rubygems/commands/yank_command.rb
|
452
|
-
- lib/rubygems/compatibility.rb
|
453
452
|
- lib/rubygems/config_file.rb
|
454
453
|
- lib/rubygems/core_ext/kernel_gem.rb
|
455
454
|
- lib/rubygems/core_ext/kernel_require.rb
|
@@ -555,6 +554,7 @@ files:
|
|
555
554
|
- lib/rubygems/resolver/stats.rb
|
556
555
|
- lib/rubygems/resolver/vendor_set.rb
|
557
556
|
- lib/rubygems/resolver/vendor_specification.rb
|
557
|
+
- lib/rubygems/s3_uri_signer.rb
|
558
558
|
- lib/rubygems/safe_yaml.rb
|
559
559
|
- lib/rubygems/security.rb
|
560
560
|
- lib/rubygems/security/policies.rb
|
@@ -781,7 +781,9 @@ files:
|
|
781
781
|
- test/rubygems/wrong_key_cert_32.pem
|
782
782
|
- util/CL2notes
|
783
783
|
- util/ci
|
784
|
+
- util/cops/deprecations.rb
|
784
785
|
- util/create_certs.rb
|
786
|
+
- util/create_certs.sh
|
785
787
|
- util/create_encrypted_key.rb
|
786
788
|
- util/generate_spdx_license_list.rb
|
787
789
|
- util/patch_with_prs.rb
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
# :stopdoc:
|
3
|
-
|
4
|
-
#--
|
5
|
-
# This file contains all sorts of little compatibility hacks that we've
|
6
|
-
# had to introduce over the years. Quarantining them into one file helps
|
7
|
-
# us know when we can get rid of them.
|
8
|
-
#
|
9
|
-
# Ruby 1.9.x has introduced some things that are awkward, and we need to
|
10
|
-
# support them, so we define some constants to use later.
|
11
|
-
#++
|
12
|
-
|
13
|
-
module Gem
|
14
|
-
RubyGemsVersion = VERSION
|
15
|
-
|
16
|
-
# TODO remove at RubyGems 3
|
17
|
-
|
18
|
-
RbConfigPriorities = %w[
|
19
|
-
MAJOR
|
20
|
-
MINOR
|
21
|
-
TEENY
|
22
|
-
EXEEXT RUBY_SO_NAME arch bindir datadir libdir ruby_install_name
|
23
|
-
ruby_version rubylibprefix sitedir sitelibdir vendordir vendorlibdir
|
24
|
-
rubylibdir
|
25
|
-
].freeze
|
26
|
-
|
27
|
-
unless defined?(ConfigMap)
|
28
|
-
##
|
29
|
-
# Configuration settings from ::RbConfig
|
30
|
-
ConfigMap = Hash.new do |cm, key| # TODO remove at RubyGems 3
|
31
|
-
cm[key] = RbConfig::CONFIG[key.to_s]
|
32
|
-
end
|
33
|
-
else
|
34
|
-
RbConfigPriorities.each do |key|
|
35
|
-
ConfigMap[key.to_sym] = RbConfig::CONFIG[key]
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
RubyGemsPackageVersion = VERSION
|
40
|
-
end
|