rubygems-update 3.2.4 → 3.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/Rakefile +3 -12
- data/bundler/CHANGELOG.md +18 -2
- data/bundler/lib/bundler.rb +0 -1
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/gem.rb +2 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +0 -8
- data/bundler/lib/bundler/gem_helper.rb +3 -3
- data/bundler/lib/bundler/resolver.rb +6 -1
- data/bundler/lib/bundler/source/git.rb +18 -16
- data/bundler/lib/bundler/source/git/git_proxy.rb +35 -17
- data/bundler/lib/bundler/source/path/installer.rb +2 -0
- data/bundler/lib/bundler/source/rubygems.rb +10 -1
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +3 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/lib/rubygems.rb +1 -1
- data/lib/rubygems/commands/setup_command.rb +1 -3
- data/lib/rubygems/specification.rb +18 -14
- data/lib/rubygems/test_case.rb +14 -1
- data/rubygems-update.gemspec +1 -1
- data/test/rubygems/test_gem_commands_setup_command.rb +8 -1
- data/test/rubygems/test_gem_specification.rb +8 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f6bb6c4c3306717f1cbb6c31a681fb34fe87a80908be9788cf9b8670acd0f45
|
4
|
+
data.tar.gz: 54f8871259d5e897c28946c66908e8ee64cf96be9dfd13e3fe47ed75f92a0fca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56a73fe1ec095a370b2b8ebc93e0a4aa8e8986841b33b02a5eca4475e89fa59929039a4a9aae248e4aa8f6cef2236d7e47d887c98df2487ab5f5f265af1f2084
|
7
|
+
data.tar.gz: 50aacfbe514a2c5a0567325bded2095de0fdb2a33f794bb8f2872855848ad88594d82189bfcf67767909daf9e8e6f984f3a7b9de5dcd1bf1c4c34f018ea51ec2
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
# 3.2.5 / 2021-01-11
|
2
|
+
|
3
|
+
## Bug fixes:
|
4
|
+
|
5
|
+
* Don't load more specs after the whole set of specs has been setup. Pull
|
6
|
+
request #4262 by deivid-rodriguez
|
7
|
+
* Fix broken `bundler` executable after `gem update --system`. Pull
|
8
|
+
request #4221 by deivid-rodriguez
|
9
|
+
|
1
10
|
# 3.2.4 / 2020-12-31
|
2
11
|
|
3
12
|
## Enhancements:
|
data/Rakefile
CHANGED
@@ -7,9 +7,7 @@ require 'psych'
|
|
7
7
|
|
8
8
|
desc "Setup Rubygems dev environment"
|
9
9
|
task :setup do
|
10
|
-
|
11
|
-
sh "gem install bundler:#{version}"
|
12
|
-
sh "bundle install --gemfile=dev_gems.rb"
|
10
|
+
sh "ruby bundler/bin/bundle install --gemfile=dev_gems.rb"
|
13
11
|
end
|
14
12
|
|
15
13
|
desc "Setup git hooks"
|
@@ -183,11 +181,7 @@ end
|
|
183
181
|
|
184
182
|
desc "Upload release to S3"
|
185
183
|
task :upload_to_s3 do
|
186
|
-
|
187
|
-
require "aws-sdk-s3"
|
188
|
-
rescue LoadError
|
189
|
-
abort "Install the aws-sdk-s3 gem to be able to upload gems to rubygems.org."
|
190
|
-
end
|
184
|
+
require "aws-sdk-s3"
|
191
185
|
|
192
186
|
s3 = Aws::S3::Resource.new(region:'us-west-2')
|
193
187
|
%w[zip tgz].each do |ext|
|
@@ -313,9 +307,7 @@ To update to the latest RubyGems you can run:
|
|
313
307
|
|
314
308
|
gem update --system
|
315
309
|
|
316
|
-
|
317
|
-
RubyGems][upgrading] instructions. To install RubyGems by hand see the
|
318
|
-
[Download RubyGems][download] page.
|
310
|
+
To install RubyGems by hand see the [Download RubyGems][download] page.
|
319
311
|
|
320
312
|
#{history.release_notes_for_blog.join("\n")}
|
321
313
|
|
@@ -324,7 +316,6 @@ SHA256 Checksums:
|
|
324
316
|
#{checksums}
|
325
317
|
|
326
318
|
[download]: https://rubygems.org/pages/download
|
327
|
-
[upgrading]: http://docs.seattlerb.org/rubygems/UPGRADING_rdoc.html
|
328
319
|
|
329
320
|
ANNOUNCEMENT
|
330
321
|
|
data/bundler/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
# 2.2.5 (January 11, 2021)
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
- Improve rubocop setup in the new gem template [#4220](https://github.com/rubygems/rubygems/pull/4220)
|
6
|
+
- Support repositories with default branch not named master [#4224](https://github.com/rubygems/rubygems/pull/4224)
|
7
|
+
|
8
|
+
## Bug fixes:
|
9
|
+
|
10
|
+
- Let Net::HTTP decompress the index instead of doing it manually [#4081](https://github.com/rubygems/rubygems/pull/4081)
|
11
|
+
- Workaround for another jruby crash when autoloading a constant [#4252](https://github.com/rubygems/rubygems/pull/4252)
|
12
|
+
- Fix another performance regression in the resolver [#4243](https://github.com/rubygems/rubygems/pull/4243)
|
13
|
+
- Restore support for old git versions [#4233](https://github.com/rubygems/rubygems/pull/4233)
|
14
|
+
- Give a proper error if cache path does not have write access [#4215](https://github.com/rubygems/rubygems/pull/4215)
|
15
|
+
- Fix running `rake release` from an ambiguous ref [#4219](https://github.com/rubygems/rubygems/pull/4219)
|
16
|
+
|
1
17
|
# 2.2.4 (December 31, 2020)
|
2
18
|
|
3
19
|
## Bug fixes:
|
@@ -327,7 +343,7 @@
|
|
327
343
|
- Fix `bundle update` message about exclude groups saying "installed" instead of "updated" ([#7150](https://github.com/rubygems/bundler/pull/7150))
|
328
344
|
- Fix `bundle licenses` not showing correct information about bundler itself ([#7147](https://github.com/rubygems/bundler/pull/7147))
|
329
345
|
- Fix installation path not including ruby scope when `BUNDLE_PATH` was set ([#7163](https://github.com/rubygems/bundler/pull/7163))
|
330
|
-
- Fix `bundle clean` incorrectly removing git
|
346
|
+
- Fix `bundle clean` incorrectly removing git dependencies present in the Gemfile when rubygems 3.0+ was used and path involved a symlink ([#7211](https://github.com/rubygems/bundler/pull/7211))
|
331
347
|
- Fix platform specific gems always being re-resolved when bundler was not running under that platform ([#7212](https://github.com/rubygems/bundler/pull/7212))
|
332
348
|
- Fix `bundle package --all-platforms` causing `bundle install` to ignore `--with` and `--without` ([#6113](https://github.com/rubygems/bundler/pull/6113))
|
333
349
|
- Fix `MissingRevision` git errors to include the specific `git` command that failed under the hood ([#7225](https://github.com/rubygems/bundler/pull/7225))
|
@@ -499,7 +515,7 @@ Changes
|
|
499
515
|
## Bug fixes:
|
500
516
|
|
501
517
|
- Fix issue where updating a gem resulted in the gem's version being downgraded when `BUNDLE_ONLY_UPDATE_TO_NEWER_VERSIONS` was set ([#6529](https://github.com/rubygems/bundler/issues/6529), @theflow)
|
502
|
-
- Fix some rescue calls that don't
|
518
|
+
- Fix some rescue calls that don't specify error type (@utilum)
|
503
519
|
- Fix an issue when the Lockfile would contain platform-specific gems that it didn't need ([#6491](https://github.com/rubygems/bundler/issues/6491), @segiddins)
|
504
520
|
- Improve handling of adding new gems with only a single group to the Gemfile in `bundle add` (@agrim123)
|
505
521
|
- Refactor check for OpenSSL in `bundle env` (@voxik)
|
data/bundler/lib/bundler.rb
CHANGED
@@ -63,7 +63,6 @@ module Bundler
|
|
63
63
|
autoload :Resolver, File.expand_path("bundler/resolver", __dir__)
|
64
64
|
autoload :Retry, File.expand_path("bundler/retry", __dir__)
|
65
65
|
autoload :RubyDsl, File.expand_path("bundler/ruby_dsl", __dir__)
|
66
|
-
autoload :RubyGemsGemInstaller, File.expand_path("bundler/rubygems_gem_installer", __dir__)
|
67
66
|
autoload :RubyVersion, File.expand_path("bundler/ruby_version", __dir__)
|
68
67
|
autoload :Runtime, File.expand_path("bundler/runtime", __dir__)
|
69
68
|
autoload :Settings, File.expand_path("bundler/settings", __dir__)
|
@@ -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 = "
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2021-01-11".freeze
|
8
|
+
@git_commit_sha = "ba867aed7f".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
@@ -59,6 +59,7 @@ module Bundler
|
|
59
59
|
:exe => options[:exe],
|
60
60
|
:bundler_version => bundler_dependency_version,
|
61
61
|
:github_username => github_username.empty? ? "[USERNAME]" : github_username,
|
62
|
+
:required_ruby_version => Gem.ruby_version < Gem::Version.new("2.4.a") ? "2.3.0" : "2.4.0",
|
62
63
|
}
|
63
64
|
ensure_safe_gem_name(name, constant_array)
|
64
65
|
|
@@ -147,6 +148,7 @@ module Bundler
|
|
147
148
|
"For more information, see the RuboCop docs (https://docs.rubocop.org/en/stable/) " \
|
148
149
|
"and the Ruby Style Guides (https://github.com/rubocop-hq/ruby-style-guide).")
|
149
150
|
config[:rubocop] = true
|
151
|
+
config[:rubocop_version] = Gem.ruby_version < Gem::Version.new("2.4.a") ? "0.81.0" : "1.7"
|
150
152
|
Bundler.ui.info "RuboCop enabled in config"
|
151
153
|
templates.merge!("rubocop.yml.tt" => ".rubocop.yml")
|
152
154
|
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "../vendored_fileutils"
|
4
|
-
require "stringio"
|
5
|
-
require "zlib"
|
6
4
|
|
7
5
|
module Bundler
|
8
6
|
class CompactIndexClient
|
@@ -45,18 +43,12 @@ module Bundler
|
|
45
43
|
else
|
46
44
|
"bytes=#{local_temp_path.size}-"
|
47
45
|
end
|
48
|
-
else
|
49
|
-
# Fastly ignores Range when Accept-Encoding: gzip is set
|
50
|
-
headers["Accept-Encoding"] = "gzip"
|
51
46
|
end
|
52
47
|
|
53
48
|
response = @fetcher.call(remote_path, headers)
|
54
49
|
return nil if response.is_a?(Net::HTTPNotModified)
|
55
50
|
|
56
51
|
content = response.body
|
57
|
-
if response["Content-Encoding"] == "gzip"
|
58
|
-
content = Zlib::GzipReader.new(StringIO.new(content)).read
|
59
|
-
end
|
60
52
|
|
61
53
|
SharedHelpers.filesystem_access(local_temp_path) do
|
62
54
|
if response.is_a?(Net::HTTPPartialContent) && local_temp_path.size.nonzero?
|
@@ -117,13 +117,13 @@ module Bundler
|
|
117
117
|
def git_push(remote = nil)
|
118
118
|
remote ||= default_remote
|
119
119
|
perform_git_push remote
|
120
|
-
perform_git_push "#{remote}
|
120
|
+
perform_git_push "#{remote} refs/tags/#{version_tag}"
|
121
121
|
Bundler.ui.confirm "Pushed git commits and release tag."
|
122
122
|
end
|
123
123
|
|
124
124
|
def default_remote
|
125
|
-
|
126
|
-
|
125
|
+
# We can replace this with `git branch --show-current` once we drop support for git < 2.22.0
|
126
|
+
current_branch = sh(%w[git rev-parse --abbrev-ref HEAD]).gsub(%r{\Aheads/}, "").strip
|
127
127
|
|
128
128
|
remote_for_branch = sh(%W[git config --get branch.#{current_branch}.remote]).strip
|
129
129
|
return "origin" if remote_for_branch.empty?
|
@@ -163,7 +163,12 @@ module Bundler
|
|
163
163
|
# Add a spec group for "non platform specific spec" as the fallback
|
164
164
|
# spec group.
|
165
165
|
sg_ruby = sg.copy_for([Gem::Platform::RUBY])
|
166
|
-
|
166
|
+
next unless sg_ruby
|
167
|
+
|
168
|
+
sg_ruby_deps = sg_ruby.dependencies_for_activated_platforms.map(&:dep)
|
169
|
+
sg_all_platforms_deps = sg_all_platforms.dependencies_for_activated_platforms.map(&:dep)
|
170
|
+
|
171
|
+
selected_sgs.insert(-2, sg_ruby) if sg_ruby_deps != sg_all_platforms_deps
|
167
172
|
end
|
168
173
|
selected_sgs
|
169
174
|
end
|
@@ -22,7 +22,7 @@ module Bundler
|
|
22
22
|
@uri = options["uri"] || ""
|
23
23
|
@safe_uri = URICredentialsFilter.credential_filtered_uri(@uri)
|
24
24
|
@branch = options["branch"]
|
25
|
-
@ref = options["ref"] || options["branch"] || options["tag"]
|
25
|
+
@ref = options["ref"] || options["branch"] || options["tag"]
|
26
26
|
@submodules = options["submodules"]
|
27
27
|
@name = options["name"]
|
28
28
|
@version = options["version"].to_s.strip.gsub("-", ".pre.")
|
@@ -60,25 +60,27 @@ module Bundler
|
|
60
60
|
alias_method :==, :eql?
|
61
61
|
|
62
62
|
def to_s
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
63
|
+
begin
|
64
|
+
at = if local?
|
65
|
+
path
|
66
|
+
elsif user_ref = options["ref"]
|
67
|
+
if ref =~ /\A[a-z0-9]{4,}\z/i
|
68
|
+
shortref_for_display(user_ref)
|
69
|
+
else
|
70
|
+
user_ref
|
71
|
+
end
|
72
|
+
elsif ref
|
73
|
+
ref
|
68
74
|
else
|
69
|
-
|
75
|
+
git_proxy.branch
|
70
76
|
end
|
71
|
-
else
|
72
|
-
ref
|
73
|
-
end
|
74
77
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
end
|
78
|
+
rev = " (at #{at}@#{shortref_for_display(revision)})"
|
79
|
+
rescue GitError
|
80
|
+
""
|
81
|
+
end
|
80
82
|
|
81
|
-
"#{@safe_uri}
|
83
|
+
"#{@safe_uri}#{rev}"
|
82
84
|
end
|
83
85
|
|
84
86
|
def name
|
@@ -17,7 +17,7 @@ module Bundler
|
|
17
17
|
class GitNotAllowedError < GitError
|
18
18
|
def initialize(command)
|
19
19
|
msg = String.new
|
20
|
-
msg << "Bundler is trying to run
|
20
|
+
msg << "Bundler is trying to run `#{command}` at runtime. You probably need to run `bundle install`. However, "
|
21
21
|
msg << "this error message could probably be more useful. Please submit a ticket at https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md "
|
22
22
|
msg << "with steps to reproduce as well as the following\n\nCALLER: #{caller.join("\n")}"
|
23
23
|
super msg
|
@@ -27,11 +27,11 @@ module Bundler
|
|
27
27
|
class GitCommandError < GitError
|
28
28
|
attr_reader :command
|
29
29
|
|
30
|
-
def initialize(command, path,
|
30
|
+
def initialize(command, path, extra_info = nil)
|
31
31
|
@command = command
|
32
32
|
|
33
33
|
msg = String.new
|
34
|
-
msg << "Git error: command
|
34
|
+
msg << "Git error: command `#{command}` in directory #{path} has failed."
|
35
35
|
msg << "\n#{extra_info}" if extra_info
|
36
36
|
msg << "\nIf this error persists you could try removing the cache directory '#{path}'" if path.exist?
|
37
37
|
super msg
|
@@ -39,9 +39,9 @@ module Bundler
|
|
39
39
|
end
|
40
40
|
|
41
41
|
class MissingGitRevisionError < GitCommandError
|
42
|
-
def initialize(command,
|
42
|
+
def initialize(command, destination_path, ref, repo)
|
43
43
|
msg = "Revision #{ref} does not exist in the repository #{repo}. Maybe you misspelled it?"
|
44
|
-
super command,
|
44
|
+
super command, destination_path, msg
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
@@ -132,7 +132,7 @@ module Bundler
|
|
132
132
|
begin
|
133
133
|
git "reset", "--hard", @revision, :dir => destination
|
134
134
|
rescue GitCommandError => e
|
135
|
-
raise MissingGitRevisionError.new(e.command,
|
135
|
+
raise MissingGitRevisionError.new(e.command, destination, @revision, URICredentialsFilter.credential_filtered_uri(uri))
|
136
136
|
end
|
137
137
|
|
138
138
|
if submodules
|
@@ -145,32 +145,36 @@ module Bundler
|
|
145
145
|
|
146
146
|
private
|
147
147
|
|
148
|
-
def git_null(*command, dir:
|
148
|
+
def git_null(*command, dir: nil)
|
149
149
|
check_allowed(command)
|
150
150
|
|
151
151
|
out, status = SharedHelpers.with_clean_git_env do
|
152
|
-
capture_and_ignore_stderr(
|
152
|
+
capture_and_ignore_stderr(*capture3_args_for(command, dir))
|
153
153
|
end
|
154
154
|
|
155
155
|
[URICredentialsFilter.credential_filtered_string(out, uri), status]
|
156
156
|
end
|
157
157
|
|
158
|
-
def git_retry(*command, dir:
|
159
|
-
|
158
|
+
def git_retry(*command, dir: nil)
|
159
|
+
command_with_no_credentials = check_allowed(command)
|
160
|
+
|
161
|
+
Bundler::Retry.new("`#{command_with_no_credentials}` at #{dir || SharedHelpers.pwd}").attempts do
|
160
162
|
git(*command, :dir => dir)
|
161
163
|
end
|
162
164
|
end
|
163
165
|
|
164
|
-
def git(*command, dir:
|
166
|
+
def git(*command, dir: nil)
|
165
167
|
command_with_no_credentials = check_allowed(command)
|
166
168
|
|
167
169
|
out, status = SharedHelpers.with_clean_git_env do
|
168
|
-
capture_and_filter_stderr(
|
170
|
+
capture_and_filter_stderr(*capture3_args_for(command, dir))
|
169
171
|
end
|
170
172
|
|
171
|
-
|
173
|
+
filtered_out = URICredentialsFilter.credential_filtered_string(out, uri)
|
174
|
+
|
175
|
+
raise GitCommandError.new(command_with_no_credentials, dir || SharedHelpers.pwd, filtered_out) unless status.success?
|
172
176
|
|
173
|
-
|
177
|
+
filtered_out
|
174
178
|
end
|
175
179
|
|
176
180
|
def has_revision_cached?
|
@@ -187,10 +191,10 @@ module Bundler
|
|
187
191
|
|
188
192
|
def find_local_revision
|
189
193
|
allowed_with_path do
|
190
|
-
git("rev-parse", "--verify", ref, :dir => path).strip
|
194
|
+
git("rev-parse", "--verify", ref || "HEAD", :dir => path).strip
|
191
195
|
end
|
192
196
|
rescue GitCommandError => e
|
193
|
-
raise MissingGitRevisionError.new(e.command, path,
|
197
|
+
raise MissingGitRevisionError.new(e.command, path, ref, URICredentialsFilter.credential_filtered_uri(uri))
|
194
198
|
end
|
195
199
|
|
196
200
|
# Adds credentials to the URI as Fetcher#configured_uri_for does
|
@@ -220,7 +224,7 @@ module Bundler
|
|
220
224
|
end
|
221
225
|
|
222
226
|
def check_allowed(command)
|
223
|
-
command_with_no_credentials = URICredentialsFilter.credential_filtered_string(command.shelljoin, uri)
|
227
|
+
command_with_no_credentials = URICredentialsFilter.credential_filtered_string("git #{command.shelljoin}", uri)
|
224
228
|
raise GitNotAllowedError.new(command_with_no_credentials) unless allow?
|
225
229
|
command_with_no_credentials
|
226
230
|
end
|
@@ -237,6 +241,20 @@ module Bundler
|
|
237
241
|
return_value, _, status = Open3.capture3(*cmd)
|
238
242
|
[return_value, status]
|
239
243
|
end
|
244
|
+
|
245
|
+
def capture3_args_for(cmd, dir)
|
246
|
+
return ["git", *cmd] unless dir
|
247
|
+
|
248
|
+
if Bundler.feature_flag.bundler_3_mode? || supports_minus_c?
|
249
|
+
["git", "-C", dir.to_s, *cmd]
|
250
|
+
else
|
251
|
+
["git", *cmd, { :chdir => dir.to_s }]
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
def supports_minus_c?
|
256
|
+
@supports_minus_c ||= Gem::Version.new(version) >= Gem::Version.new("1.8.5")
|
257
|
+
end
|
240
258
|
end
|
241
259
|
end
|
242
260
|
end
|
@@ -145,6 +145,8 @@ module Bundler
|
|
145
145
|
|
146
146
|
Bundler.mkdir_p bin_path, :no_sudo => true unless spec.executables.empty? || Bundler.rubygems.provides?(">= 2.7.5")
|
147
147
|
|
148
|
+
require_relative "../rubygems_gem_installer"
|
149
|
+
|
148
150
|
installed_spec = Bundler::RubyGemsGemInstaller.at(
|
149
151
|
path,
|
150
152
|
:install_dir => install_path.to_s,
|
@@ -487,8 +489,15 @@ module Bundler
|
|
487
489
|
uri = spec.remote.uri
|
488
490
|
Bundler.ui.confirm("Fetching #{version_message(spec)}")
|
489
491
|
rubygems_local_path = Bundler.rubygems.download_gem(spec, uri, download_path)
|
492
|
+
|
493
|
+
# older rubygems return varying file:// variants depending on version
|
494
|
+
rubygems_local_path = rubygems_local_path.gsub(/\Afile:/, "") unless Bundler.rubygems.provides?(">= 3.2.0.rc.2")
|
495
|
+
rubygems_local_path = rubygems_local_path.gsub(%r{\A//}, "") if Bundler.rubygems.provides?("< 3.1.0")
|
496
|
+
|
490
497
|
if rubygems_local_path != local_path
|
491
|
-
|
498
|
+
SharedHelpers.filesystem_access(local_path) do
|
499
|
+
FileUtils.mv(rubygems_local_path, local_path)
|
500
|
+
end
|
492
501
|
end
|
493
502
|
cache_globally(spec, local_path)
|
494
503
|
end
|
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
<%- if config[:mit] -%>
|
15
15
|
spec.license = "MIT"
|
16
16
|
<%- end -%>
|
17
|
-
spec.required_ruby_version = Gem::Requirement.new(">=
|
17
|
+
spec.required_ruby_version = Gem::Requirement.new(">= <%= config[:required_ruby_version] %>")
|
18
18
|
|
19
19
|
spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
20
20
|
|
data/lib/rubygems.rb
CHANGED
@@ -375,9 +375,7 @@ By default, this RubyGems will install gem as:
|
|
375
375
|
specs_dir = File.join(options[:destdir], specs_dir) unless Gem.win_platform?
|
376
376
|
mkdir_p specs_dir, :mode => 0755
|
377
377
|
|
378
|
-
bundler_spec = Gem::Specification.load("bundler
|
379
|
-
bundler_spec.files = Dir.chdir("bundler") { Dir["{*.md,{lib,exe}/**/*}"] }
|
380
|
-
bundler_spec.executables -= %w[bundler bundle_ruby]
|
378
|
+
bundler_spec = Dir.chdir("bundler") { Gem::Specification.load("bundler.gemspec") }
|
381
379
|
|
382
380
|
# Remove bundler-*.gemspec in default specification directory.
|
383
381
|
Dir.entries(specs_dir).
|
@@ -182,6 +182,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
182
182
|
@@default_value[k].nil?
|
183
183
|
end
|
184
184
|
|
185
|
+
@@stubs = nil
|
185
186
|
@@stubs_by_name = {}
|
186
187
|
|
187
188
|
# Sentinel object to represent "not found" stubs
|
@@ -800,10 +801,8 @@ class Gem::Specification < Gem::BasicSpecification
|
|
800
801
|
def self.stubs
|
801
802
|
@@stubs ||= begin
|
802
803
|
pattern = "*.gemspec"
|
803
|
-
stubs =
|
804
|
-
stubs = stubs.uniq {|stub| stub.full_name }
|
804
|
+
stubs = stubs_for_pattern(pattern, false)
|
805
805
|
|
806
|
-
_resort!(stubs)
|
807
806
|
@@stubs_by_name = stubs.select {|s| Gem::Platform.match_spec? s }.group_by(&:name)
|
808
807
|
stubs
|
809
808
|
end
|
@@ -820,26 +819,31 @@ class Gem::Specification < Gem::BasicSpecification
|
|
820
819
|
end
|
821
820
|
end
|
822
821
|
|
823
|
-
EMPTY = [].freeze # :nodoc:
|
824
|
-
|
825
822
|
##
|
826
823
|
# Returns a Gem::StubSpecification for installed gem named +name+
|
827
824
|
# only returns stubs that match Gem.platforms
|
828
825
|
|
829
826
|
def self.stubs_for(name)
|
830
|
-
if @@
|
831
|
-
@@stubs_by_name[name]
|
827
|
+
if @@stubs
|
828
|
+
@@stubs_by_name[name] || []
|
832
829
|
else
|
833
|
-
|
834
|
-
stubs = installed_stubs(dirs, pattern).select {|s| Gem::Platform.match_spec? s } + default_stubs(pattern)
|
835
|
-
stubs = stubs.uniq {|stub| stub.full_name }.group_by(&:name)
|
836
|
-
stubs.each_value {|v| _resort!(v) }
|
837
|
-
|
838
|
-
@@stubs_by_name.merge! stubs
|
839
|
-
@@stubs_by_name[name] ||= EMPTY
|
830
|
+
@@stubs_by_name[name] ||= stubs_for_pattern("#{name}-*.gemspec")
|
840
831
|
end
|
841
832
|
end
|
842
833
|
|
834
|
+
##
|
835
|
+
# Finds stub specifications matching a pattern from the standard locations,
|
836
|
+
# optionally filtering out specs not matching the current platform
|
837
|
+
#
|
838
|
+
def self.stubs_for_pattern(pattern, match_platform = true) # :nodoc:
|
839
|
+
installed_stubs = installed_stubs(Gem::Specification.dirs, pattern)
|
840
|
+
installed_stubs.select! {|s| Gem::Platform.match_spec? s } if match_platform
|
841
|
+
stubs = installed_stubs + default_stubs(pattern)
|
842
|
+
stubs = stubs.uniq {|stub| stub.full_name }
|
843
|
+
_resort!(stubs)
|
844
|
+
stubs
|
845
|
+
end
|
846
|
+
|
843
847
|
def self._resort!(specs) # :nodoc:
|
844
848
|
specs.sort! do |a, b|
|
845
849
|
names = a.name <=> b.name
|
data/lib/rubygems/test_case.rb
CHANGED
@@ -26,7 +26,20 @@ begin
|
|
26
26
|
rescue LoadError
|
27
27
|
end
|
28
28
|
|
29
|
-
|
29
|
+
if File.exist?(bundler_gemspec)
|
30
|
+
require_relative '../../bundler/lib/bundler'
|
31
|
+
else
|
32
|
+
require 'bundler'
|
33
|
+
end
|
34
|
+
|
35
|
+
# Enable server plugin needed for bisection
|
36
|
+
if ENV["RG_BISECT_SERVER_PLUGIN"]
|
37
|
+
require ENV["RG_BISECT_SERVER_PLUGIN"]
|
38
|
+
|
39
|
+
Minitest.extensions << "server"
|
40
|
+
end
|
41
|
+
|
42
|
+
ENV["MT_NO_PLUGINS"] = "true"
|
30
43
|
|
31
44
|
require 'minitest/autorun'
|
32
45
|
|
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.2.
|
5
|
+
s.version = "3.2.5"
|
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
|
|
@@ -24,6 +24,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
24
24
|
lib/rubygems/test_case.rb
|
25
25
|
lib/rubygems/ssl_certs/rubygems.org/foo.pem
|
26
26
|
bundler/exe/bundle
|
27
|
+
bundler/exe/bundler
|
27
28
|
bundler/lib/bundler.rb
|
28
29
|
bundler/lib/bundler/b.rb
|
29
30
|
bundler/bin/bundler/man/bundle-b.1
|
@@ -41,7 +42,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
41
42
|
gemspec.name = "bundler"
|
42
43
|
gemspec.version = BUNDLER_VERS
|
43
44
|
gemspec.bindir = "exe"
|
44
|
-
gemspec.executables = ["bundle"]
|
45
|
+
gemspec.executables = ["bundle", "bundler"]
|
45
46
|
|
46
47
|
File.open 'bundler/bundler.gemspec', 'w' do |io|
|
47
48
|
io.puts gemspec.to_ruby
|
@@ -135,6 +136,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
135
136
|
exec_line = out.shift until exec_line == "RubyGems installed the following executables:"
|
136
137
|
assert_equal "\t#{default_gem_bin_path}", out.shift
|
137
138
|
assert_equal "\t#{default_bundle_bin_path}", out.shift
|
139
|
+
assert_equal "\t#{default_bundler_bin_path}", out.shift
|
138
140
|
end
|
139
141
|
|
140
142
|
def test_env_shebang_flag
|
@@ -152,6 +154,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
152
154
|
bin_env = win_platform? ? "" : %w[/usr/bin/env /bin/env].find {|f| File.executable?(f) } + " "
|
153
155
|
assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(default_gem_bin_path)
|
154
156
|
assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(default_bundle_bin_path)
|
157
|
+
assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(default_bundler_bin_path)
|
155
158
|
assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(gem_bin_path)
|
156
159
|
end
|
157
160
|
|
@@ -387,4 +390,8 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
387
390
|
def default_bundle_bin_path
|
388
391
|
File.join @install_dir, 'bin', 'bundle'
|
389
392
|
end
|
393
|
+
|
394
|
+
def default_bundler_bin_path
|
395
|
+
File.join @install_dir, 'bin', 'bundler'
|
396
|
+
end
|
390
397
|
end unless Gem.java_platform?
|
@@ -1161,6 +1161,14 @@ dependencies: []
|
|
1161
1161
|
Gem::Specification.class_variable_set(:@@stubs, nil)
|
1162
1162
|
end
|
1163
1163
|
|
1164
|
+
def test_self_stubs_for_no_lazy_loading_after_all_specs_setup
|
1165
|
+
Gem::Specification.all = [util_spec('a', '1')]
|
1166
|
+
|
1167
|
+
save_gemspec('b-1', '1', File.join(Gem.dir, 'specifications')){|s| s.name = 'b' }
|
1168
|
+
|
1169
|
+
assert_equal [], Gem::Specification.stubs_for('b').map {|s| s.full_name }
|
1170
|
+
end
|
1171
|
+
|
1164
1172
|
def test_self_stubs_for_mult_platforms
|
1165
1173
|
# gems for two different platforms are installed with --user-install
|
1166
1174
|
# the correct one should be returned in the array
|
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.2.
|
4
|
+
version: 3.2.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:
|
19
|
+
date: 2021-01-11 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
|