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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +53 -0
  3. data/Manifest.txt +3 -1
  4. data/Rakefile +7 -5
  5. data/bundler/lib/bundler/build_metadata.rb +1 -1
  6. data/lib/rubygems.rb +6 -12
  7. data/lib/rubygems/commands/environment_command.rb +0 -3
  8. data/lib/rubygems/commands/push_command.rb +2 -0
  9. data/lib/rubygems/commands/uninstall_command.rb +16 -6
  10. data/lib/rubygems/commands/which_command.rb +1 -3
  11. data/lib/rubygems/defaults.rb +1 -8
  12. data/lib/rubygems/dependency_installer.rb +1 -2
  13. data/lib/rubygems/exceptions.rb +0 -4
  14. data/lib/rubygems/gemcutter_utilities.rb +9 -5
  15. data/lib/rubygems/installer.rb +1 -1
  16. data/lib/rubygems/installer_test_case.rb +2 -2
  17. data/lib/rubygems/package/tar_header.rb +11 -2
  18. data/lib/rubygems/remote_fetcher.rb +15 -54
  19. data/lib/rubygems/request.rb +1 -1
  20. data/lib/rubygems/request_set/gem_dependency_api.rb +3 -5
  21. data/lib/rubygems/s3_uri_signer.rb +175 -0
  22. data/lib/rubygems/security_option.rb +0 -1
  23. data/lib/rubygems/specification.rb +0 -1
  24. data/lib/rubygems/stub_specification.rb +1 -2
  25. data/lib/rubygems/test_case.rb +8 -4
  26. data/lib/rubygems/util.rb +12 -0
  27. data/rubygems-update.gemspec +1 -1
  28. data/test/rubygems/test_gem.rb +6 -3
  29. data/test/rubygems/test_gem_commands_environment_command.rb +0 -11
  30. data/test/rubygems/test_gem_commands_push_command.rb +15 -0
  31. data/test/rubygems/test_gem_commands_uninstall_command.rb +80 -1
  32. data/test/rubygems/test_gem_indexer.rb +8 -8
  33. data/test/rubygems/test_gem_installer.rb +48 -17
  34. data/test/rubygems/test_gem_package_tar_header.rb +41 -0
  35. data/test/rubygems/test_gem_remote_fetcher.rb +133 -14
  36. data/test/rubygems/test_gem_request.rb +4 -4
  37. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +20 -30
  38. data/test/rubygems/test_gem_util.rb +8 -0
  39. data/util/cops/deprecations.rb +52 -0
  40. data/util/create_certs.sh +27 -0
  41. metadata +5 -3
  42. 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 = RUBY_ENGINE if Object.const_defined? :RUBY_ENGINE
24
- engine_version_const = "#{Gem.ruby_engine.upcase}_VERSION"
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 if engine
28
- Object.send :remove_const, engine_version_const if name == 'ruby' and
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
- new_engine_version_const = "#{name.upcase}_VERSION"
32
- Object.const_set :RUBY_ENGINE, name if name
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
- yield
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
- ensure
40
- Object.send :remove_const, :RUBY_ENGINE if name
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
- Gem.send :remove_instance_variable, :@ruby_version if
51
- Gem.instance_variables.include? :@ruby_version
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 = Gem.ruby_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', OTHER_VERSION
838
+ assert_equal '1.2.3', RUBY_ENGINE_VERSION
848
839
 
849
- assert_equal version, RUBY_VERSION if engine
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, Object.const_get(engine_version_const) if
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
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-06-14 00:00:00.000000000 Z
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