rubygems-update 3.2.16 → 3.2.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -8
- data/CONTRIBUTING.md +2 -2
- data/Rakefile +2 -2
- data/bundler/CHANGELOG.md +30 -6
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli.rb +2 -2
- data/bundler/lib/bundler/cli/common.rb +2 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +9 -5
- data/bundler/lib/bundler/current_ruby.rb +1 -0
- data/bundler/lib/bundler/definition.rb +2 -4
- data/bundler/lib/bundler/fetcher.rb +2 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +8 -4
- data/bundler/lib/bundler/injector.rb +2 -2
- data/bundler/lib/bundler/inline.rb +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +18 -1
- data/bundler/lib/bundler/man/bundle-config.1.ronn +18 -1
- data/bundler/lib/bundler/plugin.rb +2 -2
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/settings.rb +60 -9
- data/bundler/lib/bundler/source/rubygems.rb +2 -2
- data/bundler/lib/bundler/spec_set.rb +18 -7
- data/bundler/lib/bundler/templates/Gemfile +1 -1
- data/bundler/lib/bundler/templates/gems.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +1 -1
- data/bundler/lib/bundler/version.rb +1 -1
- data/lib/rubygems.rb +4 -4
- data/lib/rubygems/commands/install_command.rb +1 -1
- data/lib/rubygems/commands/open_command.rb +1 -1
- data/lib/rubygems/commands/yank_command.rb +1 -1
- data/lib/rubygems/defaults.rb +1 -1
- data/lib/rubygems/deprecate.rb +3 -1
- data/lib/rubygems/indexer.rb +1 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -1
- data/lib/rubygems/test_utilities.rb +1 -1
- data/rubygems-update.gemspec +1 -1
- data/test/rubygems/test_deprecate.rb +46 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcfc421015c33e4d4d5d8239aa5ba4f8355677b0509a7e83cb8e13fd22a8ef27
|
4
|
+
data.tar.gz: b535b85781ca843a1a876770a42a495f2384bf698d1d2e8dbabba15a5e0e0ea0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13c39ab5f867862e4a4b54e592fb8e7cddc2832dd2d57b54698887b618ff5785f33e06860129c9c85bc8ed63fb87a9dbb4789532c6824f44dbbbb3068307e613
|
7
|
+
data.tar.gz: 780f6bab25cdb0c7fc4f328c632dcaaa60275e0bb823b5b4b891780a69df3dc6cf1b3ee8488dd4472f6c03cb382daf5069584b39ba756d115f23ba9bfae70e9d
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
# 3.2.17 / 2021-05-05
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
* Only print month & year in deprecation messages. Pull request #3085 by
|
6
|
+
Schwad
|
7
|
+
* Make deprecate method support ruby3's keyword arguments. Pull request
|
8
|
+
#4558 by mame
|
9
|
+
* Update the default bindir on macOS. Pull request #4524 by nobu
|
10
|
+
* Prefer File.open instead of Kernel#open. Pull request #4529 by mame
|
11
|
+
|
12
|
+
## Documentation:
|
13
|
+
|
14
|
+
* Fix usage messages to reflect the current POSIX-compatible behaviour.
|
15
|
+
Pull request #4551 by graywolf-at-work
|
16
|
+
|
1
17
|
# 3.2.16 / 2021-04-08
|
2
18
|
|
3
19
|
## Bug fixes:
|
@@ -723,7 +739,7 @@
|
|
723
739
|
* Clean which command. Pull request #2801 by Luis Sagastume.
|
724
740
|
* Upgrading S3 source signature to AWS SigV4. Pull request #2807 by
|
725
741
|
Alexander Pakulov.
|
726
|
-
* Remove
|
742
|
+
* Remove misleading comment, no reason to move Gem.host to Gem::Util.
|
727
743
|
Pull request #2811 by Luis Sagastume.
|
728
744
|
* Drop support for 'gem env packageversion'. Pull request #2813 by Luis
|
729
745
|
Sagastume.
|
@@ -1723,7 +1739,7 @@ Security fixes:
|
|
1723
1739
|
* Clean up the PathSupport object. Pull request #1094 by Aaron Patterson.
|
1724
1740
|
* Join with File::PATH_SEPARATOR in Gem.use_paths. Pull request #1476 by
|
1725
1741
|
Samuel E. Giddins.
|
1726
|
-
* Handle when the gem home and gem path
|
1742
|
+
* Handle when the gem home and gem path aren't set in the config file. Pull
|
1727
1743
|
request #1478 by Samuel E. Giddins.
|
1728
1744
|
* Terminate TimeoutHandler. Pull request #1479 by Nobuyoshi Nakada.
|
1729
1745
|
* Remove redundant cache. Pull request #1482 by Eileen M. Uchitelle.
|
@@ -2068,7 +2084,7 @@ This release was sponsored by Ruby Central.
|
|
2068
2084
|
* Fixed activating gems from a Gemfile for default gems. Issue #991 by khoan.
|
2069
2085
|
* Fixed windows stub script generation for Cygwin. Issue #1000 by Brett
|
2070
2086
|
DiFrischia.
|
2071
|
-
* Allow gem bindir and ruby.exe to live in separate
|
2087
|
+
* Allow gem bindir and ruby.exe to live in separate directories. Pull request
|
2072
2088
|
#942 by Ian Flynn.
|
2073
2089
|
* Fixed handling of gemspec in gem dependencies files to match Bundler
|
2074
2090
|
behavior. Issue #1020 by Michal Papis.
|
@@ -2162,7 +2178,7 @@ This release was sponsored by Ruby Central.
|
|
2162
2178
|
* Gem.use_gemdeps now accepts an argument specifying the path of the gem
|
2163
2179
|
dependencies file. When the file is not found an ArgumentError is raised.
|
2164
2180
|
* Writing a .lock file for a gem dependencies file is now controlled by the
|
2165
|
-
--[no-]lock option. Pull
|
2181
|
+
--[no-]lock option. Pull request #774 by Jeremy Evans.
|
2166
2182
|
* Suggestion of alternate names and spelling corrections during install can be
|
2167
2183
|
suppressed with the --no-suggestions option. Issue #867 by Jimmy Cuadra.
|
2168
2184
|
* Added mswin64 support. Pull request #881 by U. Nakamura.
|
@@ -2261,7 +2277,7 @@ This release was sponsored by Ruby Central.
|
|
2261
2277
|
* Check for nil extensions as BasicSpecification does not initialize them.
|
2262
2278
|
Pull request #882 by André Arko.
|
2263
2279
|
* Fixed Gem::BasicSpecification#require_paths receives a String for
|
2264
|
-
@require_paths. Pull
|
2280
|
+
@require_paths. Pull request #904 by @danielpclark
|
2265
2281
|
* Fixed circular require warnings. Bug #908 by Zachary Scott.
|
2266
2282
|
* Gem::Specification#require_paths can no longer accidentally be an Array.
|
2267
2283
|
Pull requests #904, #909 by Daniel P. Clark.
|
@@ -3697,7 +3713,7 @@ build arguments.
|
|
3697
3713
|
* Fixed `gem contents` to work with the lightweight specifications
|
3698
3714
|
* Fixed `gem update --system x.y.z` where x.y.z == latest version. (MGPalmer)
|
3699
3715
|
* Fixed gem contents sorting and tests. (MGPalmer)
|
3700
|
-
* Fixed
|
3716
|
+
* Fixed intermittent problem in `gem fetch` with --platform specified (quix)
|
3701
3717
|
* Fixed lightweight specifications so `gem rdoc` will generate proper
|
3702
3718
|
documentation
|
3703
3719
|
* MockGemUI#terminate_interaction should not raise Gem::SystemExitException.
|
@@ -4378,7 +4394,7 @@ For a full list of changes to RubyGems, see the ChangeLog file.
|
|
4378
4394
|
installation
|
4379
4395
|
* Multi-version diamond dependencies only are installed once
|
4380
4396
|
* Processing a YAML bulk index update takes less memory
|
4381
|
-
* `gem install -i` makes sure all
|
4397
|
+
* `gem install -i` makes sure all dependencies are installed
|
4382
4398
|
* `gem update --system` reinstalls into the prefix it was originally installed
|
4383
4399
|
in
|
4384
4400
|
* `gem update --system` respects --no-rdoc and --no-ri flags
|
@@ -4418,7 +4434,7 @@ Special thanks to:
|
|
4418
4434
|
|
4419
4435
|
If you are experiencing problems with the source index (e.g. strange
|
4420
4436
|
"No Method" errors), or problems with zlib (e.g. "Buffer Error"
|
4421
|
-
|
4437
|
+
message), we recommend upgrading to RubyGems 0.9.4.
|
4422
4438
|
|
4423
4439
|
## Bug fixes:
|
4424
4440
|
|
data/CONTRIBUTING.md
CHANGED
@@ -114,7 +114,7 @@ listed in rough progression order from submitted to closed.
|
|
114
114
|
* **ready** - An issue that is available for collaboration. This issue
|
115
115
|
should have existing discussion on the problem, and a description of how
|
116
116
|
to go about solving it.
|
117
|
-
* **working** - An issue that has a specific
|
117
|
+
* **working** - An issue that has a specific individual assigned to and
|
118
118
|
planning to do work on it.
|
119
119
|
* **user feedback required** - The issue/pull request is blocked pending
|
120
120
|
more feedback from an end user
|
@@ -132,7 +132,7 @@ closed reason labels are maroon `closed: *`.
|
|
132
132
|
|
133
133
|
* **duplicate** - This is a duplicate of an existing bug. The comments must
|
134
134
|
reference the existing issue.
|
135
|
-
* **
|
135
|
+
* **abandoned** - This is an issue/pull request that has aged off, is no
|
136
136
|
longer applicable or similar.
|
137
137
|
* **declined** - An issue that won't be fixed/implemented or a pull request
|
138
138
|
that is not accepted.
|
data/Rakefile
CHANGED
@@ -7,12 +7,12 @@ require 'psych'
|
|
7
7
|
|
8
8
|
desc "Setup Rubygems dev environment"
|
9
9
|
task :setup do
|
10
|
-
sh "ruby", "bundler/spec/support/bundle.rb", "install", "--gemfile=dev_gems.rb"
|
10
|
+
sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "install", "--gemfile=dev_gems.rb"
|
11
11
|
end
|
12
12
|
|
13
13
|
desc "Update Rubygems dev environment"
|
14
14
|
task :update do |_, args|
|
15
|
-
sh "ruby", "bundler/spec/support/bundle.rb", "update", *args, "--gemfile=dev_gems.rb"
|
15
|
+
sh "ruby", "-I", "lib", "bundler/spec/support/bundle.rb", "update", *args, "--gemfile=dev_gems.rb"
|
16
16
|
end
|
17
17
|
|
18
18
|
desc "Update the locked bundler version in dev environment"
|
data/bundler/CHANGELOG.md
CHANGED
@@ -1,10 +1,34 @@
|
|
1
|
+
# 2.2.17 (May 5, 2021)
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
- Improve authentication required error message to include an alternative using `ENV` [#4565](https://github.com/rubygems/rubygems/pull/4565)
|
6
|
+
- Discard partial range responses without etag [#4563](https://github.com/rubygems/rubygems/pull/4563)
|
7
|
+
- Fix configuring ENV for a gem server with a name including dashes [#4571](https://github.com/rubygems/rubygems/pull/4571)
|
8
|
+
- Redact credentials from `bundle env` and `bundle config` [#4566](https://github.com/rubygems/rubygems/pull/4566)
|
9
|
+
- Redact all sources in verbose mode [#4564](https://github.com/rubygems/rubygems/pull/4564)
|
10
|
+
- Improve `bundle pristine` error if `BUNDLE_GEMFILE` does not exist [#4536](https://github.com/rubygems/rubygems/pull/4536)
|
11
|
+
- [CurrentRuby] Add 3.0 as a known minor [#4535](https://github.com/rubygems/rubygems/pull/4535)
|
12
|
+
- Prefer File.read instead of IO.read [#4530](https://github.com/rubygems/rubygems/pull/4530)
|
13
|
+
- Add space after open curly bracket in Gemfile and gems.rb template [#4518](https://github.com/rubygems/rubygems/pull/4518)
|
14
|
+
|
15
|
+
## Bug fixes:
|
16
|
+
|
17
|
+
- Make sure specs are fetched from the right source when materializing [#4562](https://github.com/rubygems/rubygems/pull/4562)
|
18
|
+
- Fix `bundle cache` with an up-to-date lockfile and specs not already installed [#4554](https://github.com/rubygems/rubygems/pull/4554)
|
19
|
+
- Ignore `deployment` setting in inline mode [#4523](https://github.com/rubygems/rubygems/pull/4523)
|
20
|
+
|
21
|
+
## Performance:
|
22
|
+
|
23
|
+
- Don't materialize resolutions when not necessary [#4556](https://github.com/rubygems/rubygems/pull/4556)
|
24
|
+
|
1
25
|
# 2.2.16 (April 8, 2021)
|
2
26
|
|
3
27
|
## Enhancements:
|
4
28
|
|
5
29
|
- Add `--github-username` option and config to `bundle gem` [#3687](https://github.com/rubygems/rubygems/pull/3687)
|
6
30
|
- Bump vendored `tmpdir` library copy [#4506](https://github.com/rubygems/rubygems/pull/4506)
|
7
|
-
- Add `rake build:checksum` task to build
|
31
|
+
- Add `rake build:checksum` task to build checksums for a gem package [#4156](https://github.com/rubygems/rubygems/pull/4156)
|
8
32
|
- Enable bundler-cache for GitHub Actions template [#4498](https://github.com/rubygems/rubygems/pull/4498)
|
9
33
|
- Improve `bundle info` error when gem is on a "disabled" group [#4492](https://github.com/rubygems/rubygems/pull/4492)
|
10
34
|
- Small tweak to yank message [#4494](https://github.com/rubygems/rubygems/pull/4494)
|
@@ -472,7 +496,7 @@
|
|
472
496
|
- Ignore `frozen` setting in inline mode ([#7125](https://github.com/rubygems/bundler/pull/7125))
|
473
497
|
- Fix incorrect "bundler attempted to update GEM but version stayed the same" message when updating git sourced gems ([#6325](https://github.com/rubygems/bundler/pull/6325))
|
474
498
|
- Don't check for existence of a writable home directory if `BUNDLE_USER_HOME` is set ([#6885](https://github.com/rubygems/bundler/pull/6885))
|
475
|
-
- Fix error message when server would respond to a bad username/password
|
499
|
+
- Fix error message when server would respond to a bad username/password request with a 401 ([#6928](https://github.com/rubygems/bundler/pull/6928))
|
476
500
|
- Fix `bundle outdated` pluralization when multiple groups are requested ([#7063](https://github.com/rubygems/bundler/pull/7063))
|
477
501
|
- Fix `bundle install` not updating conservatively when gemspec is changed ([#7143](https://github.com/rubygems/bundler/pull/7143))
|
478
502
|
- Fix `bundle exec` not respecting custom process titles inside scripts ([#7140](https://github.com/rubygems/bundler/pull/7140))
|
@@ -2117,7 +2141,7 @@ Changes
|
|
2117
2141
|
- fix Bundler.which for directories ([#2697](https://github.com/rubygems/bundler/issues/2697), @rhysd)
|
2118
2142
|
- properly require `Capistrano::Version` ([#2690](https://github.com/rubygems/bundler/issues/2690), @steveklabnik)
|
2119
2143
|
- search for git.exe and git
|
2120
|
-
- fix the bug that downloads every spec when API fetcher
|
2144
|
+
- fix the bug that downloads every spec when API fetcher encounters an error
|
2121
2145
|
- only retry network requests
|
2122
2146
|
|
2123
2147
|
# 1.4.0.rc.1 (September 29, 2013)
|
@@ -2741,7 +2765,7 @@ Changes
|
|
2741
2765
|
|
2742
2766
|
- Implement `to_ary` to avoid calls to method_missing (@tenderlove, [#1274](https://github.com/rubygems/bundler/issues/1274))
|
2743
2767
|
- bundle clean removes old .gem files (@cldwalker, [#1293](https://github.com/rubygems/bundler/issues/1293))
|
2744
|
-
-
|
2768
|
+
- Correctly identify missing child dependency in error message
|
2745
2769
|
- Run pre-install, post-build, and post-install gem hooks for git gems (@warhammerkid, [#1120](https://github.com/rubygems/bundler/issues/1120))
|
2746
2770
|
- create Gemfile.lock for empty Gemfile ([#1218](https://github.com/rubygems/bundler/issues/1218))
|
2747
2771
|
|
@@ -2892,7 +2916,7 @@ Changes
|
|
2892
2916
|
|
2893
2917
|
- Performance fix for MRI 1.9 (@efficientcloud, [#1288](https://github.com/rubygems/bundler/issues/1288))
|
2894
2918
|
- Shortcuts (like `bundle i`) for all commands (@amatsuda)
|
2895
|
-
-
|
2919
|
+
- Correctly identify missing child dependency in error message
|
2896
2920
|
|
2897
2921
|
## Bug fixes:
|
2898
2922
|
|
@@ -3128,7 +3152,7 @@ Changes
|
|
3128
3152
|
|
3129
3153
|
- Various bugfixes to the built-in rake helpers
|
3130
3154
|
- Fix a bug where shortrefs weren't unique enough and were
|
3131
|
-
|
3155
|
+
therefore colliding
|
3132
3156
|
- Fix a small bug involving checking whether a local git
|
3133
3157
|
clone is up to date
|
3134
3158
|
- Correctly handle explicit '=' dependencies with gems
|
@@ -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 = "2021-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2021-05-05".freeze
|
8
|
+
@git_commit_sha = "69cbd6e10e".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
data/bundler/lib/bundler/cli.rb
CHANGED
@@ -504,8 +504,8 @@ module Bundler
|
|
504
504
|
By default, setting a configuration value sets it for all projects
|
505
505
|
on the machine.
|
506
506
|
|
507
|
-
If a global setting is
|
508
|
-
will show the current value, as well as any
|
507
|
+
If a global setting is superseded by local configuration, this command
|
508
|
+
will show the current value, as well as any superseded values and
|
509
509
|
where they were specified.
|
510
510
|
D
|
511
511
|
require_relative "cli/config"
|
@@ -94,6 +94,8 @@ module Bundler
|
|
94
94
|
end
|
95
95
|
|
96
96
|
def self.ensure_all_gems_in_lockfile!(names, locked_gems = Bundler.locked_gems)
|
97
|
+
return unless locked_gems
|
98
|
+
|
97
99
|
locked_names = locked_gems.specs.map(&:name).uniq
|
98
100
|
names.-(locked_names).each do |g|
|
99
101
|
raise GemNotFound, gem_not_found_message(g, locked_names)
|
@@ -50,16 +50,20 @@ module Bundler
|
|
50
50
|
|
51
51
|
content = response.body
|
52
52
|
|
53
|
-
|
53
|
+
etag = (response["ETag"] || "").gsub(%r{\AW/}, "")
|
54
|
+
correct_response = SharedHelpers.filesystem_access(local_temp_path) do
|
54
55
|
if response.is_a?(Net::HTTPPartialContent) && local_temp_path.size.nonzero?
|
55
56
|
local_temp_path.open("a") {|f| f << slice_body(content, 1..-1) }
|
57
|
+
|
58
|
+
etag_for(local_temp_path) == etag
|
56
59
|
else
|
57
60
|
local_temp_path.open("wb") {|f| f << content }
|
61
|
+
|
62
|
+
etag.length.zero? || etag_for(local_temp_path) == etag
|
58
63
|
end
|
59
64
|
end
|
60
65
|
|
61
|
-
|
62
|
-
if etag.length.zero? || etag_for(local_temp_path) == etag
|
66
|
+
if correct_response
|
63
67
|
SharedHelpers.filesystem_access(local_path) do
|
64
68
|
FileUtils.mv(local_temp_path, local_path)
|
65
69
|
end
|
@@ -92,11 +96,11 @@ module Bundler
|
|
92
96
|
|
93
97
|
def checksum_for_file(path)
|
94
98
|
return nil unless path.file?
|
95
|
-
# This must use
|
99
|
+
# This must use File.read instead of Digest.file().hexdigest
|
96
100
|
# because we need to preserve \n line endings on windows when calculating
|
97
101
|
# the checksum
|
98
102
|
SharedHelpers.filesystem_access(path, :read) do
|
99
|
-
SharedHelpers.digest(:MD5).hexdigest(
|
103
|
+
SharedHelpers.digest(:MD5).hexdigest(File.read(path))
|
100
104
|
end
|
101
105
|
end
|
102
106
|
end
|
@@ -161,16 +161,14 @@ module Bundler
|
|
161
161
|
end
|
162
162
|
|
163
163
|
def resolve_with_cache!
|
164
|
-
raise "Specs already loaded" if @specs
|
165
164
|
sources.cached!
|
166
|
-
|
165
|
+
resolve
|
167
166
|
end
|
168
167
|
|
169
168
|
def resolve_remotely!
|
170
|
-
return if @specs
|
171
169
|
@remote = true
|
172
170
|
sources.remote!
|
173
|
-
|
171
|
+
resolve
|
174
172
|
end
|
175
173
|
|
176
174
|
# For given dependency list returns a SpecSet with Gemspec of all the required
|
@@ -47,7 +47,8 @@ module Bundler
|
|
47
47
|
remote_uri = filter_uri(remote_uri)
|
48
48
|
super "Authentication is required for #{remote_uri}.\n" \
|
49
49
|
"Please supply credentials for this source. You can do this by running:\n" \
|
50
|
-
"
|
50
|
+
"`bundle config set --global #{remote_uri} username:password`\n" \
|
51
|
+
"or by storing the credentials in the `#{Settings.key_for(remote_uri)}` environment variable"
|
51
52
|
end
|
52
53
|
end
|
53
54
|
# This error is raised if HTTP authentication is provided, but incorrect.
|
@@ -14,8 +14,10 @@ module Bundler
|
|
14
14
|
def fetch(uri, headers = {}, counter = 0)
|
15
15
|
raise HTTPError, "Too many redirects" if counter >= redirect_limit
|
16
16
|
|
17
|
+
filtered_uri = URICredentialsFilter.credential_filtered_uri(uri)
|
18
|
+
|
17
19
|
response = request(uri, headers)
|
18
|
-
Bundler.ui.debug("HTTP #{response.code} #{response.message} #{
|
20
|
+
Bundler.ui.debug("HTTP #{response.code} #{response.message} #{filtered_uri}")
|
19
21
|
|
20
22
|
case response
|
21
23
|
when Net::HTTPSuccess, Net::HTTPNotModified
|
@@ -40,7 +42,7 @@ module Bundler
|
|
40
42
|
raise BadAuthenticationError, uri.host if uri.userinfo
|
41
43
|
raise AuthenticationRequiredError, uri.host
|
42
44
|
when Net::HTTPNotFound
|
43
|
-
raise FallbackError, "Net::HTTPNotFound: #{
|
45
|
+
raise FallbackError, "Net::HTTPNotFound: #{filtered_uri}"
|
44
46
|
else
|
45
47
|
raise HTTPError, "#{response.class}#{": #{response.body}" unless response.body.empty?}"
|
46
48
|
end
|
@@ -49,7 +51,9 @@ module Bundler
|
|
49
51
|
def request(uri, headers)
|
50
52
|
validate_uri_scheme!(uri)
|
51
53
|
|
52
|
-
|
54
|
+
filtered_uri = URICredentialsFilter.credential_filtered_uri(uri)
|
55
|
+
|
56
|
+
Bundler.ui.debug "HTTP GET #{filtered_uri}"
|
53
57
|
req = Net::HTTP::Get.new uri.request_uri, headers
|
54
58
|
if uri.user
|
55
59
|
user = CGI.unescape(uri.user)
|
@@ -69,7 +73,7 @@ module Bundler
|
|
69
73
|
raise NetworkDownError, "Could not reach host #{uri.host}. Check your network " \
|
70
74
|
"connection and try again."
|
71
75
|
else
|
72
|
-
raise HTTPError, "Network error while fetching #{
|
76
|
+
raise HTTPError, "Network error while fetching #{filtered_uri}" \
|
73
77
|
" (#{e})"
|
74
78
|
end
|
75
79
|
end
|
@@ -128,7 +128,7 @@ module Bundler
|
|
128
128
|
# evaluates a gemfile to remove the specified gem
|
129
129
|
# from it.
|
130
130
|
def remove_deps(gemfile_path)
|
131
|
-
initial_gemfile =
|
131
|
+
initial_gemfile = File.readlines(gemfile_path)
|
132
132
|
|
133
133
|
Bundler.ui.info "Removing gems from #{gemfile_path}"
|
134
134
|
|
@@ -181,7 +181,7 @@ module Bundler
|
|
181
181
|
patterns = /gem\s+(['"])#{Regexp.union(gems)}\1|gem\s*\((['"])#{Regexp.union(gems)}\2\)/
|
182
182
|
new_gemfile = []
|
183
183
|
multiline_removal = false
|
184
|
-
|
184
|
+
File.readlines(gemfile_path).each do |line|
|
185
185
|
match_data = line.match(patterns)
|
186
186
|
if match_data && is_not_within_comment?(line, match_data)
|
187
187
|
multiline_removal = line.rstrip.end_with?(",")
|
@@ -52,7 +52,7 @@ def gemfile(install = false, options = {}, &gemfile)
|
|
52
52
|
builder.instance_eval(&gemfile)
|
53
53
|
builder.check_primary_source_safety
|
54
54
|
|
55
|
-
Bundler.settings.temporary(:frozen => false) do
|
55
|
+
Bundler.settings.temporary(:deployment => false, :frozen => false) do
|
56
56
|
definition = builder.to_definition(nil, true)
|
57
57
|
def definition.lock(*); end
|
58
58
|
definition.validate_runtime!
|
@@ -199,7 +199,7 @@ The following is a list of all configuration keys and their purpose\. You can le
|
|
199
199
|
\fBfrozen\fR (\fBBUNDLE_FROZEN\fR): Disallow changes to the \fBGemfile\fR\. When the \fBGemfile\fR is changed and the lockfile has not been updated, running Bundler commands will be blocked\. Defaults to \fBtrue\fR when \fB\-\-deployment\fR is used\.
|
200
200
|
.
|
201
201
|
.IP "\(bu" 4
|
202
|
-
\fBgem\.github_username\fR (\fBBUNDLE_GEM__GITHUB_USERNAME\fR): Sets a GitHub username or organization to be used in \fBREADME\fR file when you create a new gem via \fBbundle gem\fR command\. It can be
|
202
|
+
\fBgem\.github_username\fR (\fBBUNDLE_GEM__GITHUB_USERNAME\fR): Sets a GitHub username or organization to be used in \fBREADME\fR file when you create a new gem via \fBbundle gem\fR command\. It can be overridden by passing an explicit \fB\-\-github\-username\fR flag to \fBbundle gem\fR\.
|
203
203
|
.
|
204
204
|
.IP "\(bu" 4
|
205
205
|
\fBgem\.push_key\fR (\fBBUNDLE_GEM__PUSH_KEY\fR): Sets the \fB\-\-key\fR parameter for \fBgem push\fR when using the \fBrake release\fR command with a private gemstash server\.
|
@@ -470,6 +470,23 @@ export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x\-oauth\-basic
|
|
470
470
|
.
|
471
471
|
.IP "" 0
|
472
472
|
.
|
473
|
+
.P
|
474
|
+
Note that any configured credentials will be redacted by informative commands such as \fBbundle config list\fR or \fBbundle config get\fR, unless you use the \fB\-\-parseable\fR flag\. This is to avoid unintentially leaking credentials when copy\-pasting bundler output\.
|
475
|
+
.
|
476
|
+
.P
|
477
|
+
Also note that to guarantee a sane mapping between valid environment variable names and valid host names, bundler makes the following transformations:
|
478
|
+
.
|
479
|
+
.IP "\(bu" 4
|
480
|
+
Any \fB\-\fR characters in a host name are mapped to a triple dash (\fB___\fR) in the corresponding enviroment variable\.
|
481
|
+
.
|
482
|
+
.IP "\(bu" 4
|
483
|
+
Any \fB\.\fR characters in a host name are mapped to a double dash (\fB__\fR) in the corresponding environment variable\.
|
484
|
+
.
|
485
|
+
.IP "" 0
|
486
|
+
.
|
487
|
+
.P
|
488
|
+
This means that if you have a gem server named \fBmy\.gem\-host\.com\fR, you\'ll need to use the \fBBUNDLE_MY__GEM___HOST__COM\fR variable to configure credentials for it through ENV\.
|
489
|
+
.
|
473
490
|
.SH "CONFIGURE BUNDLER DIRECTORIES"
|
474
491
|
Bundler\'s home, config, cache and plugin directories are able to be configured through environment variables\. The default location for Bundler\'s home directory is \fB~/\.bundle\fR, which all directories inherit from by default\. The following outlines the available environment variables and their default values
|
475
492
|
.
|
@@ -196,7 +196,7 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
196
196
|
Defaults to `true` when `--deployment` is used.
|
197
197
|
* `gem.github_username` (`BUNDLE_GEM__GITHUB_USERNAME`):
|
198
198
|
Sets a GitHub username or organization to be used in `README` file when you
|
199
|
-
create a new gem via `bundle gem` command. It can be
|
199
|
+
create a new gem via `bundle gem` command. It can be overridden by passing an
|
200
200
|
explicit `--github-username` flag to `bundle gem`.
|
201
201
|
* `gem.push_key` (`BUNDLE_GEM__PUSH_KEY`):
|
202
202
|
Sets the `--key` parameter for `gem push` when using the `rake release`
|
@@ -376,6 +376,23 @@ where you can use personal OAuth tokens:
|
|
376
376
|
|
377
377
|
export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x-oauth-basic
|
378
378
|
|
379
|
+
Note that any configured credentials will be redacted by informative commands
|
380
|
+
such as `bundle config list` or `bundle config get`, unless you use the
|
381
|
+
`--parseable` flag. This is to avoid unintentially leaking credentials when
|
382
|
+
copy-pasting bundler output.
|
383
|
+
|
384
|
+
Also note that to guarantee a sane mapping between valid environment variable
|
385
|
+
names and valid host names, bundler makes the following transformations:
|
386
|
+
|
387
|
+
* Any `-` characters in a host name are mapped to a triple dash (`___`) in the
|
388
|
+
corresponding enviroment variable.
|
389
|
+
|
390
|
+
* Any `.` characters in a host name are mapped to a double dash (`__`) in the
|
391
|
+
corresponding environment variable.
|
392
|
+
|
393
|
+
This means that if you have a gem server named `my.gem-host.com`, you'll need to
|
394
|
+
use the `BUNDLE_MY__GEM___HOST__COM` variable to configure credentials for it
|
395
|
+
through ENV.
|
379
396
|
|
380
397
|
## CONFIGURE BUNDLER DIRECTORIES
|
381
398
|
|
@@ -164,7 +164,7 @@ module Bundler
|
|
164
164
|
end
|
165
165
|
|
166
166
|
# To be called from Cli class to pass the command and argument to
|
167
|
-
#
|
167
|
+
# appropriate plugin class
|
168
168
|
def exec_command(command, args)
|
169
169
|
raise UndefinedCommandError, "Command `#{command}` not found" unless command? command
|
170
170
|
|
@@ -183,7 +183,7 @@ module Bundler
|
|
183
183
|
!index.source_plugin(name.to_s).nil?
|
184
184
|
end
|
185
185
|
|
186
|
-
# @return [Class] that handles the source. The
|
186
|
+
# @return [Class] that handles the source. The class includes API::Source
|
187
187
|
def source(name)
|
188
188
|
raise UnknownSourceError, "Source #{name} not found" unless source? name
|
189
189
|
|
@@ -49,7 +49,7 @@ module Bundler
|
|
49
49
|
raise e
|
50
50
|
end
|
51
51
|
return true unless name
|
52
|
-
Bundler.ui.info "" unless Bundler.ui.debug? # Add new line
|
52
|
+
Bundler.ui.info "" unless Bundler.ui.debug? # Add new line in case dots preceded this
|
53
53
|
Bundler.ui.warn "Retrying #{name} due to error (#{current_run.next}/#{total_runs}): #{e.class} #{e.message}", Bundler.ui.debug?
|
54
54
|
end
|
55
55
|
|
@@ -13,6 +13,7 @@ module Bundler
|
|
13
13
|
auto_install
|
14
14
|
cache_all
|
15
15
|
cache_all_platforms
|
16
|
+
clean
|
16
17
|
default_install_uses_path
|
17
18
|
deployment
|
18
19
|
deployment_means_frozen
|
@@ -26,11 +27,14 @@ module Bundler
|
|
26
27
|
force_ruby_platform
|
27
28
|
forget_cli_options
|
28
29
|
frozen
|
30
|
+
gem.changelog
|
29
31
|
gem.coc
|
30
32
|
gem.mit
|
33
|
+
git.allow_insecure
|
31
34
|
global_gem_cache
|
32
35
|
ignore_messages
|
33
36
|
init_gems_rb
|
37
|
+
inline
|
34
38
|
no_install
|
35
39
|
no_prune
|
36
40
|
path_relative_to_cwd
|
@@ -60,6 +64,22 @@ module Bundler
|
|
60
64
|
without
|
61
65
|
].freeze
|
62
66
|
|
67
|
+
STRING_KEYS = %w[
|
68
|
+
bin
|
69
|
+
cache_path
|
70
|
+
console
|
71
|
+
gem.ci
|
72
|
+
gem.github_username
|
73
|
+
gem.linter
|
74
|
+
gem.rubocop
|
75
|
+
gem.test
|
76
|
+
gemfile
|
77
|
+
path
|
78
|
+
shebang
|
79
|
+
system_bindir
|
80
|
+
trust-policy
|
81
|
+
].freeze
|
82
|
+
|
63
83
|
DEFAULT_CONFIG = {
|
64
84
|
"BUNDLE_SILENCE_DEPRECATIONS" => false,
|
65
85
|
"BUNDLE_DISABLE_VERSION_CHECK" => true,
|
@@ -125,8 +145,8 @@ module Bundler
|
|
125
145
|
keys = @temporary.keys | @global_config.keys | @local_config.keys | @env_config.keys
|
126
146
|
|
127
147
|
keys.map do |key|
|
128
|
-
key.sub(/^BUNDLE_/, "").gsub(/__/, ".").downcase
|
129
|
-
end
|
148
|
+
key.sub(/^BUNDLE_/, "").gsub(/___/, "-").gsub(/__/, ".").downcase
|
149
|
+
end.sort
|
130
150
|
end
|
131
151
|
|
132
152
|
def local_overrides
|
@@ -172,19 +192,19 @@ module Bundler
|
|
172
192
|
locations = []
|
173
193
|
|
174
194
|
if value = @temporary[key]
|
175
|
-
locations << "Set for the current command: #{
|
195
|
+
locations << "Set for the current command: #{printable_value(value, exposed_key).inspect}"
|
176
196
|
end
|
177
197
|
|
178
198
|
if value = @local_config[key]
|
179
|
-
locations << "Set for your local app (#{local_config_file}): #{
|
199
|
+
locations << "Set for your local app (#{local_config_file}): #{printable_value(value, exposed_key).inspect}"
|
180
200
|
end
|
181
201
|
|
182
202
|
if value = @env_config[key]
|
183
|
-
locations << "Set via #{key}: #{
|
203
|
+
locations << "Set via #{key}: #{printable_value(value, exposed_key).inspect}"
|
184
204
|
end
|
185
205
|
|
186
206
|
if value = @global_config[key]
|
187
|
-
locations << "Set for the current user (#{global_config_file}): #{
|
207
|
+
locations << "Set for the current user (#{global_config_file}): #{printable_value(value, exposed_key).inspect}"
|
188
208
|
end
|
189
209
|
|
190
210
|
return ["You have not configured a value for `#{exposed_key}`"] if locations.empty?
|
@@ -276,9 +296,7 @@ module Bundler
|
|
276
296
|
end
|
277
297
|
|
278
298
|
def key_for(key)
|
279
|
-
|
280
|
-
key = key.to_s.gsub(".", "__").upcase
|
281
|
-
"BUNDLE_#{key}"
|
299
|
+
self.class.key_for(key)
|
282
300
|
end
|
283
301
|
|
284
302
|
private
|
@@ -313,6 +331,10 @@ module Bundler
|
|
313
331
|
BOOL_KEYS.include?(name.to_s) || BOOL_KEYS.include?(parent_setting_for(name.to_s))
|
314
332
|
end
|
315
333
|
|
334
|
+
def is_string(name)
|
335
|
+
STRING_KEYS.include?(name.to_s) || name.to_s.start_with?("local.") || name.to_s.start_with?("mirror.") || name.to_s.start_with?("build.")
|
336
|
+
end
|
337
|
+
|
316
338
|
def to_bool(value)
|
317
339
|
case value
|
318
340
|
when nil, /\A(false|f|no|n|0|)\z/i, false
|
@@ -330,6 +352,14 @@ module Bundler
|
|
330
352
|
ARRAY_KEYS.include?(key.to_s)
|
331
353
|
end
|
332
354
|
|
355
|
+
def is_credential(key)
|
356
|
+
key == "gem.push_key"
|
357
|
+
end
|
358
|
+
|
359
|
+
def is_userinfo(value)
|
360
|
+
value.include?(":")
|
361
|
+
end
|
362
|
+
|
333
363
|
def to_array(value)
|
334
364
|
return [] unless value
|
335
365
|
value.split(":").map(&:to_sym)
|
@@ -376,6 +406,21 @@ module Bundler
|
|
376
406
|
end
|
377
407
|
end
|
378
408
|
|
409
|
+
def printable_value(value, key)
|
410
|
+
converted = converted_value(value, key)
|
411
|
+
return converted unless converted.is_a?(String)
|
412
|
+
|
413
|
+
if is_string(key)
|
414
|
+
converted
|
415
|
+
elsif is_credential(key)
|
416
|
+
"[REDACTED]"
|
417
|
+
elsif is_userinfo(converted)
|
418
|
+
converted.gsub(/:.*$/, ":[REDACTED]")
|
419
|
+
else
|
420
|
+
converted
|
421
|
+
end
|
422
|
+
end
|
423
|
+
|
379
424
|
def global_config_file
|
380
425
|
if ENV["BUNDLE_CONFIG"] && !ENV["BUNDLE_CONFIG"].empty?
|
381
426
|
Pathname.new(ENV["BUNDLE_CONFIG"])
|
@@ -415,6 +460,12 @@ module Bundler
|
|
415
460
|
\z
|
416
461
|
/ix.freeze
|
417
462
|
|
463
|
+
def self.key_for(key)
|
464
|
+
key = normalize_uri(key).to_s if key.is_a?(String) && /https?:/ =~ key
|
465
|
+
key = key.to_s.gsub(".", "__").gsub("-", "___").upcase
|
466
|
+
"BUNDLE_#{key}"
|
467
|
+
end
|
468
|
+
|
418
469
|
# TODO: duplicates Rubygems#normalize_uri
|
419
470
|
# TODO: is this the correct place to validate mirror URIs?
|
420
471
|
def self.normalize_uri(uri)
|
@@ -423,11 +423,11 @@ module Bundler
|
|
423
423
|
def fetch_names(fetchers, dependency_names, index, override_dupes)
|
424
424
|
fetchers.each do |f|
|
425
425
|
if dependency_names
|
426
|
-
Bundler.ui.info "Fetching gem metadata from #{f.uri}", Bundler.ui.debug?
|
426
|
+
Bundler.ui.info "Fetching gem metadata from #{URICredentialsFilter.credential_filtered_uri(f.uri)}", Bundler.ui.debug?
|
427
427
|
index.use f.specs_with_retry(dependency_names, self), override_dupes
|
428
428
|
Bundler.ui.info "" unless Bundler.ui.debug? # new line now that the dots are over
|
429
429
|
else
|
430
|
-
Bundler.ui.info "Fetching source index from #{f.uri}"
|
430
|
+
Bundler.ui.info "Fetching source index from #{URICredentialsFilter.credential_filtered_uri(f.uri)}"
|
431
431
|
index.use f.specs_with_retry(nil, self), override_dupes
|
432
432
|
end
|
433
433
|
end
|
@@ -78,11 +78,17 @@ module Bundler
|
|
78
78
|
|
79
79
|
def materialize(deps, missing_specs = nil)
|
80
80
|
materialized = self.for(deps, [], false, true, !missing_specs).to_a
|
81
|
-
|
81
|
+
|
82
|
+
materialized.group_by(&:source).each do |source, specs|
|
83
|
+
next unless specs.any?{|s| s.is_a?(LazySpecification) }
|
84
|
+
|
85
|
+
source.local!
|
86
|
+
names = -> { specs.map(&:name).uniq }
|
87
|
+
source.double_check_for(names)
|
88
|
+
end
|
89
|
+
|
82
90
|
materialized.map! do |s|
|
83
91
|
next s unless s.is_a?(LazySpecification)
|
84
|
-
s.source.dependency_names = deps if s.source.respond_to?(:dependency_names=)
|
85
|
-
s.source.local!
|
86
92
|
spec = s.__materialize__
|
87
93
|
unless spec
|
88
94
|
unless missing_specs
|
@@ -99,12 +105,17 @@ module Bundler
|
|
99
105
|
# This is in contrast to how for does platform filtering (and specifically different from how `materialize` calls `for` only for the current platform)
|
100
106
|
# @return [Array<Gem::Specification>]
|
101
107
|
def materialized_for_all_platforms
|
102
|
-
|
108
|
+
@specs.group_by(&:source).each do |source, specs|
|
109
|
+
next unless specs.any?{|s| s.is_a?(LazySpecification) }
|
110
|
+
|
111
|
+
source.local!
|
112
|
+
source.remote!
|
113
|
+
names = -> { specs.map(&:name).uniq }
|
114
|
+
source.double_check_for(names)
|
115
|
+
end
|
116
|
+
|
103
117
|
@specs.map do |s|
|
104
118
|
next s unless s.is_a?(LazySpecification)
|
105
|
-
s.source.dependency_names = names if s.source.respond_to?(:dependency_names=)
|
106
|
-
s.source.local!
|
107
|
-
s.source.remote!
|
108
119
|
spec = s.__materialize__
|
109
120
|
raise GemNotFound, "Could not find #{s.full_name} in any of the sources" unless spec
|
110
121
|
spec
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Bundler::Molinillo
|
4
|
-
# Provides information about
|
4
|
+
# Provides information about specifications and dependencies to the resolver,
|
5
5
|
# allowing the {Resolver} class to remain generic while still providing power
|
6
6
|
# and flexibility.
|
7
7
|
#
|
@@ -252,7 +252,7 @@ class Bundler::Thor
|
|
252
252
|
# flag<Regexp|String>:: the regexp or string to be replaced
|
253
253
|
# replacement<String>:: the replacement, can be also given as a block
|
254
254
|
# config<Hash>:: give :verbose => false to not log the status, and
|
255
|
-
# :force => true, to force the replacement
|
255
|
+
# :force => true, to force the replacement regardless of runner behavior.
|
256
256
|
#
|
257
257
|
# ==== Example
|
258
258
|
#
|
data/lib/rubygems.rb
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
require 'rbconfig'
|
9
9
|
|
10
10
|
module Gem
|
11
|
-
VERSION = "3.2.
|
11
|
+
VERSION = "3.2.17".freeze
|
12
12
|
end
|
13
13
|
|
14
14
|
# Must be first since it unloads the prelude from 1.9.2
|
@@ -626,7 +626,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
626
626
|
# Try requiring the gem version *or* stdlib version of psych.
|
627
627
|
require 'psych'
|
628
628
|
rescue ::LoadError
|
629
|
-
# If we can't load psych,
|
629
|
+
# If we can't load psych, that's fine, go on.
|
630
630
|
else
|
631
631
|
# If 'yaml' has already been required, then we have to
|
632
632
|
# be sure to switch it over to the newly loaded psych.
|
@@ -813,7 +813,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
813
813
|
##
|
814
814
|
# Safely write a file in binary mode on all platforms.
|
815
815
|
def self.write_binary(path, data)
|
816
|
-
open(path, 'wb') do |io|
|
816
|
+
File.open(path, 'wb') do |io|
|
817
817
|
begin
|
818
818
|
io.flock(File::LOCK_EX)
|
819
819
|
rescue *WRITE_BINARY_ERRORS
|
@@ -824,7 +824,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
824
824
|
if Thread.main != Thread.current
|
825
825
|
raise
|
826
826
|
else
|
827
|
-
open(path, 'wb') do |io|
|
827
|
+
File.open(path, 'wb') do |io|
|
828
828
|
io.write data
|
829
829
|
end
|
830
830
|
end
|
@@ -127,7 +127,7 @@ You can use `i` command instead of `install`.
|
|
127
127
|
end
|
128
128
|
|
129
129
|
def usage # :nodoc:
|
130
|
-
"#{program_name} GEMNAME [GEMNAME ...]
|
130
|
+
"#{program_name} [options] GEMNAME [GEMNAME ...] -- --build-flags"
|
131
131
|
end
|
132
132
|
|
133
133
|
def check_install_dir # :nodoc:
|
@@ -24,7 +24,7 @@ data you will need to change them immediately and yank your gem.
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def usage # :nodoc:
|
27
|
-
"#{program_name}
|
27
|
+
"#{program_name} -v VERSION [-p PLATFORM] [--key KEY_NAME] [--host HOST] GEM"
|
28
28
|
end
|
29
29
|
|
30
30
|
def initialize
|
data/lib/rubygems/defaults.rb
CHANGED
data/lib/rubygems/deprecate.rb
CHANGED
@@ -60,12 +60,13 @@ module Gem::Deprecate
|
|
60
60
|
target = klass ? "#{self}." : "#{self.class}#"
|
61
61
|
msg = [ "NOTE: #{target}#{name} is deprecated",
|
62
62
|
repl == :none ? " with no replacement" : "; use #{repl} instead",
|
63
|
-
". It will be removed on or after %4d-%02d
|
63
|
+
". It will be removed on or after %4d-%02d." % [year, month],
|
64
64
|
"\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
|
65
65
|
]
|
66
66
|
warn "#{msg.join}." unless Gem::Deprecate.skip
|
67
67
|
send old, *args, &block
|
68
68
|
end
|
69
|
+
ruby2_keywords name if respond_to?(:ruby2_keywords, true)
|
69
70
|
end
|
70
71
|
end
|
71
72
|
|
@@ -90,6 +91,7 @@ module Gem::Deprecate
|
|
90
91
|
warn "#{msg.join}." unless Gem::Deprecate.skip
|
91
92
|
send old, *args, &block
|
92
93
|
end
|
94
|
+
ruby2_keywords name if respond_to?(:ruby2_keywords, true)
|
93
95
|
end
|
94
96
|
end
|
95
97
|
|
data/lib/rubygems/indexer.rb
CHANGED
@@ -136,7 +136,7 @@ class Gem::Indexer
|
|
136
136
|
say "Generating #{name} index"
|
137
137
|
|
138
138
|
Gem.time "Generated #{name} index" do
|
139
|
-
open(file, 'wb') do |io|
|
139
|
+
File.open(file, 'wb') do |io|
|
140
140
|
specs = index.map do |*spec|
|
141
141
|
# We have to splat here because latest_specs is an array, while the
|
142
142
|
# others are hashes.
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Gem::Resolver::Molinillo
|
4
|
-
# Provides information about
|
4
|
+
# Provides information about specifications and dependencies to the resolver,
|
5
5
|
# allowing the {Resolver} class to remain generic while still providing power
|
6
6
|
# and flexibility.
|
7
7
|
#
|
@@ -76,7 +76,7 @@ class Gem::FakeFetcher
|
|
76
76
|
|
77
77
|
def cache_update_path(uri, path = nil, update = true)
|
78
78
|
if data = fetch_path(uri)
|
79
|
-
open(path, 'wb') {|io| io.write data } if path and update
|
79
|
+
File.open(path, 'wb') {|io| io.write data } if path and update
|
80
80
|
data
|
81
81
|
else
|
82
82
|
Gem.read_binary(path) if path
|
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.17"
|
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
|
|
@@ -49,6 +49,22 @@ class TestDeprecate < Gem::TestCase
|
|
49
49
|
@message = "bar"
|
50
50
|
end
|
51
51
|
rubygems_deprecate :foo, :bar
|
52
|
+
|
53
|
+
def foo_arg(msg)
|
54
|
+
@message = "foo" + msg
|
55
|
+
end
|
56
|
+
def bar_arg(msg)
|
57
|
+
@message = "bar" + msg
|
58
|
+
end
|
59
|
+
rubygems_deprecate :foo_arg, :bar_arg
|
60
|
+
|
61
|
+
def foo_kwarg(message:)
|
62
|
+
@message = "foo" + message
|
63
|
+
end
|
64
|
+
def bar_kwarg(message:)
|
65
|
+
@message = "bar" + message
|
66
|
+
end
|
67
|
+
rubygems_deprecate :foo_kwarg, :bar_kwarg
|
52
68
|
end
|
53
69
|
|
54
70
|
class OtherThing
|
@@ -61,6 +77,22 @@ class TestDeprecate < Gem::TestCase
|
|
61
77
|
@message = "bar"
|
62
78
|
end
|
63
79
|
deprecate :foo, :bar, 2099, 3
|
80
|
+
|
81
|
+
def foo_arg(msg)
|
82
|
+
@message = "foo" + msg
|
83
|
+
end
|
84
|
+
def bar_arg(msg)
|
85
|
+
@message = "bar" + msg
|
86
|
+
end
|
87
|
+
deprecate :foo_arg, :bar_arg, 2099, 3
|
88
|
+
|
89
|
+
def foo_kwarg(message:)
|
90
|
+
@message = "foo" + message
|
91
|
+
end
|
92
|
+
def bar_kwarg(message:)
|
93
|
+
@message = "bar" + message
|
94
|
+
end
|
95
|
+
deprecate :foo_kwarg, :bar_kwarg, 2099, 3
|
64
96
|
end
|
65
97
|
|
66
98
|
def test_deprecated_method_calls_the_old_method
|
@@ -68,6 +100,10 @@ class TestDeprecate < Gem::TestCase
|
|
68
100
|
thing = Thing.new
|
69
101
|
thing.foo
|
70
102
|
assert_equal "foo", thing.message
|
103
|
+
thing.foo_arg("msg")
|
104
|
+
assert_equal "foomsg", thing.message
|
105
|
+
thing.foo_kwarg(message: "msg")
|
106
|
+
assert_equal "foomsg", thing.message
|
71
107
|
end
|
72
108
|
end
|
73
109
|
|
@@ -75,10 +111,14 @@ class TestDeprecate < Gem::TestCase
|
|
75
111
|
out, err = capture_io do
|
76
112
|
thing = Thing.new
|
77
113
|
thing.foo
|
114
|
+
thing.foo_arg("msg")
|
115
|
+
thing.foo_kwarg(message: "msg")
|
78
116
|
end
|
79
117
|
|
80
118
|
assert_equal "", out
|
81
119
|
assert_match(/Thing#foo is deprecated; use bar instead\./, err)
|
120
|
+
assert_match(/Thing#foo_arg is deprecated; use bar_arg instead\./, err)
|
121
|
+
assert_match(/Thing#foo_kwarg is deprecated; use bar_kwarg instead\./, err)
|
82
122
|
assert_match(/in Rubygems [0-9]+/, err)
|
83
123
|
end
|
84
124
|
|
@@ -104,10 +144,14 @@ class TestDeprecate < Gem::TestCase
|
|
104
144
|
out, err = capture_io do
|
105
145
|
thing = OtherThing.new
|
106
146
|
thing.foo
|
147
|
+
thing.foo_arg("msg")
|
148
|
+
thing.foo_kwarg(message: "msg")
|
107
149
|
end
|
108
150
|
|
109
151
|
assert_equal "", out
|
110
|
-
assert_match(/
|
111
|
-
assert_match(/
|
152
|
+
assert_match(/OtherThing#foo is deprecated; use bar instead\./, err)
|
153
|
+
assert_match(/OtherThing#foo_arg is deprecated; use bar_arg instead\./, err)
|
154
|
+
assert_match(/OtherThing#foo_kwarg is deprecated; use bar_kwarg instead\./, err)
|
155
|
+
assert_match(/on or after 2099-03/, err)
|
112
156
|
end
|
113
157
|
end
|
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.17
|
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: 2021-
|
19
|
+
date: 2021-05-05 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
|
@@ -769,7 +769,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
769
769
|
- !ruby/object:Gem::Version
|
770
770
|
version: '0'
|
771
771
|
requirements: []
|
772
|
-
rubygems_version: 3.2.
|
772
|
+
rubygems_version: 3.2.17
|
773
773
|
signing_key:
|
774
774
|
specification_version: 4
|
775
775
|
summary: RubyGems is a package management framework for Ruby.
|