rubygems-update 3.2.26 → 3.2.30
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +60 -0
- data/Manifest.txt +12 -3
- data/bundler/CHANGELOG.md +50 -1
- data/bundler/README.md +1 -1
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +19 -2
- data/bundler/lib/bundler/cli/info.rb +11 -4
- data/bundler/lib/bundler/cli/issue.rb +4 -3
- data/bundler/lib/bundler/cli/remove.rb +1 -2
- data/bundler/lib/bundler/cli.rb +1 -0
- data/bundler/lib/bundler/compact_index_client.rb +2 -2
- data/bundler/lib/bundler/definition.rb +16 -6
- data/bundler/lib/bundler/digest.rb +71 -0
- data/bundler/lib/bundler/errors.rb +18 -2
- data/bundler/lib/bundler/fetcher.rb +2 -1
- data/bundler/lib/bundler/friendly_errors.rb +5 -30
- data/bundler/lib/bundler/gem_helper.rb +6 -17
- data/bundler/lib/bundler/installer.rb +0 -1
- data/bundler/lib/bundler/plugin/installer.rb +2 -0
- data/bundler/lib/bundler/plugin.rb +23 -6
- data/bundler/lib/bundler/rubygems_ext.rb +4 -0
- data/bundler/lib/bundler/rubygems_gem_installer.rb +20 -4
- data/bundler/lib/bundler/rubygems_integration.rb +28 -9
- data/bundler/lib/bundler/runtime.rb +1 -1
- data/bundler/lib/bundler/settings.rb +9 -1
- data/bundler/lib/bundler/source/git.rb +22 -4
- data/bundler/lib/bundler/source/rubygems.rb +43 -72
- data/bundler/lib/bundler/source.rb +2 -0
- data/bundler/lib/bundler/source_list.rb +4 -0
- data/bundler/lib/bundler/spec_set.rb +1 -1
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
- data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +9 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
- data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +2 -2
- data/bundler/lib/bundler.rb +13 -18
- data/lib/rubygems/command_manager.rb +3 -3
- data/lib/rubygems/commands/build_command.rb +3 -3
- data/lib/rubygems/commands/cert_command.rb +15 -8
- data/lib/rubygems/commands/check_command.rb +4 -4
- data/lib/rubygems/commands/cleanup_command.rb +3 -3
- data/lib/rubygems/commands/contents_command.rb +2 -2
- data/lib/rubygems/commands/dependency_command.rb +3 -3
- data/lib/rubygems/commands/environment_command.rb +1 -1
- data/lib/rubygems/commands/fetch_command.rb +3 -3
- data/lib/rubygems/commands/generate_index_command.rb +2 -2
- data/lib/rubygems/commands/help_command.rb +1 -1
- data/lib/rubygems/commands/info_command.rb +2 -2
- data/lib/rubygems/commands/install_command.rb +12 -11
- data/lib/rubygems/commands/list_command.rb +2 -2
- data/lib/rubygems/commands/lock_command.rb +1 -1
- data/lib/rubygems/commands/mirror_command.rb +1 -1
- data/lib/rubygems/commands/open_command.rb +2 -2
- data/lib/rubygems/commands/outdated_command.rb +4 -4
- data/lib/rubygems/commands/owner_command.rb +4 -4
- data/lib/rubygems/commands/pristine_command.rb +5 -5
- data/lib/rubygems/commands/push_command.rb +4 -4
- data/lib/rubygems/commands/query_command.rb +3 -3
- data/lib/rubygems/commands/rdoc_command.rb +3 -3
- data/lib/rubygems/commands/search_command.rb +2 -2
- data/lib/rubygems/commands/server_command.rb +3 -3
- data/lib/rubygems/commands/setup_command.rb +6 -6
- data/lib/rubygems/commands/signin_command.rb +2 -2
- data/lib/rubygems/commands/signout_command.rb +1 -1
- data/lib/rubygems/commands/sources_command.rb +4 -4
- data/lib/rubygems/commands/specification_command.rb +4 -4
- data/lib/rubygems/commands/stale_command.rb +1 -1
- data/lib/rubygems/commands/uninstall_command.rb +3 -3
- data/lib/rubygems/commands/unpack_command.rb +5 -5
- data/lib/rubygems/commands/update_command.rb +9 -9
- data/lib/rubygems/commands/which_command.rb +1 -1
- data/lib/rubygems/commands/yank_command.rb +4 -4
- data/lib/rubygems/config_file.rb +1 -1
- data/lib/rubygems/core_ext/tcpsocket_init.rb +2 -2
- data/lib/rubygems/defaults.rb +1 -1
- data/lib/rubygems/dependency_installer.rb +8 -8
- data/lib/rubygems/dependency_list.rb +1 -1
- data/lib/rubygems/doctor.rb +2 -2
- data/lib/rubygems/errors.rb +1 -2
- data/lib/rubygems/exceptions.rb +1 -1
- data/lib/rubygems/gem_runner.rb +3 -3
- data/lib/rubygems/gemcutter_utilities.rb +2 -2
- data/lib/rubygems/indexer.rb +2 -2
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +2 -2
- data/lib/rubygems/installer.rb +8 -8
- data/lib/rubygems/local_remote_options.rb +1 -1
- data/lib/rubygems/mock_gem_ui.rb +1 -1
- data/lib/rubygems/package/tar_reader.rb +1 -1
- data/lib/rubygems/package.rb +36 -46
- data/lib/rubygems/package_task.rb +2 -2
- data/lib/rubygems/platform.rb +2 -1
- data/lib/rubygems/query_utils.rb +4 -4
- data/lib/rubygems/rdoc.rb +1 -1
- data/lib/rubygems/remote_fetcher.rb +16 -22
- data/lib/rubygems/request/connection_pools.rb +1 -1
- data/lib/rubygems/request/http_pool.rb +1 -1
- data/lib/rubygems/request.rb +7 -5
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -1
- data/lib/rubygems/request_set/lockfile.rb +1 -1
- data/lib/rubygems/request_set.rb +5 -5
- data/lib/rubygems/requirement.rb +1 -1
- data/lib/rubygems/resolver/git_specification.rb +1 -1
- data/lib/rubygems/resolver/installer_set.rb +3 -3
- data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/set.rb +0 -1
- data/lib/rubygems/resolver/specification.rb +1 -1
- data/lib/rubygems/resolver.rb +31 -31
- data/lib/rubygems/s3_uri_signer.rb +4 -5
- data/lib/rubygems/security/policy.rb +6 -4
- data/lib/rubygems/security/signer.rb +4 -5
- data/lib/rubygems/security.rb +54 -20
- data/lib/rubygems/security_option.rb +2 -2
- data/lib/rubygems/server.rb +2 -2
- data/lib/rubygems/source/git.rb +2 -2
- data/lib/rubygems/source.rb +7 -7
- data/lib/rubygems/spec_fetcher.rb +5 -5
- data/lib/rubygems/specification.rb +12 -12
- data/lib/rubygems/specification_policy.rb +2 -2
- data/lib/rubygems/uninstaller.rb +6 -6
- data/lib/rubygems/uri.rb +111 -0
- data/lib/rubygems/user_interaction.rb +3 -3
- data/lib/rubygems/util/licenses.rb +1 -1
- data/lib/rubygems/util.rb +1 -1
- data/lib/rubygems/validator.rb +2 -2
- data/lib/rubygems/version_option.rb +1 -1
- data/lib/rubygems.rb +16 -16
- data/rubygems-update.gemspec +1 -1
- data/test/rubygems/helper.rb +4 -12
- data/test/rubygems/private_ec_key.pem +9 -0
- data/test/rubygems/test_gem.rb +59 -71
- data/test/rubygems/test_gem_commands_cert_command.rb +63 -4
- data/test/rubygems/test_gem_commands_install_command.rb +25 -0
- data/test/rubygems/test_gem_package.rb +27 -26
- data/test/rubygems/test_gem_platform.rb +1 -0
- data/test/rubygems/test_gem_remote_fetcher.rb +30 -0
- data/test/rubygems/test_gem_request.rb +35 -9
- data/test/rubygems/test_gem_resolver_installer_set.rb +18 -0
- data/test/rubygems/test_gem_security.rb +32 -4
- data/test/rubygems/test_gem_source_fetch_problem.rb +10 -0
- data/test/rubygems/test_gem_specification.rb +228 -232
- data/test/rubygems/test_gem_uri.rb +39 -0
- metadata +18 -9
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
- data/lib/rubygems/uri_parser.rb +0 -34
- data/lib/rubygems/uri_parsing.rb +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a9db6b191518d600933f57563d49e712ad295360f9d539390df3c18c6db92e6
|
4
|
+
data.tar.gz: eb76c101ce6d260d3f4255bbd1372fbc41f65e9519556d5d6b9850cbbcfcfaf2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93ab22a88c283d83ea077ec5a91de69c2ba055c1d7bb3d082745e0aad105a07ef6669e407e1bc4c049c860fdb60621eee14710fdc12b9a50e00b470867ddc744
|
7
|
+
data.tar.gz: b78873d02f2783632165254d939c18fcdacf64a460bbaab21b89859bd802c04da49a7d9fbc16e9abbcd50635ca2db2da469a671ab8ebd0f766f36948a388bc62
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,63 @@
|
|
1
|
+
# 3.2.30 / 2021-10-26
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
* Add support to build and sign certificates with multiple key algorithms.
|
6
|
+
Pull request #4991 by doodzik
|
7
|
+
* Avoid loading the `digest` gem unnecessarily. Pull request #4979 by
|
8
|
+
deivid-rodriguez
|
9
|
+
* Prefer `require_relative` for all internal requires. Pull request #4978
|
10
|
+
by deivid-rodriguez
|
11
|
+
* Add missing `require` of `time` within
|
12
|
+
`Gem::Request.verify_certificate_message`. Pull request #4975 by nobu
|
13
|
+
|
14
|
+
## Performance:
|
15
|
+
|
16
|
+
* Speed up `gem install`, specially under Windows. Pull request #4960 by
|
17
|
+
deivid-rodriguez
|
18
|
+
|
19
|
+
# 3.2.29 / 2021-10-08
|
20
|
+
|
21
|
+
## Enhancements:
|
22
|
+
|
23
|
+
* Only disallow FIXME/TODO for first word of gemspec description. Pull
|
24
|
+
request #4937 by duckinator
|
25
|
+
|
26
|
+
## Bug fixes:
|
27
|
+
|
28
|
+
* Fix `wordy` method in `SourceFetchProblem` changing the password of
|
29
|
+
source. Pull request #4910 by Huangxiaodui
|
30
|
+
|
31
|
+
## Performance:
|
32
|
+
|
33
|
+
* Improve `require` performance, particularly on systems with a lot of
|
34
|
+
gems installed. Pull request #4951 by pocke
|
35
|
+
|
36
|
+
# 3.2.28 / 2021-09-23
|
37
|
+
|
38
|
+
## Enhancements:
|
39
|
+
|
40
|
+
* Support MINGW-UCRT. Pull request #4925 by hsbt
|
41
|
+
* Only check if descriptions *start with* FIXME/TODO. Pull request #4841
|
42
|
+
by duckinator
|
43
|
+
* Avoid loading `uri` unnecessarily when activating gems. Pull request
|
44
|
+
#4897 by deivid-rodriguez
|
45
|
+
|
46
|
+
## Bug fixes:
|
47
|
+
|
48
|
+
* Fix redacted credentials being sent to gemserver. Pull request #4919 by
|
49
|
+
jdliss
|
50
|
+
|
51
|
+
# 3.2.27 / 2021-09-03
|
52
|
+
|
53
|
+
## Enhancements:
|
54
|
+
|
55
|
+
* Redact credentails when printing URI. Pull request #4868 by intuxicated
|
56
|
+
* Prefer `require_relative` to `require` for internal requires. Pull
|
57
|
+
request #4858 by deivid-rodriguez
|
58
|
+
* Prioritise gems with higher version for fetching metadata, and stop
|
59
|
+
fetching once we find a valid candidate. Pull request #4843 by intuxicated
|
60
|
+
|
1
61
|
# 3.2.26 / 2021-08-17
|
2
62
|
|
3
63
|
## Enhancements:
|
data/Manifest.txt
CHANGED
@@ -60,6 +60,7 @@ bundler/lib/bundler/dep_proxy.rb
|
|
60
60
|
bundler/lib/bundler/dependency.rb
|
61
61
|
bundler/lib/bundler/deployment.rb
|
62
62
|
bundler/lib/bundler/deprecate.rb
|
63
|
+
bundler/lib/bundler/digest.rb
|
63
64
|
bundler/lib/bundler/dsl.rb
|
64
65
|
bundler/lib/bundler/endpoint_specification.rb
|
65
66
|
bundler/lib/bundler/env.rb
|
@@ -223,11 +224,14 @@ bundler/lib/bundler/ui/rg_proxy.rb
|
|
223
224
|
bundler/lib/bundler/ui/shell.rb
|
224
225
|
bundler/lib/bundler/ui/silent.rb
|
225
226
|
bundler/lib/bundler/uri_credentials_filter.rb
|
227
|
+
bundler/lib/bundler/vendor/connection_pool/LICENSE
|
226
228
|
bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb
|
227
|
-
bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb
|
228
229
|
bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb
|
229
230
|
bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb
|
231
|
+
bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb
|
232
|
+
bundler/lib/bundler/vendor/fileutils/LICENSE.txt
|
230
233
|
bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb
|
234
|
+
bundler/lib/bundler/vendor/molinillo/LICENSE
|
231
235
|
bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb
|
232
236
|
bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
|
233
237
|
bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
|
@@ -248,10 +252,12 @@ bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
|
|
248
252
|
bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb
|
249
253
|
bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb
|
250
254
|
bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb
|
255
|
+
bundler/lib/bundler/vendor/net-http-persistent/README.rdoc
|
251
256
|
bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
|
252
257
|
bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb
|
253
258
|
bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb
|
254
259
|
bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb
|
260
|
+
bundler/lib/bundler/vendor/thor/LICENSE.md
|
255
261
|
bundler/lib/bundler/vendor/thor/lib/thor.rb
|
256
262
|
bundler/lib/bundler/vendor/thor/lib/thor/actions.rb
|
257
263
|
bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb
|
@@ -284,6 +290,7 @@ bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb
|
|
284
290
|
bundler/lib/bundler/vendor/thor/lib/thor/util.rb
|
285
291
|
bundler/lib/bundler/vendor/thor/lib/thor/version.rb
|
286
292
|
bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb
|
293
|
+
bundler/lib/bundler/vendor/uri/LICENSE.txt
|
287
294
|
bundler/lib/bundler/vendor/uri/lib/uri.rb
|
288
295
|
bundler/lib/bundler/vendor/uri/lib/uri/common.rb
|
289
296
|
bundler/lib/bundler/vendor/uri/lib/uri/file.rb
|
@@ -431,6 +438,7 @@ lib/rubygems/resolver/local_specification.rb
|
|
431
438
|
lib/rubygems/resolver/lock_set.rb
|
432
439
|
lib/rubygems/resolver/lock_specification.rb
|
433
440
|
lib/rubygems/resolver/molinillo.rb
|
441
|
+
lib/rubygems/resolver/molinillo/LICENSE
|
434
442
|
lib/rubygems/resolver/molinillo/lib/molinillo.rb
|
435
443
|
lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb
|
436
444
|
lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb
|
@@ -485,9 +493,8 @@ lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem
|
|
485
493
|
lib/rubygems/stub_specification.rb
|
486
494
|
lib/rubygems/text.rb
|
487
495
|
lib/rubygems/uninstaller.rb
|
496
|
+
lib/rubygems/uri.rb
|
488
497
|
lib/rubygems/uri_formatter.rb
|
489
|
-
lib/rubygems/uri_parser.rb
|
490
|
-
lib/rubygems/uri_parsing.rb
|
491
498
|
lib/rubygems/user_interaction.rb
|
492
499
|
lib/rubygems/util.rb
|
493
500
|
lib/rubygems/util/licenses.rb
|
@@ -540,6 +547,7 @@ test/rubygems/plugin/exception/rubygems_plugin.rb
|
|
540
547
|
test/rubygems/plugin/load/rubygems_plugin.rb
|
541
548
|
test/rubygems/plugin/standarderror/rubygems_plugin.rb
|
542
549
|
test/rubygems/private3072_key.pem
|
550
|
+
test/rubygems/private_ec_key.pem
|
543
551
|
test/rubygems/private_key.pem
|
544
552
|
test/rubygems/public3072_cert.pem
|
545
553
|
test/rubygems/public_cert.pem
|
@@ -678,6 +686,7 @@ test/rubygems/test_gem_stub_specification.rb
|
|
678
686
|
test/rubygems/test_gem_text.rb
|
679
687
|
test/rubygems/test_gem_uninstaller.rb
|
680
688
|
test/rubygems/test_gem_unsatisfiable_dependency_error.rb
|
689
|
+
test/rubygems/test_gem_uri.rb
|
681
690
|
test/rubygems/test_gem_uri_formatter.rb
|
682
691
|
test/rubygems/test_gem_util.rb
|
683
692
|
test/rubygems/test_gem_validator.rb
|
data/bundler/CHANGELOG.md
CHANGED
@@ -1,3 +1,52 @@
|
|
1
|
+
# 2.2.30 (October 26, 2021)
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
- Add a custom SHA1 digest implementation to no longer depend on the digest gem before we know which version to activate [#4989](https://github.com/rubygems/rubygems/pull/4989)
|
6
|
+
- Ensure vendored gems have licenses [#4998](https://github.com/rubygems/rubygems/pull/4998)
|
7
|
+
- Update broken link in Bundler::Fetcher::CertificateFailureError [#4987](https://github.com/rubygems/rubygems/pull/4987)
|
8
|
+
- Give better errors for some permission issues [#4965](https://github.com/rubygems/rubygems/pull/4965)
|
9
|
+
- Print better errors when `bundler/gem_tasks` fail [#4872](https://github.com/rubygems/rubygems/pull/4872)
|
10
|
+
- Fix `bundle install` to reinstall deleted gems [#4974](https://github.com/rubygems/rubygems/pull/4974)
|
11
|
+
- Unify issue template and ISSUES.md document [#4980](https://github.com/rubygems/rubygems/pull/4980)
|
12
|
+
- Bump vendored connection_pool to 2.2.5 [#4738](https://github.com/rubygems/rubygems/pull/4738)
|
13
|
+
|
14
|
+
## Bug fixes:
|
15
|
+
|
16
|
+
- Fix error message pointing to non existing file when using a global gem cache [#4999](https://github.com/rubygems/rubygems/pull/4999)
|
17
|
+
- Fix install crash when lockfile has missing dependencies for the current platform [#4941](https://github.com/rubygems/rubygems/pull/4941)
|
18
|
+
- Make `bundle info` show a proper warning every time it finds a deleted gem [#4971](https://github.com/rubygems/rubygems/pull/4971)
|
19
|
+
|
20
|
+
# 2.2.29 (October 8, 2021)
|
21
|
+
|
22
|
+
## Enhancements:
|
23
|
+
|
24
|
+
- Require at least Ruby 2.6.0 for gems created with recent rubies [#4920](https://github.com/rubygems/rubygems/pull/4920)
|
25
|
+
- Include glob information in string representation of git sources to make generated lockfiles deterministic [#4947](https://github.com/rubygems/rubygems/pull/4947)
|
26
|
+
- Add missing `rubygem_push` prerequisite [#4930](https://github.com/rubygems/rubygems/pull/4930)
|
27
|
+
|
28
|
+
# 2.2.28 (September 23, 2021)
|
29
|
+
|
30
|
+
## Enhancements:
|
31
|
+
|
32
|
+
- Use example.com in new gem template, since it will never have a potentially dangerous backing website [#4918](https://github.com/rubygems/rubygems/pull/4918)
|
33
|
+
- Deprecate `--install` flag to `bundle remove` and trigger install by default [#4891](https://github.com/rubygems/rubygems/pull/4891)
|
34
|
+
|
35
|
+
# 2.2.27 (September 3, 2021)
|
36
|
+
|
37
|
+
## Enhancements:
|
38
|
+
|
39
|
+
- Optimize some requires [#4887](https://github.com/rubygems/rubygems/pull/4887)
|
40
|
+
- Correctly redact credentials when using x-oauth-basic [#4866](https://github.com/rubygems/rubygems/pull/4866)
|
41
|
+
|
42
|
+
## Bug fixes:
|
43
|
+
|
44
|
+
- Add missing key `branches:` to template for GitHub Actions [#4883](https://github.com/rubygems/rubygems/pull/4883)
|
45
|
+
- Fix `bundle plugin install` detection of already installed plugins [#4869](https://github.com/rubygems/rubygems/pull/4869)
|
46
|
+
- Make plugin installation idempotent [#4864](https://github.com/rubygems/rubygems/pull/4864)
|
47
|
+
- Fix `bundle check` showing duplicated gems when multiple platforms are locked [#4854](https://github.com/rubygems/rubygems/pull/4854)
|
48
|
+
- Fix `bundle check` incorrectly considering cached gems [#4853](https://github.com/rubygems/rubygems/pull/4853)
|
49
|
+
|
1
50
|
# 2.2.26 (August 17, 2021)
|
2
51
|
|
3
52
|
## Enhancements:
|
@@ -77,7 +126,7 @@
|
|
77
126
|
- Fix `bundle doctor` crashing when finding a broken symlink [#4707](https://github.com/rubygems/rubygems/pull/4707)
|
78
127
|
- Fix incorrect re-resolve edge case [#4700](https://github.com/rubygems/rubygems/pull/4700)
|
79
128
|
- Fix some gems being unintentionally locked under multiple lockfile sections [#4701](https://github.com/rubygems/rubygems/pull/4701)
|
80
|
-
- Fix `--conservative` flag unexpectedly updating indirect dependencies [#4692](https://github.com/rubygems/rubygems/pull/4692)
|
129
|
+
- Fix `--conservative` flag unexpectedly updating indirect dependencies. NOTE: As part of this bug fix, some undocumented, unintentional code causing `bundle update --source <gem>` to update conservatively was fixed. Use the documented `bundle update --conservative <gem>` instead [#4692](https://github.com/rubygems/rubygems/pull/4692)
|
81
130
|
|
82
131
|
# 2.2.21 (June 23, 2021)
|
83
132
|
|
data/bundler/README.md
CHANGED
@@ -32,7 +32,7 @@ See [bundler.io](https://bundler.io) for the full documentation.
|
|
32
32
|
|
33
33
|
For help with common problems, see [TROUBLESHOOTING](doc/TROUBLESHOOTING.md).
|
34
34
|
|
35
|
-
Still stuck? Try [filing an issue](
|
35
|
+
Still stuck? Try [filing an issue](https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md).
|
36
36
|
|
37
37
|
### Other questions
|
38
38
|
|
@@ -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-10-26".freeze
|
8
|
+
@git_commit_sha = "e8df9bea62".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
@@ -15,7 +15,7 @@ module Bundler
|
|
15
15
|
definition.validate_runtime!
|
16
16
|
|
17
17
|
begin
|
18
|
-
definition.
|
18
|
+
definition.resolve_only_locally!
|
19
19
|
not_installed = definition.missing_specs
|
20
20
|
rescue GemNotFound, VersionConflict
|
21
21
|
Bundler.ui.error "Bundler can't satisfy your Gemfile's dependencies."
|
@@ -68,7 +68,7 @@ module Bundler
|
|
68
68
|
:bundler_version => bundler_dependency_version,
|
69
69
|
:git => use_git,
|
70
70
|
:github_username => github_username.empty? ? "[USERNAME]" : github_username,
|
71
|
-
:required_ruby_version =>
|
71
|
+
:required_ruby_version => required_ruby_version,
|
72
72
|
}
|
73
73
|
ensure_safe_gem_name(name, constant_array)
|
74
74
|
|
@@ -169,7 +169,7 @@ module Bundler
|
|
169
169
|
"For more information, see the RuboCop docs (https://docs.rubocop.org/en/stable/) " \
|
170
170
|
"and the Ruby Style Guides (https://github.com/rubocop-hq/ruby-style-guide).")
|
171
171
|
config[:rubocop] = true
|
172
|
-
config[:rubocop_version] =
|
172
|
+
config[:rubocop_version] = rubocop_version
|
173
173
|
Bundler.ui.info "RuboCop enabled in config"
|
174
174
|
templates.merge!("rubocop.yml.tt" => ".rubocop.yml")
|
175
175
|
end
|
@@ -350,5 +350,22 @@ module Bundler
|
|
350
350
|
def open_editor(editor, file)
|
351
351
|
thor.run(%(#{editor} "#{file}"))
|
352
352
|
end
|
353
|
+
|
354
|
+
def required_ruby_version
|
355
|
+
if Gem.ruby_version < Gem::Version.new("2.4.a") then "2.3.0"
|
356
|
+
elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "2.4.0"
|
357
|
+
elsif Gem.ruby_version < Gem::Version.new("2.6.a") then "2.5.0"
|
358
|
+
else
|
359
|
+
"2.6.0"
|
360
|
+
end
|
361
|
+
end
|
362
|
+
|
363
|
+
def rubocop_version
|
364
|
+
if Gem.ruby_version < Gem::Version.new("2.4.a") then "0.81.0"
|
365
|
+
elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "1.12"
|
366
|
+
else
|
367
|
+
"1.21"
|
368
|
+
end
|
369
|
+
end
|
353
370
|
end
|
354
371
|
end
|
@@ -40,12 +40,13 @@ module Bundler
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def print_gem_path(spec)
|
43
|
-
|
43
|
+
name = spec.name
|
44
|
+
if name == "bundler"
|
44
45
|
path = File.expand_path("../../../..", __FILE__)
|
45
46
|
else
|
46
47
|
path = spec.full_gem_path
|
47
|
-
|
48
|
-
return Bundler.ui.warn "The gem #{
|
48
|
+
if spec.deleted_gem?
|
49
|
+
return Bundler.ui.warn "The gem #{name} has been deleted. It was installed at: #{path}"
|
49
50
|
end
|
50
51
|
end
|
51
52
|
|
@@ -54,8 +55,9 @@ module Bundler
|
|
54
55
|
|
55
56
|
def print_gem_info(spec)
|
56
57
|
metadata = spec.metadata
|
58
|
+
name = spec.name
|
57
59
|
gem_info = String.new
|
58
|
-
gem_info << " * #{
|
60
|
+
gem_info << " * #{name} (#{spec.version}#{spec.git_version})\n"
|
59
61
|
gem_info << "\tSummary: #{spec.summary}\n" if spec.summary
|
60
62
|
gem_info << "\tHomepage: #{spec.homepage}\n" if spec.homepage
|
61
63
|
gem_info << "\tDocumentation: #{metadata["documentation_uri"]}\n" if metadata.key?("documentation_uri")
|
@@ -67,6 +69,11 @@ module Bundler
|
|
67
69
|
gem_info << "\tMailing List: #{metadata["mailing_list_uri"]}\n" if metadata.key?("mailing_list_uri")
|
68
70
|
gem_info << "\tPath: #{spec.full_gem_path}\n"
|
69
71
|
gem_info << "\tDefault Gem: yes" if spec.respond_to?(:default_gem?) && spec.default_gem?
|
72
|
+
|
73
|
+
if spec.deleted_gem?
|
74
|
+
return Bundler.ui.warn "The gem #{name} has been deleted. Gemspec information is still available though:\n#{gem_info}"
|
75
|
+
end
|
76
|
+
|
70
77
|
Bundler.ui.info gem_info
|
71
78
|
end
|
72
79
|
end
|
@@ -20,9 +20,10 @@ module Bundler
|
|
20
20
|
|
21
21
|
Hopefully the troubleshooting steps above resolved your problem! If things
|
22
22
|
still aren't working the way you expect them to, please let us know so
|
23
|
-
that we can diagnose and help fix the problem you're having
|
24
|
-
|
25
|
-
https://github.com/rubygems/rubygems/
|
23
|
+
that we can diagnose and help fix the problem you're having, by filling
|
24
|
+
in the new issue form located at
|
25
|
+
https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md,
|
26
|
+
and copy and pasting the information below.
|
26
27
|
|
27
28
|
EOS
|
28
29
|
|
@@ -11,8 +11,7 @@ module Bundler
|
|
11
11
|
raise InvalidOption, "Please specify gems to remove." if @gems.empty?
|
12
12
|
|
13
13
|
Injector.remove(@gems, {})
|
14
|
-
|
15
|
-
Installer.install(Bundler.root, Bundler.definition) if @options["install"]
|
14
|
+
Installer.install(Bundler.root, Bundler.definition)
|
16
15
|
end
|
17
16
|
end
|
18
17
|
end
|
data/bundler/lib/bundler/cli.rb
CHANGED
@@ -184,6 +184,7 @@ module Bundler
|
|
184
184
|
method_option "install", :type => :boolean, :banner =>
|
185
185
|
"Runs 'bundle install' after removing the gems from the Gemfile"
|
186
186
|
def remove(*gems)
|
187
|
+
SharedHelpers.major_deprecation(2, "The `--install` flag has been deprecated. `bundle install` is triggered by default.") if ARGV.include?("--install")
|
187
188
|
require_relative "cli/remove"
|
188
189
|
Remove.new(gems, options).run
|
189
190
|
end
|
@@ -5,7 +5,7 @@ require "set"
|
|
5
5
|
|
6
6
|
module Bundler
|
7
7
|
class CompactIndexClient
|
8
|
-
DEBUG_MUTEX = Mutex.new
|
8
|
+
DEBUG_MUTEX = Thread::Mutex.new
|
9
9
|
def self.debug
|
10
10
|
return unless ENV["DEBUG_COMPACT_INDEX"]
|
11
11
|
DEBUG_MUTEX.synchronize { warn("[#{self}] #{yield}") }
|
@@ -25,7 +25,7 @@ module Bundler
|
|
25
25
|
@endpoints = Set.new
|
26
26
|
@info_checksums_by_name = {}
|
27
27
|
@parsed_checksums = false
|
28
|
-
@mutex = Mutex.new
|
28
|
+
@mutex = Thread::Mutex.new
|
29
29
|
end
|
30
30
|
|
31
31
|
def execution_mode=(block)
|
@@ -73,7 +73,6 @@ module Bundler
|
|
73
73
|
@lockfile_contents = String.new
|
74
74
|
@locked_bundler_version = nil
|
75
75
|
@locked_ruby_version = nil
|
76
|
-
@locked_specs_incomplete_for_platform = false
|
77
76
|
@new_platform = nil
|
78
77
|
|
79
78
|
if lockfile && File.exist?(lockfile)
|
@@ -139,6 +138,8 @@ module Bundler
|
|
139
138
|
@dependency_changes = converge_dependencies
|
140
139
|
@local_changes = converge_locals
|
141
140
|
|
141
|
+
@locked_specs_incomplete_for_platform = !@locked_specs.for(expand_dependencies(requested_dependencies & locked_dependencies), true, true)
|
142
|
+
|
142
143
|
@requires = compute_requires
|
143
144
|
end
|
144
145
|
|
@@ -161,6 +162,12 @@ module Bundler
|
|
161
162
|
@multisource_allowed
|
162
163
|
end
|
163
164
|
|
165
|
+
def resolve_only_locally!
|
166
|
+
@remote = false
|
167
|
+
sources.local_only!
|
168
|
+
resolve
|
169
|
+
end
|
170
|
+
|
164
171
|
def resolve_with_cache!
|
165
172
|
sources.cached!
|
166
173
|
resolve
|
@@ -222,6 +229,10 @@ module Bundler
|
|
222
229
|
end
|
223
230
|
end
|
224
231
|
|
232
|
+
def locked_dependencies
|
233
|
+
@locked_deps.values
|
234
|
+
end
|
235
|
+
|
225
236
|
def specs_for(groups)
|
226
237
|
groups = requested_groups if groups.empty?
|
227
238
|
deps = dependencies_for(groups)
|
@@ -361,8 +372,8 @@ module Bundler
|
|
361
372
|
new_sources = gemfile_sources - @locked_sources
|
362
373
|
deleted_sources = @locked_sources - gemfile_sources
|
363
374
|
|
364
|
-
new_deps = @dependencies -
|
365
|
-
deleted_deps =
|
375
|
+
new_deps = @dependencies - locked_dependencies
|
376
|
+
deleted_deps = locked_dependencies - @dependencies
|
366
377
|
|
367
378
|
# Check if it is possible that the source is only changed thing
|
368
379
|
if (new_deps.empty? && deleted_deps.empty?) && (!new_sources.empty? && !deleted_sources.empty?)
|
@@ -554,7 +565,7 @@ module Bundler
|
|
554
565
|
|
555
566
|
def dependencies_for_source_changed?(source, locked_source = source)
|
556
567
|
deps_for_source = @dependencies.select {|s| s.source == source }
|
557
|
-
locked_deps_for_source =
|
568
|
+
locked_deps_for_source = locked_dependencies.select {|dep| dep.source == locked_source }
|
558
569
|
|
559
570
|
deps_for_source.uniq.sort != locked_deps_for_source.sort
|
560
571
|
end
|
@@ -638,7 +649,7 @@ module Bundler
|
|
638
649
|
|
639
650
|
def converge_dependencies
|
640
651
|
frozen = Bundler.frozen_bundle?
|
641
|
-
(@dependencies +
|
652
|
+
(@dependencies + locked_dependencies).each do |dep|
|
642
653
|
locked_source = @locked_deps[dep.name]
|
643
654
|
# This is to make sure that if bundler is installing in deployment mode and
|
644
655
|
# after locked_source and sources don't match, we still use locked_source.
|
@@ -745,7 +756,6 @@ module Bundler
|
|
745
756
|
end
|
746
757
|
|
747
758
|
resolve = SpecSet.new(converged)
|
748
|
-
@locked_specs_incomplete_for_platform = !resolve.for(expand_dependencies(requested_dependencies & deps), true, true)
|
749
759
|
resolve = SpecSet.new(resolve.for(expand_dependencies(deps, true), false, false).reject{|s| @unlock[:gems].include?(s.name) })
|
750
760
|
diff = nil
|
751
761
|
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This code was extracted from https://github.com/Solistra/ruby-digest which is under public domain
|
4
|
+
module Bundler
|
5
|
+
module Digest
|
6
|
+
# The initial constant values for the 32-bit constant words A, B, C, D, and
|
7
|
+
# E, respectively.
|
8
|
+
SHA1_WORDS = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0].freeze
|
9
|
+
|
10
|
+
# The 8-bit field used for bitwise `AND` masking. Defaults to `0xFFFFFFFF`.
|
11
|
+
SHA1_MASK = 0xFFFFFFFF
|
12
|
+
|
13
|
+
class << self
|
14
|
+
def sha1(string)
|
15
|
+
unless string.is_a?(String)
|
16
|
+
raise TypeError, "can't convert #{string.class.inspect} into String"
|
17
|
+
end
|
18
|
+
|
19
|
+
buffer = string.b
|
20
|
+
|
21
|
+
words = SHA1_WORDS.dup
|
22
|
+
generate_split_buffer(buffer) do |chunk|
|
23
|
+
w = []
|
24
|
+
chunk.each_slice(4) do |a, b, c, d|
|
25
|
+
w << (((a << 8 | b) << 8 | c) << 8 | d)
|
26
|
+
end
|
27
|
+
a, b, c, d, e = *words
|
28
|
+
(16..79).each do |i|
|
29
|
+
w[i] = SHA1_MASK & rotate((w[i-3] ^ w[i-8] ^ w[i-14] ^ w[i-16]), 1)
|
30
|
+
end
|
31
|
+
0.upto(79) do |i|
|
32
|
+
case i
|
33
|
+
when 0..19
|
34
|
+
f = ((b & c) | (~b & d))
|
35
|
+
k = 0x5A827999
|
36
|
+
when 20..39
|
37
|
+
f = (b ^ c ^ d)
|
38
|
+
k = 0x6ED9EBA1
|
39
|
+
when 40..59
|
40
|
+
f = ((b & c) | (b & d) | (c & d))
|
41
|
+
k = 0x8F1BBCDC
|
42
|
+
when 60..79
|
43
|
+
f = (b ^ c ^ d)
|
44
|
+
k = 0xCA62C1D6
|
45
|
+
end
|
46
|
+
t = SHA1_MASK & (SHA1_MASK & rotate(a, 5) + f + e + k + w[i])
|
47
|
+
a, b, c, d, e = t, a, SHA1_MASK & rotate(b, 30), c, d # rubocop:disable Style/ParallelAssignment
|
48
|
+
end
|
49
|
+
mutated = [a, b, c, d, e]
|
50
|
+
words.map!.with_index {|word, index| SHA1_MASK & (word + mutated[index]) }
|
51
|
+
end
|
52
|
+
|
53
|
+
words.pack("N*").unpack("H*").first
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def generate_split_buffer(string, &block)
|
59
|
+
size = string.bytesize * 8
|
60
|
+
buffer = string.bytes << 128
|
61
|
+
buffer << 0 while buffer.size % 64 != 56
|
62
|
+
buffer.concat([size].pack("Q>").bytes)
|
63
|
+
buffer.each_slice(64, &block)
|
64
|
+
end
|
65
|
+
|
66
|
+
def rotate(value, spaces)
|
67
|
+
value << spaces | value >> (32 - spaces)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -75,10 +75,26 @@ module Bundler
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
|
+
def permission_type
|
79
|
+
case @permission_type
|
80
|
+
when :create
|
81
|
+
"executable permissions for all parent directories and write permissions for `#{parent_folder}`"
|
82
|
+
when :delete
|
83
|
+
permissions = "executable permissions for all parent directories and write permissions for `#{parent_folder}`"
|
84
|
+
permissions += ", and the same thing for all subdirectories inside #{@path}" if File.directory?(@path)
|
85
|
+
permissions
|
86
|
+
else
|
87
|
+
"#{@permission_type} permissions for that path"
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def parent_folder
|
92
|
+
File.dirname(@path)
|
93
|
+
end
|
94
|
+
|
78
95
|
def message
|
79
96
|
"There was an error while trying to #{action} `#{@path}`. " \
|
80
|
-
"It is likely that you need to grant #{
|
81
|
-
"for that path."
|
97
|
+
"It is likely that you need to grant #{permission_type}."
|
82
98
|
end
|
83
99
|
|
84
100
|
status_code(23)
|
@@ -28,7 +28,8 @@ module Bundler
|
|
28
28
|
" is a chance you are experiencing a man-in-the-middle attack, but" \
|
29
29
|
" most likely your system doesn't have the CA certificates needed" \
|
30
30
|
" for verification. For information about OpenSSL certificates, see" \
|
31
|
-
"
|
31
|
+
" https://railsapps.github.io/openssl-certificate-verify-failed.html." \
|
32
|
+
" To connect without using SSL, edit your Gemfile" \
|
32
33
|
" sources and change 'https' to 'http'."
|
33
34
|
end
|
34
35
|
end
|
@@ -63,34 +63,6 @@ module Bundler
|
|
63
63
|
def request_issue_report_for(e)
|
64
64
|
Bundler.ui.error <<-EOS.gsub(/^ {8}/, ""), nil, nil
|
65
65
|
--- ERROR REPORT TEMPLATE -------------------------------------------------------
|
66
|
-
# Error Report
|
67
|
-
|
68
|
-
## Questions
|
69
|
-
|
70
|
-
Please fill out answers to these questions, it'll help us figure out
|
71
|
-
why things are going wrong.
|
72
|
-
|
73
|
-
- **What did you do?**
|
74
|
-
|
75
|
-
I ran the command `#{$PROGRAM_NAME} #{ARGV.join(" ")}`
|
76
|
-
|
77
|
-
- **What did you expect to happen?**
|
78
|
-
|
79
|
-
I expected Bundler to...
|
80
|
-
|
81
|
-
- **What happened instead?**
|
82
|
-
|
83
|
-
Instead, what happened was...
|
84
|
-
|
85
|
-
- **Have you tried any solutions posted on similar issues in our issue tracker, stack overflow, or google?**
|
86
|
-
|
87
|
-
I tried...
|
88
|
-
|
89
|
-
- **Have you read our issues document, https://github.com/rubygems/rubygems/blob/master/bundler/doc/contributing/ISSUES.md?**
|
90
|
-
|
91
|
-
...
|
92
|
-
|
93
|
-
## Backtrace
|
94
66
|
|
95
67
|
```
|
96
68
|
#{e.class}: #{e.message}
|
@@ -109,8 +81,7 @@ module Bundler
|
|
109
81
|
First, try this link to see if there are any existing issue reports for this error:
|
110
82
|
#{issues_url(e)}
|
111
83
|
|
112
|
-
If there aren't any reports for this error yet, please
|
113
|
-
https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md
|
84
|
+
If there aren't any reports for this error yet, please fill in the new issue form located at #{new_issue_url}, and copy and paste the report template above in there.
|
114
85
|
EOS
|
115
86
|
end
|
116
87
|
|
@@ -121,6 +92,10 @@ module Bundler
|
|
121
92
|
"https://github.com/rubygems/rubygems/search?q=" \
|
122
93
|
"#{CGI.escape(message)}&type=Issues"
|
123
94
|
end
|
95
|
+
|
96
|
+
def new_issue_url
|
97
|
+
"https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md"
|
98
|
+
end
|
124
99
|
end
|
125
100
|
|
126
101
|
def self.with_friendly_errors
|