rubygems-update 3.0.4 → 3.0.5

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.
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