rubygems-update 3.2.0.rc.2 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.txt +54 -51
- data/Manifest.txt +32 -29
- data/Rakefile +3 -1
- data/bundler/CHANGELOG.md +35 -1
- data/bundler/UPGRADING.md +1 -1
- data/bundler/lib/bundler.rb +4 -0
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli.rb +5 -2
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/exec.rb +3 -3
- data/bundler/lib/bundler/cli/outdated.rb +2 -4
- data/bundler/lib/bundler/compact_index_client/updater.rb +5 -5
- data/bundler/lib/bundler/definition.rb +4 -9
- data/bundler/lib/bundler/env.rb +1 -1
- data/bundler/lib/bundler/feature_flag.rb +0 -1
- data/bundler/lib/bundler/fetcher/index.rb +2 -3
- data/bundler/lib/bundler/friendly_errors.rb +15 -0
- data/bundler/lib/bundler/index.rb +5 -1
- data/bundler/lib/bundler/injector.rb +9 -2
- data/bundler/lib/bundler/installer.rb +7 -5
- data/bundler/lib/bundler/lazy_specification.rb +5 -7
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man → lib/bundler/man}/bundle-add.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-binstubs.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-cache.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-check.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-clean.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-config.1.ronn +1 -9
- data/bundler/{man → lib/bundler/man}/bundle-doctor.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-exec.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-gem.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-info.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-init.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-inject.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-install.1.ronn +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-list.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-lock.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-open.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-outdated.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-platform.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-pristine.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-remove.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-show.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-update.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-viz.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/bundle.1.ronn +0 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +0 -0
- data/bundler/lib/bundler/plugin/api/source.rb +1 -1
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/resolver.rb +2 -3
- data/bundler/lib/bundler/rubygems_integration.rb +4 -0
- data/bundler/lib/bundler/settings.rb +0 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +1 -1
- data/bundler/lib/bundler/spec_set.rb +1 -0
- data/bundler/lib/bundler/templates/newgem/README.md.tt +0 -1
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +2 -2
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +6 -0
- data/bundler/lib/bundler/uri_credentials_filter.rb +2 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +38 -40
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +4 -7
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/man/bundle-add.1 +1 -1
- data/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/man/bundle-cache.1 +1 -1
- data/bundler/man/bundle-check.1 +1 -1
- data/bundler/man/bundle-clean.1 +1 -1
- data/bundler/man/bundle-config.1 +2 -5
- data/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/man/bundle-exec.1 +1 -1
- data/bundler/man/bundle-gem.1 +1 -1
- data/bundler/man/bundle-info.1 +1 -1
- data/bundler/man/bundle-init.1 +1 -1
- data/bundler/man/bundle-inject.1 +1 -1
- data/bundler/man/bundle-install.1 +2 -2
- data/bundler/man/bundle-list.1 +1 -1
- data/bundler/man/bundle-lock.1 +1 -1
- data/bundler/man/bundle-open.1 +1 -1
- data/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/man/bundle-platform.1 +1 -1
- data/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/man/bundle-remove.1 +1 -1
- data/bundler/man/bundle-show.1 +1 -1
- data/bundler/man/bundle-update.1 +1 -1
- data/bundler/man/bundle-viz.1 +1 -1
- data/bundler/man/bundle.1 +1 -1
- data/bundler/man/gemfile.5 +1 -1
- data/bundler/man/index.txt +25 -0
- data/lib/rubygems.rb +6 -2
- data/lib/rubygems/available_set.rb +1 -1
- data/lib/rubygems/command_manager.rb +2 -2
- data/lib/rubygems/commands/build_command.rb +37 -20
- data/lib/rubygems/commands/cert_command.rb +1 -1
- data/lib/rubygems/commands/help_command.rb +2 -0
- data/lib/rubygems/commands/owner_command.rb +10 -2
- data/lib/rubygems/commands/pristine_command.rb +1 -1
- data/lib/rubygems/commands/push_command.rb +7 -3
- data/lib/rubygems/commands/query_command.rb +17 -0
- data/lib/rubygems/commands/server_command.rb +4 -0
- data/lib/rubygems/commands/setup_command.rb +25 -45
- data/lib/rubygems/commands/sources_command.rb +6 -2
- data/lib/rubygems/commands/specification_command.rb +6 -0
- data/lib/rubygems/commands/yank_command.rb +4 -4
- data/lib/rubygems/core_ext/kernel_require.rb +3 -0
- data/lib/rubygems/core_ext/kernel_warn.rb +6 -7
- data/lib/rubygems/defaults.rb +2 -2
- data/lib/rubygems/dependency.rb +1 -1
- data/lib/rubygems/dependency_installer.rb +4 -3
- data/lib/rubygems/ext/builder.rb +13 -32
- data/lib/rubygems/ext/cmake_builder.rb +4 -4
- data/lib/rubygems/ext/configure_builder.rb +4 -4
- data/lib/rubygems/ext/ext_conf_builder.rb +19 -14
- data/lib/rubygems/ext/rake_builder.rb +3 -3
- data/lib/rubygems/gemcutter_utilities.rb +90 -14
- data/lib/rubygems/indexer.rb +0 -1
- data/lib/rubygems/install_update_options.rb +2 -2
- data/lib/rubygems/installer.rb +12 -9
- data/lib/rubygems/installer_test_case.rb +7 -6
- data/lib/rubygems/name_tuple.rb +1 -1
- data/lib/rubygems/openssl.rb +4 -4
- data/lib/rubygems/package.rb +3 -2
- data/lib/rubygems/package/tar_header.rb +1 -1
- data/lib/rubygems/package/tar_test_case.rb +1 -1
- data/lib/rubygems/platform.rb +18 -7
- data/lib/rubygems/query_utils.rb +0 -9
- data/lib/rubygems/remote_fetcher.rb +1 -2
- data/lib/rubygems/request.rb +4 -3
- data/lib/rubygems/request_set/gem_dependency_api.rb +4 -4
- data/lib/rubygems/requirement.rb +1 -1
- data/lib/rubygems/resolver.rb +1 -1
- data/lib/rubygems/resolver/activation_request.rb +9 -1
- data/lib/rubygems/resolver/api_specification.rb +5 -1
- data/lib/rubygems/resolver/conflict.rb +1 -1
- data/lib/rubygems/resolver/dependency_request.rb +1 -1
- data/lib/rubygems/resolver/index_specification.rb +11 -0
- data/lib/rubygems/resolver/installer_set.rb +1 -2
- data/lib/rubygems/resolver/lock_set.rb +1 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +43 -10
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -165
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
- data/lib/rubygems/resolver/specification.rb +1 -1
- data/lib/rubygems/s3_uri_signer.rb +1 -1
- data/lib/rubygems/security.rb +1 -2
- data/lib/rubygems/security/policy.rb +1 -1
- data/lib/rubygems/security/signer.rb +1 -1
- data/lib/rubygems/server.rb +1 -1
- data/lib/rubygems/source.rb +10 -4
- data/lib/rubygems/spec_fetcher.rb +1 -1
- data/lib/rubygems/specification.rb +8 -8
- data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/stub_specification.rb +1 -1
- data/lib/rubygems/test_case.rb +13 -26
- data/lib/rubygems/uri_formatter.rb +2 -1
- data/lib/rubygems/version_option.rb +6 -0
- data/rubygems-update.gemspec +1 -1
- data/test/rubygems/test_bundled_ca.rb +9 -5
- data/test/rubygems/test_gem.rb +3 -3
- data/test/rubygems/test_gem_commands_build_command.rb +197 -5
- data/test/rubygems/test_gem_commands_cert_command.rb +2 -2
- data/test/rubygems/test_gem_commands_cleanup_command.rb +1 -1
- data/test/rubygems/test_gem_commands_contents_command.rb +2 -2
- data/test/rubygems/test_gem_commands_help_command.rb +15 -2
- data/test/rubygems/test_gem_commands_install_command.rb +1 -1
- data/test/rubygems/test_gem_commands_owner_command.rb +49 -1
- data/test/rubygems/test_gem_commands_pristine_command.rb +2 -2
- data/test/rubygems/test_gem_commands_push_command.rb +31 -5
- data/test/rubygems/test_gem_commands_query_command.rb +3 -3
- data/test/rubygems/test_gem_commands_setup_command.rb +13 -18
- data/test/rubygems/test_gem_commands_signin_command.rb +27 -3
- data/test/rubygems/test_gem_commands_sources_command.rb +60 -0
- data/test/rubygems/test_gem_commands_specification_command.rb +28 -0
- data/test/rubygems/test_gem_commands_update_command.rb +2 -2
- data/test/rubygems/test_gem_commands_yank_command.rb +31 -1
- data/test/rubygems/test_gem_dependency_installer.rb +36 -2
- data/test/rubygems/test_gem_dependency_list.rb +2 -2
- data/test/rubygems/test_gem_ext_builder.rb +10 -14
- data/test/rubygems/test_gem_ext_cmake_builder.rb +3 -9
- data/test/rubygems/test_gem_ext_configure_builder.rb +3 -9
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -26
- data/test/rubygems/test_gem_ext_rake_builder.rb +5 -13
- data/test/rubygems/test_gem_gem_runner.rb +5 -4
- data/test/rubygems/test_gem_gemcutter_utilities.rb +3 -3
- data/test/rubygems/test_gem_install_update_options.rb +15 -3
- data/test/rubygems/test_gem_installer.rb +74 -11
- data/test/rubygems/test_gem_package.rb +8 -8
- data/test/rubygems/test_gem_package_old.rb +4 -4
- data/test/rubygems/test_gem_package_tar_writer.rb +1 -1
- data/test/rubygems/test_gem_platform.rb +63 -4
- data/test/rubygems/test_gem_remote_fetcher.rb +14 -18
- data/test/rubygems/test_gem_request.rb +2 -2
- data/test/rubygems/test_gem_request_set_lockfile.rb +4 -4
- data/test/rubygems/test_gem_resolver_api_set.rb +8 -8
- data/test/rubygems/test_gem_resolver_conflict.rb +1 -1
- data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -1
- data/test/rubygems/test_gem_security.rb +2 -2
- data/test/rubygems/test_gem_security_policy.rb +2 -2
- data/test/rubygems/test_gem_security_signer.rb +2 -2
- data/test/rubygems/test_gem_security_trust_dir.rb +2 -2
- data/test/rubygems/test_gem_source.rb +5 -0
- data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
- data/test/rubygems/test_gem_specification.rb +5 -4
- data/test/rubygems/test_gem_uninstaller.rb +7 -7
- data/test/rubygems/test_gem_validator.rb +1 -1
- data/test/rubygems/test_gem_version_option.rb +1 -1
- data/test/rubygems/test_require.rb +50 -9
- metadata +35 -32
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
@@ -36,9 +36,7 @@ install (FILES test.txt DESTINATION bin)
|
|
36
36
|
|
37
37
|
output = []
|
38
38
|
|
39
|
-
|
40
|
-
Gem::Ext::CmakeBuilder.build nil, @dest_path, output
|
41
|
-
end
|
39
|
+
Gem::Ext::CmakeBuilder.build nil, @dest_path, output, [], nil, @ext
|
42
40
|
|
43
41
|
output = output.join "\n"
|
44
42
|
|
@@ -54,9 +52,7 @@ install (FILES test.txt DESTINATION bin)
|
|
54
52
|
output = []
|
55
53
|
|
56
54
|
error = assert_raises Gem::InstallError do
|
57
|
-
|
58
|
-
Gem::Ext::CmakeBuilder.build nil, @dest_path, output
|
59
|
-
end
|
55
|
+
Gem::Ext::CmakeBuilder.build nil, @dest_path, output, [], nil, @ext
|
60
56
|
end
|
61
57
|
|
62
58
|
output = output.join "\n"
|
@@ -77,9 +73,7 @@ install (FILES test.txt DESTINATION bin)
|
|
77
73
|
|
78
74
|
output = []
|
79
75
|
|
80
|
-
|
81
|
-
Gem::Ext::CmakeBuilder.build nil, @dest_path, output
|
82
|
-
end
|
76
|
+
Gem::Ext::CmakeBuilder.build nil, @dest_path, output, [], nil, @ext
|
83
77
|
|
84
78
|
output = output.join "\n"
|
85
79
|
|
@@ -25,9 +25,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
25
25
|
|
26
26
|
output = []
|
27
27
|
|
28
|
-
|
29
|
-
Gem::Ext::ConfigureBuilder.build nil, @dest_path, output
|
30
|
-
end
|
28
|
+
Gem::Ext::ConfigureBuilder.build nil, @dest_path, output, [], nil, @ext
|
31
29
|
|
32
30
|
assert_match(/^current directory:/, output.shift)
|
33
31
|
assert_equal "sh ./configure --prefix=#{@dest_path}", output.shift
|
@@ -48,9 +46,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
48
46
|
output = []
|
49
47
|
|
50
48
|
error = assert_raises Gem::InstallError do
|
51
|
-
|
52
|
-
Gem::Ext::ConfigureBuilder.build nil, @dest_path, output
|
53
|
-
end
|
49
|
+
Gem::Ext::ConfigureBuilder.build nil, @dest_path, output, [], nil, @ext
|
54
50
|
end
|
55
51
|
|
56
52
|
shell_error_msg = %r{(\./configure: .*)|((?:[Cc]an't|cannot) open '?\./configure'?(?:: No such file or directory)?)}
|
@@ -74,9 +70,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
74
70
|
end
|
75
71
|
|
76
72
|
output = []
|
77
|
-
|
78
|
-
Gem::Ext::ConfigureBuilder.build nil, @dest_path, output
|
79
|
-
end
|
73
|
+
Gem::Ext::ConfigureBuilder.build nil, @dest_path, output, [], nil, @ext
|
80
74
|
|
81
75
|
assert_contains_make_command 'clean', output[1]
|
82
76
|
assert_contains_make_command '', output[4]
|
@@ -29,12 +29,9 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
29
29
|
|
30
30
|
output = []
|
31
31
|
|
32
|
-
|
33
|
-
result =
|
34
|
-
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output
|
32
|
+
result = Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext
|
35
33
|
|
36
|
-
|
37
|
-
end
|
34
|
+
assert_same result, output
|
38
35
|
|
39
36
|
assert_match(/^current directory:/, output[0])
|
40
37
|
assert_match(/^#{Gem.ruby}.* extconf.rb/, output[1])
|
@@ -59,9 +56,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
59
56
|
|
60
57
|
output = []
|
61
58
|
|
62
|
-
|
63
|
-
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output
|
64
|
-
end
|
59
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext
|
65
60
|
|
66
61
|
assert_equal "creating Makefile\n", output[2]
|
67
62
|
assert_contains_make_command 'clean', output[4]
|
@@ -86,9 +81,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
86
81
|
output = []
|
87
82
|
|
88
83
|
assert_raises Gem::InstallError do
|
89
|
-
|
90
|
-
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output
|
91
|
-
end
|
84
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext
|
92
85
|
end
|
93
86
|
|
94
87
|
assert_equal "creating Makefile\n", output[2]
|
@@ -112,9 +105,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
112
105
|
output = []
|
113
106
|
|
114
107
|
error = assert_raises Gem::InstallError do
|
115
|
-
|
116
|
-
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output
|
117
|
-
end
|
108
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext
|
118
109
|
end
|
119
110
|
|
120
111
|
assert_equal 'extconf failed, exit code 1', error.message
|
@@ -139,9 +130,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
139
130
|
|
140
131
|
output = []
|
141
132
|
|
142
|
-
|
143
|
-
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output
|
144
|
-
end
|
133
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext
|
145
134
|
|
146
135
|
refute_includes(output, "To see why this extension failed to compile, please check the mkmf.log which can be found here:\n")
|
147
136
|
|
@@ -181,9 +170,7 @@ end
|
|
181
170
|
|
182
171
|
output = []
|
183
172
|
|
184
|
-
|
185
|
-
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output
|
186
|
-
end
|
173
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext
|
187
174
|
|
188
175
|
assert_contains_make_command 'clean', output[4]
|
189
176
|
assert_contains_make_command '', output[7]
|
@@ -207,9 +194,7 @@ end
|
|
207
194
|
makefile.puts "install:"
|
208
195
|
end
|
209
196
|
|
210
|
-
|
211
|
-
Gem::Ext::ExtConfBuilder.make @ext, output
|
212
|
-
end
|
197
|
+
Gem::Ext::ExtConfBuilder.make @ext, output, @ext
|
213
198
|
|
214
199
|
assert_contains_make_command 'clean', output[1]
|
215
200
|
assert_contains_make_command '', output[4]
|
@@ -218,9 +203,7 @@ end
|
|
218
203
|
|
219
204
|
def test_class_make_no_Makefile
|
220
205
|
error = assert_raises Gem::InstallError do
|
221
|
-
|
222
|
-
Gem::Ext::ExtConfBuilder.make @ext, ['output']
|
223
|
-
end
|
206
|
+
Gem::Ext::ExtConfBuilder.make @ext, ['output'], @ext
|
224
207
|
end
|
225
208
|
|
226
209
|
assert_equal 'Makefile not found', error.message
|
@@ -18,9 +18,7 @@ class TestGemExtRakeBuilder < Gem::TestCase
|
|
18
18
|
output = []
|
19
19
|
|
20
20
|
build_rake_in do |rake|
|
21
|
-
|
22
|
-
Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', @dest_path, output
|
23
|
-
end
|
21
|
+
Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', @dest_path, output, [], nil, @ext
|
24
22
|
|
25
23
|
output = output.join "\n"
|
26
24
|
|
@@ -38,10 +36,8 @@ class TestGemExtRakeBuilder < Gem::TestCase
|
|
38
36
|
output = []
|
39
37
|
|
40
38
|
build_rake_in do |rake|
|
41
|
-
|
42
|
-
|
43
|
-
Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', @dest_path, output, non_empty_args_list
|
44
|
-
end
|
39
|
+
non_empty_args_list = ['']
|
40
|
+
Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', @dest_path, output, non_empty_args_list, nil, @ext
|
45
41
|
|
46
42
|
output = output.join "\n"
|
47
43
|
|
@@ -55,9 +51,7 @@ class TestGemExtRakeBuilder < Gem::TestCase
|
|
55
51
|
output = []
|
56
52
|
|
57
53
|
build_rake_in do |rake|
|
58
|
-
|
59
|
-
Gem::Ext::RakeBuilder.build "ext/Rakefile", @dest_path, output, ["test1", "test2"]
|
60
|
-
end
|
54
|
+
Gem::Ext::RakeBuilder.build "ext/Rakefile", @dest_path, output, ["test1", "test2"], nil, @ext
|
61
55
|
|
62
56
|
output = output.join "\n"
|
63
57
|
|
@@ -72,9 +66,7 @@ class TestGemExtRakeBuilder < Gem::TestCase
|
|
72
66
|
|
73
67
|
build_rake_in(false) do |rake|
|
74
68
|
error = assert_raises Gem::InstallError do
|
75
|
-
|
76
|
-
Gem::Ext::RakeBuilder.build "mkrf_conf.rb", @dest_path, output
|
77
|
-
end
|
69
|
+
Gem::Ext::RakeBuilder.build "mkrf_conf.rb", @dest_path, output, [], nil, @ext
|
78
70
|
end
|
79
71
|
|
80
72
|
assert_match %r{^rake failed}, error.message
|
@@ -74,17 +74,18 @@ class TestGemGemRunner < Gem::TestCase
|
|
74
74
|
args = %w[query]
|
75
75
|
|
76
76
|
use_ui @ui do
|
77
|
-
|
77
|
+
@runner.run(args)
|
78
78
|
end
|
79
79
|
|
80
80
|
assert_match(/WARNING: query command is deprecated. It will be removed in Rubygems [0-9]+/, @ui.error)
|
81
|
+
assert_match(/WARNING: It is recommended that you use `gem search` or `gem list` instead/, @ui.error)
|
81
82
|
end
|
82
83
|
|
83
84
|
def test_info_succeeds
|
84
85
|
args = %w[info]
|
85
86
|
|
86
87
|
use_ui @ui do
|
87
|
-
|
88
|
+
@runner.run(args)
|
88
89
|
end
|
89
90
|
|
90
91
|
assert_empty @ui.error
|
@@ -94,7 +95,7 @@ class TestGemGemRunner < Gem::TestCase
|
|
94
95
|
args = %w[list]
|
95
96
|
|
96
97
|
use_ui @ui do
|
97
|
-
|
98
|
+
@runner.run(args)
|
98
99
|
end
|
99
100
|
|
100
101
|
assert_empty @ui.error
|
@@ -104,7 +105,7 @@ class TestGemGemRunner < Gem::TestCase
|
|
104
105
|
args = %w[search]
|
105
106
|
|
106
107
|
use_ui @ui do
|
107
|
-
|
108
|
+
@runner.run(args)
|
108
109
|
end
|
109
110
|
|
110
111
|
assert_empty @ui.error
|
@@ -32,7 +32,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|
32
32
|
def test_alternate_key_alternate_host
|
33
33
|
keys = {
|
34
34
|
:rubygems_api_key => 'KEY',
|
35
|
-
"http://rubygems.engineyard.com" => "EYKEY"
|
35
|
+
"http://rubygems.engineyard.com" => "EYKEY",
|
36
36
|
}
|
37
37
|
|
38
38
|
FileUtils.mkdir_p File.dirname Gem.configuration.credentials_path
|
@@ -202,7 +202,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|
202
202
|
|
203
203
|
assert_match 'You have enabled multi-factor authentication. Please enter OTP code.', @sign_in_ui.output
|
204
204
|
assert_match 'Code: ', @sign_in_ui.output
|
205
|
-
assert_match 'Signed in
|
205
|
+
assert_match 'Signed in with API key:', @sign_in_ui.output
|
206
206
|
assert_equal '111111', @fetcher.last_request['OTP']
|
207
207
|
end
|
208
208
|
|
@@ -233,7 +233,7 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|
233
233
|
@fetcher.data["#{host}/api/v1/api_key"] = response
|
234
234
|
Gem::RemoteFetcher.fetcher = @fetcher
|
235
235
|
|
236
|
-
@sign_in_ui = Gem::MockGemUi.new("#{email}\n#{password}\n" + extra_input)
|
236
|
+
@sign_in_ui = Gem::MockGemUi.new("#{email}\n#{password}\n\n\n\n\n\n\n\n\n" + extra_input)
|
237
237
|
|
238
238
|
use_ui @sign_in_ui do
|
239
239
|
if args.length > 0
|
@@ -30,7 +30,7 @@ class TestGemInstallUpdateOptions < Gem::InstallerTestCase
|
|
30
30
|
|
31
31
|
args.concat %w[--vendor] unless Gem.java_platform?
|
32
32
|
|
33
|
-
args.concat %w[-P HighSecurity] if
|
33
|
+
args.concat %w[-P HighSecurity] if Gem::HAVE_OPENSSL
|
34
34
|
|
35
35
|
assert @cmd.handles?(args)
|
36
36
|
end
|
@@ -92,7 +92,7 @@ class TestGemInstallUpdateOptions < Gem::InstallerTestCase
|
|
92
92
|
end
|
93
93
|
|
94
94
|
def test_security_policy
|
95
|
-
skip 'openssl is missing' unless
|
95
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
96
96
|
|
97
97
|
@cmd.handle_options %w[-P HighSecurity]
|
98
98
|
|
@@ -100,7 +100,7 @@ class TestGemInstallUpdateOptions < Gem::InstallerTestCase
|
|
100
100
|
end
|
101
101
|
|
102
102
|
def test_security_policy_unknown
|
103
|
-
skip 'openssl is missing' unless
|
103
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
104
104
|
|
105
105
|
@cmd.add_install_update_options
|
106
106
|
|
@@ -192,4 +192,16 @@ class TestGemInstallUpdateOptions < Gem::InstallerTestCase
|
|
192
192
|
|
193
193
|
assert_equal true, @cmd.options[:post_install_message]
|
194
194
|
end
|
195
|
+
|
196
|
+
def test_minimal_deps_no
|
197
|
+
@cmd.handle_options %w[--no-minimal-deps]
|
198
|
+
|
199
|
+
assert_equal false, @cmd.options[:minimal_deps]
|
200
|
+
end
|
201
|
+
|
202
|
+
def test_minimal_deps
|
203
|
+
@cmd.handle_options %w[--minimal-deps]
|
204
|
+
|
205
|
+
assert_equal true, @cmd.options[:minimal_deps]
|
206
|
+
end
|
195
207
|
end
|
@@ -83,7 +83,7 @@ end
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def test_check_executable_overwrite_default_bin_dir
|
86
|
-
installer = setup_base_installer
|
86
|
+
installer = setup_base_installer(false)
|
87
87
|
|
88
88
|
bindir(Gem.bindir) do
|
89
89
|
util_conflict_executable false
|
@@ -143,7 +143,7 @@ gem 'other', version
|
|
143
143
|
end
|
144
144
|
|
145
145
|
def test_check_executable_overwrite_other_gem
|
146
|
-
installer = setup_base_installer
|
146
|
+
installer = setup_base_installer(false)
|
147
147
|
|
148
148
|
util_conflict_executable true
|
149
149
|
|
@@ -287,7 +287,7 @@ gem 'other', version
|
|
287
287
|
end
|
288
288
|
|
289
289
|
def test_ensure_loadable_spec_security_policy
|
290
|
-
skip 'openssl is missing' unless
|
290
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
291
291
|
|
292
292
|
_, a_gem = util_gem 'a', 2 do |s|
|
293
293
|
s.add_dependency 'garbage ~> 5'
|
@@ -345,7 +345,7 @@ gem 'other', version
|
|
345
345
|
|
346
346
|
options = {
|
347
347
|
:bin_dir => bin_dir,
|
348
|
-
:install_dir => "/non/existent"
|
348
|
+
:install_dir => "/non/existent",
|
349
349
|
}
|
350
350
|
|
351
351
|
inst = Gem::Installer.at '', options
|
@@ -794,10 +794,35 @@ gem 'other', version
|
|
794
794
|
|
795
795
|
assert_equal spec, installer.install
|
796
796
|
|
797
|
-
assert !File.exist?(system_path), 'plugin
|
797
|
+
assert !File.exist?(system_path), 'plugin incorrectly written to system plugins_dir'
|
798
798
|
assert File.exist?(user_path), 'plugin not written to user plugins_dir'
|
799
799
|
end
|
800
800
|
|
801
|
+
def test_generate_plugins_with_build_root
|
802
|
+
spec = quick_gem 'a' do |s|
|
803
|
+
write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
|
804
|
+
io.write "puts __FILE__"
|
805
|
+
end
|
806
|
+
|
807
|
+
s.files += %w[lib/rubygems_plugin.rb]
|
808
|
+
end
|
809
|
+
|
810
|
+
util_build_gem spec
|
811
|
+
|
812
|
+
File.chmod(0555, Gem.plugindir)
|
813
|
+
system_path = File.join(Gem.plugindir, 'a_plugin.rb')
|
814
|
+
|
815
|
+
build_root = File.join(@tempdir, 'build_root')
|
816
|
+
build_root_path = File.join(build_root, Gem.plugindir.gsub(/^[a-zA-Z]:/, ''), 'a_plugin.rb')
|
817
|
+
|
818
|
+
installer = Gem::Installer.at spec.cache_file, :build_root => build_root
|
819
|
+
|
820
|
+
assert_equal spec, installer.install
|
821
|
+
|
822
|
+
assert !File.exist?(system_path), 'plugin written incorrect written to system plugins_dir'
|
823
|
+
assert File.exist?(build_root_path), 'plugin not written to build_root'
|
824
|
+
end
|
825
|
+
|
801
826
|
def test_keeps_plugins_up_to_date
|
802
827
|
# NOTE: version a-2 is already installed by setup hooks
|
803
828
|
|
@@ -1134,7 +1159,7 @@ gem 'other', version
|
|
1134
1159
|
Gem::Package.build @spec
|
1135
1160
|
end
|
1136
1161
|
end
|
1137
|
-
installer = Gem::Installer.at @gem
|
1162
|
+
installer = Gem::Installer.at @gem, :force => true
|
1138
1163
|
build_rake_in do
|
1139
1164
|
use_ui @ui do
|
1140
1165
|
assert_equal @spec, installer.install
|
@@ -1156,6 +1181,15 @@ gem 'other', version
|
|
1156
1181
|
assert_path_exists gem_dir
|
1157
1182
|
end
|
1158
1183
|
|
1184
|
+
def test_install_build_root
|
1185
|
+
build_root = File.join(@tempdir, 'build_root')
|
1186
|
+
|
1187
|
+
@gem = setup_base_gem
|
1188
|
+
installer = Gem::Installer.at @gem, :build_root => build_root
|
1189
|
+
|
1190
|
+
assert_equal @spec, installer.install
|
1191
|
+
end
|
1192
|
+
|
1159
1193
|
def test_install_missing_dirs
|
1160
1194
|
installer = setup_base_installer
|
1161
1195
|
|
@@ -1337,7 +1371,7 @@ gem 'other', version
|
|
1337
1371
|
|
1338
1372
|
# reinstall the gem, this is also the same as pristine
|
1339
1373
|
use_ui @ui do
|
1340
|
-
installer = Gem::Installer.at path
|
1374
|
+
installer = Gem::Installer.at path, :force => true
|
1341
1375
|
installer.install
|
1342
1376
|
end
|
1343
1377
|
|
@@ -1537,6 +1571,7 @@ gem 'other', version
|
|
1537
1571
|
installer = setup_base_installer
|
1538
1572
|
@spec.add_dependency 'b', '> 5'
|
1539
1573
|
installer = util_setup_gem
|
1574
|
+
installer.force = false
|
1540
1575
|
|
1541
1576
|
use_ui @ui do
|
1542
1577
|
assert_raises Gem::InstallError do
|
@@ -1781,13 +1816,24 @@ gem 'other', version
|
|
1781
1816
|
|
1782
1817
|
def test_process_options_build_root
|
1783
1818
|
build_root = File.join @tempdir, 'build_root'
|
1819
|
+
bin_dir = File.join(build_root, @gemhome.gsub(/^[a-zA-Z]:/, ''), 'bin')
|
1820
|
+
gem_home = File.join(build_root, @gemhome.gsub(/^[a-zA-Z]:/, ''))
|
1821
|
+
plugins_dir = File.join(build_root, @gemhome.gsub(/^[a-zA-Z]:/, ''), 'plugins')
|
1784
1822
|
|
1785
1823
|
@gem = setup_base_gem
|
1786
|
-
installer = Gem::Installer.at @gem, :build_root => build_root
|
1824
|
+
installer = use_ui(@ui) { Gem::Installer.at @gem, :build_root => build_root }
|
1825
|
+
|
1826
|
+
assert_equal build_root, installer.build_root
|
1827
|
+
assert_equal bin_dir, installer.bin_dir
|
1828
|
+
assert_equal gem_home, installer.gem_home
|
1787
1829
|
|
1788
|
-
|
1789
|
-
|
1790
|
-
assert_equal
|
1830
|
+
errors = @ui.error.split("\n")
|
1831
|
+
|
1832
|
+
assert_equal "WARNING: You build with buildroot.", errors.shift
|
1833
|
+
assert_equal " Build root: #{build_root}", errors.shift
|
1834
|
+
assert_equal " Bin dir: #{bin_dir}", errors.shift
|
1835
|
+
assert_equal " Gem home: #{gem_home}", errors.shift
|
1836
|
+
assert_equal " Plugins dir: #{plugins_dir}", errors.shift
|
1791
1837
|
end
|
1792
1838
|
|
1793
1839
|
def test_shebang_arguments
|
@@ -2169,6 +2215,23 @@ gem 'other', version
|
|
2169
2215
|
assert_equal ['exe/executable'], default_spec.files
|
2170
2216
|
end
|
2171
2217
|
|
2218
|
+
def test_default_gem_to_specific_install_dir
|
2219
|
+
@gem = setup_base_gem
|
2220
|
+
installer = util_installer @spec, "#{@gemhome}2"
|
2221
|
+
installer.options[:install_as_default] = true
|
2222
|
+
|
2223
|
+
use_ui @ui do
|
2224
|
+
installer.install
|
2225
|
+
end
|
2226
|
+
|
2227
|
+
assert_directory_exists File.join("#{@gemhome}2", 'specifications')
|
2228
|
+
assert_directory_exists File.join("#{@gemhome}2", 'specifications', 'default')
|
2229
|
+
|
2230
|
+
default_spec = eval File.read File.join("#{@gemhome}2", 'specifications', 'default', 'a-2.gemspec')
|
2231
|
+
assert_equal Gem::Version.new("2"), default_spec.version
|
2232
|
+
assert_equal ['bin/executable'], default_spec.files
|
2233
|
+
end
|
2234
|
+
|
2172
2235
|
def test_package_attribute
|
2173
2236
|
gem = quick_gem 'c' do |spec|
|
2174
2237
|
util_make_exec spec, '#!/usr/bin/ruby', 'exe'
|