rubygems-update 3.1.0.pre2 → 3.1.0.pre3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -0
- data/History.txt +23 -2
- data/Manifest.txt +7 -7
- data/README.md +1 -1
- data/Rakefile +29 -10
- data/bundler/CHANGELOG.md +18 -1
- data/bundler/UPGRADING.md +229 -0
- data/bundler/lib/bundler.rb +87 -24
- data/bundler/lib/bundler/cli.rb +55 -25
- data/bundler/lib/bundler/cli/add.rb +1 -0
- data/bundler/lib/bundler/cli/{package.rb → cache.rb} +2 -2
- data/bundler/lib/bundler/cli/exec.rb +0 -7
- data/bundler/lib/bundler/dsl.rb +1 -1
- data/bundler/lib/bundler/friendly_errors.rb +1 -1
- data/bundler/lib/bundler/gem_helper.rb +0 -2
- data/bundler/lib/bundler/gem_helpers.rb +1 -1
- data/bundler/lib/bundler/inline.rb +7 -3
- data/bundler/lib/bundler/lockfile_parser.rb +1 -0
- data/bundler/lib/bundler/rubygems_ext.rb +1 -1
- data/bundler/lib/bundler/rubygems_integration.rb +0 -1
- data/bundler/lib/bundler/setup.rb +2 -9
- data/bundler/lib/bundler/shared_helpers.rb +12 -25
- data/bundler/lib/bundler/source/git.rb +1 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +1 -1
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +132 -109
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils/version.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +5 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +1 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +6 -16
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +5 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +18 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +10 -8
- data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +21 -14
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +14 -18
- data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +6 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +8 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +13 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +1 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +2 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/man/bundle-add.1 +1 -1
- data/bundler/man/bundle-add.1.txt +1 -1
- data/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/man/bundle-binstubs.1.txt +1 -1
- data/bundler/man/bundle-cache.1 +55 -0
- data/bundler/man/bundle-cache.1.txt +78 -0
- data/bundler/man/{bundle-package.ronn → bundle-cache.ronn} +15 -15
- data/bundler/man/bundle-check.1 +1 -1
- data/bundler/man/bundle-check.1.txt +1 -1
- data/bundler/man/bundle-clean.1 +1 -1
- data/bundler/man/bundle-clean.1.txt +1 -1
- data/bundler/man/bundle-config.1 +1 -1
- data/bundler/man/bundle-config.1.txt +1 -1
- data/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/man/bundle-doctor.1.txt +1 -1
- data/bundler/man/bundle-exec.1 +1 -1
- data/bundler/man/bundle-exec.1.txt +1 -1
- data/bundler/man/bundle-gem.1 +1 -1
- data/bundler/man/bundle-gem.1.txt +1 -1
- data/bundler/man/bundle-info.1 +1 -1
- data/bundler/man/bundle-info.1.txt +1 -1
- data/bundler/man/bundle-init.1 +1 -1
- data/bundler/man/bundle-init.1.txt +1 -1
- data/bundler/man/bundle-inject.1 +1 -1
- data/bundler/man/bundle-inject.1.txt +1 -1
- data/bundler/man/bundle-install.1 +1 -1
- data/bundler/man/bundle-install.1.txt +1 -1
- data/bundler/man/bundle-list.1 +1 -1
- data/bundler/man/bundle-list.1.txt +1 -1
- data/bundler/man/bundle-lock.1 +1 -1
- data/bundler/man/bundle-lock.1.txt +1 -1
- data/bundler/man/bundle-open.1 +1 -1
- data/bundler/man/bundle-open.1.txt +1 -1
- data/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/man/bundle-outdated.1.txt +1 -1
- data/bundler/man/bundle-platform.1 +1 -1
- data/bundler/man/bundle-platform.1.txt +1 -1
- data/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/man/bundle-pristine.1.txt +1 -1
- data/bundler/man/bundle-remove.1 +1 -1
- data/bundler/man/bundle-remove.1.txt +1 -1
- data/bundler/man/bundle-show.1 +1 -1
- data/bundler/man/bundle-show.1.txt +1 -1
- data/bundler/man/bundle-update.1 +1 -1
- data/bundler/man/bundle-update.1.txt +1 -1
- data/bundler/man/bundle-viz.1 +1 -1
- data/bundler/man/bundle-viz.1.txt +1 -1
- data/bundler/man/bundle.1 +1 -1
- data/bundler/man/bundle.1.txt +1 -1
- data/bundler/man/gemfile.5 +1 -1
- data/bundler/man/gemfile.5.txt +1 -1
- data/bundler/man/index.txt +1 -1
- data/lib/rubygems.rb +14 -11
- data/lib/rubygems/basic_specification.rb +9 -9
- data/lib/rubygems/bundler_version_finder.rb +2 -2
- data/lib/rubygems/commands/pristine_command.rb +0 -5
- data/lib/rubygems/config_file.rb +1 -1
- data/lib/rubygems/core_ext/kernel_gem.rb +7 -3
- data/lib/rubygems/core_ext/kernel_require.rb +20 -2
- data/lib/rubygems/installer.rb +3 -5
- data/lib/rubygems/name_tuple.rb +1 -1
- data/lib/rubygems/package.rb +1 -1
- data/lib/rubygems/path_support.rb +1 -1
- data/lib/rubygems/request_set.rb +1 -1
- data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
- data/lib/rubygems/request_set/lockfile.rb +3 -1
- data/lib/rubygems/source.rb +1 -1
- data/lib/rubygems/specification.rb +6 -6
- data/lib/rubygems/stub_specification.rb +1 -1
- data/lib/rubygems/test_case.rb +6 -6
- data/lib/rubygems/version.rb +23 -15
- data/rubygems-update.gemspec +1 -1
- data/test/rubygems/test_gem.rb +14 -10
- data/test/rubygems/test_gem_command_manager.rb +1 -1
- data/test/rubygems/test_gem_commands_pristine_command.rb +49 -0
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +3 -3
- data/test/rubygems/test_gem_installer.rb +8 -5
- data/test/rubygems/test_gem_package.rb +4 -4
- data/test/rubygems/test_gem_specification.rb +17 -16
- data/test/rubygems/test_gem_version.rb +7 -0
- data/test/rubygems/test_project_sanity.rb +58 -0
- data/test/rubygems/test_require.rb +11 -13
- data/tmp/.keep +0 -0
- data/util/ci.sh +14 -2
- metadata +10 -10
- data/.travis.yml +0 -22
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +0 -129
- data/bundler/man/bundle-package.1 +0 -55
- data/bundler/man/bundle-package.1.txt +0 -79
- data/test/rubygems/test_rake_package.rb +0 -26
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 885ce9aa3a1ce8a73c527c618dcc435c8dce91f9d7108c192449704e9c4d5f19
|
|
4
|
+
data.tar.gz: c2d2369619e4933747732d5895594c5c4413ca8e98db51fc1bd277a7a51f400b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 68dcc17b3a24684351615370e30d772fa847126e71e7e3b27982f5a81d287fe9b3b80d2982302aa37c9956de18375791c0e397329863910d8db42b5421fcfe09
|
|
7
|
+
data.tar.gz: 62834f1044ea634ea0cf952abb117023c01745b367a4746075e13b98d37059854849dafdf63efea93ee51a00d644d008e6e6c34b34917f907dc359ddd03838b0
|
data/.rubocop.yml
CHANGED
data/History.txt
CHANGED
|
@@ -1,6 +1,27 @@
|
|
|
1
1
|
# coding: UTF-8
|
|
2
2
|
|
|
3
|
-
=== 3.1.0.
|
|
3
|
+
=== 3.1.0.pre3 / 2019-11-11
|
|
4
|
+
|
|
5
|
+
Minor enhancements:
|
|
6
|
+
|
|
7
|
+
* Fix gem pristine not accounting for user installed gems. Pull request
|
|
8
|
+
#2914 by Luis Sagastume.
|
|
9
|
+
* Refactor keyword argument test for Ruby 2.7. Pull request #2947 by
|
|
10
|
+
SHIBATA Hiroshi.
|
|
11
|
+
* Fix errors at frozen Gem::Version. Pull request #2949 by Nobuyoshi
|
|
12
|
+
Nakada.
|
|
13
|
+
* Remove taint usage on Ruby 2.7+. Pull request #2951 by Jeremy Evans.
|
|
14
|
+
* Check Manifest.txt is up to date. Pull request #2953 by David Rodríguez.
|
|
15
|
+
* Clarify symlink conditionals in tests. Pull request #2962 by David
|
|
16
|
+
Rodríguez.
|
|
17
|
+
* Update command line parsing to work under ps. Pull request #2966 by
|
|
18
|
+
David Rodríguez.
|
|
19
|
+
* Properly test `Gem::Specifications.stub_for`. Pull request #2970 by
|
|
20
|
+
David Rodríguez.
|
|
21
|
+
* Fix Gem::LOADED_SPECS_MUTEX handling for recursive locking. Pull request
|
|
22
|
+
#2985 by MSP-Greg.
|
|
23
|
+
|
|
24
|
+
=== 3.1.0.pre2 / 2019-10-15
|
|
4
25
|
|
|
5
26
|
Minor enhancements:
|
|
6
27
|
|
|
@@ -9,7 +30,7 @@ Minor enhancements:
|
|
|
9
30
|
* Time comparison around date boundary. Pull request #2944 by Nobuyoshi
|
|
10
31
|
Nakada.
|
|
11
32
|
|
|
12
|
-
=== 3.1.0.pre1 /
|
|
33
|
+
=== 3.1.0.pre1 / 2019-10-08
|
|
13
34
|
|
|
14
35
|
Major enhancements:
|
|
15
36
|
|
data/Manifest.txt
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
.rubocop.yml
|
|
2
|
-
.travis.yml
|
|
3
2
|
CODE_OF_CONDUCT.md
|
|
4
3
|
CONTRIBUTING.md
|
|
5
4
|
History.txt
|
|
@@ -17,6 +16,7 @@ bundler/CHANGELOG.md
|
|
|
17
16
|
bundler/CODE_OF_CONDUCT.md
|
|
18
17
|
bundler/LICENSE.md
|
|
19
18
|
bundler/README.md
|
|
19
|
+
bundler/UPGRADING.md
|
|
20
20
|
bundler/bundler.gemspec
|
|
21
21
|
bundler/exe/bundle
|
|
22
22
|
bundler/exe/bundler
|
|
@@ -26,6 +26,7 @@ bundler/lib/bundler/capistrano.rb
|
|
|
26
26
|
bundler/lib/bundler/cli.rb
|
|
27
27
|
bundler/lib/bundler/cli/add.rb
|
|
28
28
|
bundler/lib/bundler/cli/binstubs.rb
|
|
29
|
+
bundler/lib/bundler/cli/cache.rb
|
|
29
30
|
bundler/lib/bundler/cli/check.rb
|
|
30
31
|
bundler/lib/bundler/cli/clean.rb
|
|
31
32
|
bundler/lib/bundler/cli/common.rb
|
|
@@ -43,7 +44,6 @@ bundler/lib/bundler/cli/list.rb
|
|
|
43
44
|
bundler/lib/bundler/cli/lock.rb
|
|
44
45
|
bundler/lib/bundler/cli/open.rb
|
|
45
46
|
bundler/lib/bundler/cli/outdated.rb
|
|
46
|
-
bundler/lib/bundler/cli/package.rb
|
|
47
47
|
bundler/lib/bundler/cli/platform.rb
|
|
48
48
|
bundler/lib/bundler/cli/plugin.rb
|
|
49
49
|
bundler/lib/bundler/cli/pristine.rb
|
|
@@ -207,7 +207,6 @@ bundler/lib/bundler/vendor/thor/lib/thor/base.rb
|
|
|
207
207
|
bundler/lib/bundler/vendor/thor/lib/thor/command.rb
|
|
208
208
|
bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb
|
|
209
209
|
bundler/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb
|
|
210
|
-
bundler/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb
|
|
211
210
|
bundler/lib/bundler/vendor/thor/lib/thor/error.rb
|
|
212
211
|
bundler/lib/bundler/vendor/thor/lib/thor/group.rb
|
|
213
212
|
bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb
|
|
@@ -242,6 +241,9 @@ bundler/man/bundle-add.ronn
|
|
|
242
241
|
bundler/man/bundle-binstubs.1
|
|
243
242
|
bundler/man/bundle-binstubs.1.txt
|
|
244
243
|
bundler/man/bundle-binstubs.ronn
|
|
244
|
+
bundler/man/bundle-cache.1
|
|
245
|
+
bundler/man/bundle-cache.1.txt
|
|
246
|
+
bundler/man/bundle-cache.ronn
|
|
245
247
|
bundler/man/bundle-check.1
|
|
246
248
|
bundler/man/bundle-check.1.txt
|
|
247
249
|
bundler/man/bundle-check.ronn
|
|
@@ -284,9 +286,6 @@ bundler/man/bundle-open.ronn
|
|
|
284
286
|
bundler/man/bundle-outdated.1
|
|
285
287
|
bundler/man/bundle-outdated.1.txt
|
|
286
288
|
bundler/man/bundle-outdated.ronn
|
|
287
|
-
bundler/man/bundle-package.1
|
|
288
|
-
bundler/man/bundle-package.1.txt
|
|
289
|
-
bundler/man/bundle-package.ronn
|
|
290
289
|
bundler/man/bundle-platform.1
|
|
291
290
|
bundler/man/bundle-platform.1.txt
|
|
292
291
|
bundler/man/bundle-platform.ronn
|
|
@@ -681,11 +680,12 @@ test/rubygems/test_gem_validator.rb
|
|
|
681
680
|
test/rubygems/test_gem_version.rb
|
|
682
681
|
test/rubygems/test_gem_version_option.rb
|
|
683
682
|
test/rubygems/test_kernel.rb
|
|
684
|
-
test/rubygems/
|
|
683
|
+
test/rubygems/test_project_sanity.rb
|
|
685
684
|
test/rubygems/test_remote_fetch_error.rb
|
|
686
685
|
test/rubygems/test_require.rb
|
|
687
686
|
test/rubygems/wrong_key_cert.pem
|
|
688
687
|
test/rubygems/wrong_key_cert_32.pem
|
|
688
|
+
tmp/.keep
|
|
689
689
|
util/CL2notes
|
|
690
690
|
util/bisect
|
|
691
691
|
util/ci.sh
|
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# RubyGems [](https://codeclimate.com/github/rubygems/rubygems/maintainability)
|
|
2
2
|
|
|
3
3
|
RubyGems is a package management framework for Ruby.
|
|
4
4
|
|
data/Rakefile
CHANGED
|
@@ -20,9 +20,10 @@ task :git_hooks do
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
Rake::TestTask.new do |t|
|
|
23
|
-
t.ruby_opts = %w[
|
|
23
|
+
t.ruby_opts = %w[-w]
|
|
24
24
|
t.ruby_opts << '-rdevkit' if Gem.win_platform?
|
|
25
25
|
|
|
26
|
+
t.libs << "libs"
|
|
26
27
|
t.libs << "test"
|
|
27
28
|
t.libs << "bundler/lib"
|
|
28
29
|
|
|
@@ -376,18 +377,36 @@ end
|
|
|
376
377
|
|
|
377
378
|
# Misc Tasks ---------------------------------------------------------
|
|
378
379
|
|
|
380
|
+
module Rubygems
|
|
381
|
+
class ProjectFiles
|
|
382
|
+
|
|
383
|
+
def self.all
|
|
384
|
+
files = []
|
|
385
|
+
exclude = %r[\.git|\./bundler/(?!lib|man|exe|[^/]+\.md|bundler.gemspec)]ox
|
|
386
|
+
tracked_files = `git ls-files --recurse-submodules`.split("\n").map {|f| "./#{f}" }
|
|
387
|
+
|
|
388
|
+
tracked_files.each do |path|
|
|
389
|
+
next unless File.file?(path)
|
|
390
|
+
next if path =~ exclude
|
|
391
|
+
files << path[2..-1]
|
|
392
|
+
end
|
|
393
|
+
|
|
394
|
+
files
|
|
395
|
+
end
|
|
396
|
+
|
|
397
|
+
end
|
|
398
|
+
end
|
|
399
|
+
|
|
379
400
|
desc "Update the manifest to reflect what's on disk"
|
|
380
401
|
task :update_manifest do
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
files << path[2..-1]
|
|
402
|
+
File.open('Manifest.txt', 'w') {|f| f.puts(Rubygems::ProjectFiles.all.sort) }
|
|
403
|
+
end
|
|
404
|
+
|
|
405
|
+
desc "Check the manifest is up to date"
|
|
406
|
+
task :check_manifest do
|
|
407
|
+
if File.read("Manifest.txt").split.sort != Rubygems::ProjectFiles.all.sort
|
|
408
|
+
abort "Manifest is out of date. Run `rake update_manifest` to sync it"
|
|
389
409
|
end
|
|
390
|
-
File.open('Manifest.txt', 'w') {|f| f.puts(files.sort) }
|
|
391
410
|
end
|
|
392
411
|
|
|
393
412
|
namespace :bundler do
|
data/bundler/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
|
-
## 2.1.0.pre.
|
|
1
|
+
## 2.1.0.pre.3 (November 12, 2019)
|
|
2
|
+
|
|
3
|
+
Features:
|
|
4
|
+
|
|
5
|
+
- Add caller information to some deprecation messages to make them easier to fix [#7361](https://github.com/bundler/bundler/pull/7361)
|
|
6
|
+
- Reconcile `bundle cache` vs `bundle package` everywhere. Now in docs, CLI help and everywhere else `bundle cache` is the preferred version and `bundle package` remains as an alias [#7389](https://github.com/bundler/bundler/pull/7389)
|
|
7
|
+
- Display some basic `bundler` documentation together with ruby's RDoc based documentation [#7394](https://github.com/bundler/bundler/pull/7394)
|
|
8
|
+
|
|
9
|
+
Bugfixes:
|
|
10
|
+
|
|
11
|
+
- Fix typos deprecation message and upgrading docs [#7374](https://github.com/bundler/bundler/pull/7374)
|
|
12
|
+
- Deprecation warnings about `taint` usage on ruby 2.7 [#7385](https://github.com/bundler/bundler/pull/7385)
|
|
13
|
+
- Fix `--help` flag not correctly delegating to `man` when used with command aliases [#7388](https://github.com/bundler/bundler/pull/7388)
|
|
14
|
+
- `bundle add` should cache newly added gems if an application cache exists [#7393](https://github.com/bundler/bundler/pull/7393)
|
|
15
|
+
- Stop using an insecure folder as a "fallback home" when user home is not defined [#7416](https://github.com/bundler/bundler/pull/7416)
|
|
16
|
+
- Fix `bundler/inline` warning about `Bundler.root` redefinition [#7417](https://github.com/bundler/bundler/pull/7417)
|
|
17
|
+
|
|
18
|
+
## 2.1.0.pre.2 (September 15, 2019)
|
|
2
19
|
|
|
3
20
|
Bugfixes:
|
|
4
21
|
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# Upgrading
|
|
2
|
+
|
|
3
|
+
## Bundler 3
|
|
4
|
+
|
|
5
|
+
The following is a summary of the changes that we plan to introduce in Bundler
|
|
6
|
+
3, why we will be making those changes, and what the deprecation process will
|
|
7
|
+
look like. All these deprecations will be printed by default in the upcoming
|
|
8
|
+
Bundler 2.1 release.
|
|
9
|
+
|
|
10
|
+
If you don't want to deal with deprecations right now and want to toggle them
|
|
11
|
+
off, you can do it through configuration. Set the `BUNDLE_SILENCE_DEPRECATIONS`
|
|
12
|
+
environment variable to "true", or configure it through `bundle config` either
|
|
13
|
+
globally through `bundle config set silence_deprecations true` command, or
|
|
14
|
+
locally through `bundle config set --local silence_deprecations true`. From now
|
|
15
|
+
on in this document we will assume that all three of these configuration options
|
|
16
|
+
are available, but will only mention `bundle config set <option> <value>`.
|
|
17
|
+
|
|
18
|
+
As a general note, these changes are intended to improve the experience using
|
|
19
|
+
bundler for _new_ users, who have no existing usage routines nor possibly biased
|
|
20
|
+
opinions about how the tool should work based on how it has historically worked.
|
|
21
|
+
We do understand that changing behaviour that have been existing for years can
|
|
22
|
+
be annoying for old users, that's why we intend to make this process as smooth
|
|
23
|
+
as possible for everyone.
|
|
24
|
+
|
|
25
|
+
I'll be dividing the deprecations into three groups: CLI deprecations, DSL
|
|
26
|
+
deprecations, and misc deprecations. Let's dive into each of them.
|
|
27
|
+
|
|
28
|
+
#### CLI deprecations
|
|
29
|
+
|
|
30
|
+
The CLI defines a set of commands and options that can be used by our users to
|
|
31
|
+
create command lines that bundler can understand. There's a number of changes
|
|
32
|
+
that we plan to make to this set of commands and options.
|
|
33
|
+
|
|
34
|
+
* Flags passed to `bundle install` that relied on being remembered across invocations have been deprecated.
|
|
35
|
+
|
|
36
|
+
In particular, the `--clean`, `--deployment`, `--frozen`, `--no-cache`,
|
|
37
|
+
`--no-prune`, `--path`, `--shebang`, `--system`, `--without`, and `--with`
|
|
38
|
+
options to `bundle install`.
|
|
39
|
+
|
|
40
|
+
Remembering CLI options has been a source of historical confusion and bug
|
|
41
|
+
reports, not only for beginners but also for experienced users. A CLI tool
|
|
42
|
+
should not behave differently across exactly the same invocations _unless_
|
|
43
|
+
explicitly configured to do so. This is what configuration is about after all,
|
|
44
|
+
and things should never be silently configured without the user knowing about
|
|
45
|
+
it.
|
|
46
|
+
|
|
47
|
+
The problem with changing this behavior is that very common workflows are
|
|
48
|
+
relying on it. For example, when you run `bundle install --without
|
|
49
|
+
development:test` in production, those flags are persisted in the app's
|
|
50
|
+
configuration file and further `bundle` invocations will happily ignore
|
|
51
|
+
development and test gems. This magic will disappear from bundler 3, and
|
|
52
|
+
you will explicitly need to configure it, either through environment
|
|
53
|
+
variables, application configuration, or machine configuration. For example,
|
|
54
|
+
with `bundle config set without development test`.
|
|
55
|
+
|
|
56
|
+
The removal of this kind of flag also applies to analogous commands, for
|
|
57
|
+
example, to `bundle check --path`.
|
|
58
|
+
|
|
59
|
+
* The `--force` flag to `bundle install` and `bundle update` has been renamed to `--redownload`.
|
|
60
|
+
|
|
61
|
+
This is just a simple rename of the flag, to make more apparent what it
|
|
62
|
+
actually does. This flag forces redownloading every gem, it doesn't "force"
|
|
63
|
+
anything else.
|
|
64
|
+
|
|
65
|
+
* `bundle viz` will be removed and extracted to a plugin.
|
|
66
|
+
|
|
67
|
+
This is the only bundler command requiring external dependencies, both an OS
|
|
68
|
+
dependency (the `graphviz` package) and a gem dependency (the `ruby-graphviz`
|
|
69
|
+
gem). Removing these dependencies will make development easier and it was also
|
|
70
|
+
seen by the bundler team as an opportunity to develop a [bundler
|
|
71
|
+
plugin](https://github.com/bundler/bundle-viz) that it's officially maintained
|
|
72
|
+
by the bundler team, and that users can take as a reference to develop their
|
|
73
|
+
own plugins. The plugin contains the same code as the old core command, the
|
|
74
|
+
only difference being that the command is now implemented as `bundle graph`
|
|
75
|
+
hich is much easier to understand. Have a look at the plugin's repo for more
|
|
76
|
+
information about how to install and use the new plugin.
|
|
77
|
+
|
|
78
|
+
* The `bundle console` will be removed and replaced with `bin/console`.
|
|
79
|
+
|
|
80
|
+
Over time we found `bundle console` hard to maintain because every user would
|
|
81
|
+
want to add her own specific tweaks to it. In order to ease maintenance and
|
|
82
|
+
reduce bikeshedding discussions, we're removing the `bundle console` command
|
|
83
|
+
in favor of a `bin/console` script created by `bundle gem` on gem generation
|
|
84
|
+
that users can tweak to their needs.
|
|
85
|
+
|
|
86
|
+
* The `bundle update` command will no longer update all gems, you'll need to pass `--all` to it.
|
|
87
|
+
|
|
88
|
+
The bundler team considers that updating all gems at once should not be the
|
|
89
|
+
main use case for this command, and that it's better to upgrade gems one at a
|
|
90
|
+
time (or in groups of related gems). You can still upgrade all gems at once,
|
|
91
|
+
but now you need the `--all` flag.
|
|
92
|
+
|
|
93
|
+
* The `bundle install` command will no longer accept a `--binstubs` flag.
|
|
94
|
+
|
|
95
|
+
The `--binstubs` option has been removed from `bundle install` and replaced
|
|
96
|
+
with the `bundle binstubs` command. The `--binstubs` flag would create
|
|
97
|
+
binstubs for all executables present inside the gems in the project. This was
|
|
98
|
+
hardly useful since most users will only use a subset of all the binstubs
|
|
99
|
+
available to them. Also, it would force the introduction of a bunch of most
|
|
100
|
+
likely unused files into source control. Because of this, binstubs now must
|
|
101
|
+
must be created and checked into version control individually.
|
|
102
|
+
|
|
103
|
+
* The `bundle config` command has a new subcommand-based interface.
|
|
104
|
+
|
|
105
|
+
We believe the old interface where the kind of operation was guessed from the
|
|
106
|
+
combination of flags and number of arguments being passed to the command was
|
|
107
|
+
confusing. Instead we have introduced a compulsory subcommand argument that
|
|
108
|
+
can be either `list`, `get`, `set` or `unset`. We believe this will make the
|
|
109
|
+
`config` command much easier to interact with. The old interface is
|
|
110
|
+
deprecated, but we are giving suggestions about the new commands that should
|
|
111
|
+
be used along with the deprecation messages.
|
|
112
|
+
|
|
113
|
+
* The `bundle inject` command is deprecated and replaced with `bundle add`.
|
|
114
|
+
|
|
115
|
+
We believe the new command fits the user's mental model better and it supports
|
|
116
|
+
a wider set of use cases. The interface supported by `bundle inject` works
|
|
117
|
+
exactly the same in `bundle add`, so it should be easy to migrate to the new
|
|
118
|
+
command.
|
|
119
|
+
|
|
120
|
+
#### Helper deprecations
|
|
121
|
+
|
|
122
|
+
* `Bundler.clean_env`, `Bundler.with_clean_env`, `Bundler.clean_system`, and `Bundler.clean_exec` are deprecated.
|
|
123
|
+
|
|
124
|
+
All of these helpers ultimately use `Bundler.clean_env` under the hood, which
|
|
125
|
+
makes sure all bundler-related environment are removed inside the block it
|
|
126
|
+
yields.
|
|
127
|
+
|
|
128
|
+
After quite a lot user reports, we noticed that users don't usually want this
|
|
129
|
+
but instead want the bundler environment as it was before the current process
|
|
130
|
+
was started. Thus, `Bundler.with_original_env`, `Bundler.original_system`, and
|
|
131
|
+
`Bundler.original_exec` were born. They all use the new `Bundler.original_env`
|
|
132
|
+
under the hood.
|
|
133
|
+
|
|
134
|
+
There's however some specific cases where the good old `Bundler.clean_env`
|
|
135
|
+
behavior can be useful. For example, when testing Rails generators, you really
|
|
136
|
+
want an environment where `bundler` is out of the picture. This is why we
|
|
137
|
+
decided to keep the old behavior under a new more clear name, because we
|
|
138
|
+
figured the word "clean" was too ambiguous. So we have introduced
|
|
139
|
+
`Bundler.unbundled_env`, `Bundler.with_unbundled_env`,
|
|
140
|
+
`Bundler.unbundled_system`, and `Bundler.unbundled_exec`.
|
|
141
|
+
|
|
142
|
+
* `Bundler.environment` is deprecated in favor of `Bundler.load`.
|
|
143
|
+
|
|
144
|
+
We're not sure how people might be using this directly but we have removed the
|
|
145
|
+
`Bundler::Environment` class which was instantiated by `Bundler.environment`
|
|
146
|
+
since we realized the `Bundler::Runtime` class was the same thing. During the
|
|
147
|
+
transition `Bundler.environment` will delegate to `Bundler.load`, which holds
|
|
148
|
+
the reference to the `Bundler::Environment`.
|
|
149
|
+
|
|
150
|
+
#### DSL deprecations
|
|
151
|
+
|
|
152
|
+
The following deprecations in bundler's DSL are meant to prepare for the strict
|
|
153
|
+
source pinning in bundler 3, where the source for every dependency will be
|
|
154
|
+
unambiguously defined.
|
|
155
|
+
|
|
156
|
+
* Multiple global Gemfile sources will no longer be supported.
|
|
157
|
+
|
|
158
|
+
Instead of something like this:
|
|
159
|
+
|
|
160
|
+
```ruby
|
|
161
|
+
source "https://main_source"
|
|
162
|
+
source "https://another_source"
|
|
163
|
+
|
|
164
|
+
gem "dependency1"
|
|
165
|
+
gem "dependency2"
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
do something like this:
|
|
169
|
+
|
|
170
|
+
```ruby
|
|
171
|
+
source "https://main_source"
|
|
172
|
+
|
|
173
|
+
gem "dependency1"
|
|
174
|
+
|
|
175
|
+
source "https://another_source" do
|
|
176
|
+
gem "dependency2"
|
|
177
|
+
end
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
* Global `path` and `git` sources will no longer be supported.
|
|
181
|
+
|
|
182
|
+
Instead of something like this:
|
|
183
|
+
|
|
184
|
+
```ruby
|
|
185
|
+
path "/my/path/with/gems"
|
|
186
|
+
git "https://my_git_repo_with_gems"
|
|
187
|
+
|
|
188
|
+
gem "dependency1"
|
|
189
|
+
gem "dependency2"
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
do something like this:
|
|
193
|
+
|
|
194
|
+
```ruby
|
|
195
|
+
gem "dependency1", path: "/my/path/with/gems"
|
|
196
|
+
gem "dependency2", git: "https://my_git_repo_with_gems"
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
or use the block forms if you have multiple gems for each source and you want
|
|
200
|
+
to be a bit DRYer:
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
```ruby
|
|
204
|
+
path "/my/path/with/gems" do
|
|
205
|
+
# gem "dependency1"
|
|
206
|
+
# ...
|
|
207
|
+
# gem "dependencyn"
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
git "https://my_git_repo_with_gems" do
|
|
211
|
+
# gem "dependency1"
|
|
212
|
+
# ...
|
|
213
|
+
# gem "dependencyn"
|
|
214
|
+
end
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
#### Misc deprecations
|
|
218
|
+
|
|
219
|
+
* Deployment helpers for `vlad` and `capistrano` are being removed.
|
|
220
|
+
|
|
221
|
+
These are natural deprecations since the `vlad` tool has had no activity for
|
|
222
|
+
years whereas `capistrano` 3 has built-in Bundler integration in the form of
|
|
223
|
+
the `capistrano-bundler` gem, and everyone using Capistrano 3 should be
|
|
224
|
+
already using that instead. If for some reason, you are still using Capistrano
|
|
225
|
+
2, feel free to copy the Capistrano tasks out of the Bundler 2 file
|
|
226
|
+
`bundler/deployment.rb` and put them into your app.
|
|
227
|
+
|
|
228
|
+
In general, we don't want to maintain integrations for every deployment system
|
|
229
|
+
out there, so that's why we are removing these.
|
data/bundler/lib/bundler.rb
CHANGED
|
@@ -14,6 +14,25 @@ require_relative "bundler/constants"
|
|
|
14
14
|
require_relative "bundler/current_ruby"
|
|
15
15
|
require_relative "bundler/build_metadata"
|
|
16
16
|
|
|
17
|
+
# Bundler provides a consistent environment for Ruby projects by
|
|
18
|
+
# tracking and installing the exact gems and versions that are needed.
|
|
19
|
+
#
|
|
20
|
+
# Since Ruby 2.6, Bundler is a part of Ruby's standard library.
|
|
21
|
+
#
|
|
22
|
+
# Bunder is used by creating _gemfiles_ listing all the project dependencies
|
|
23
|
+
# and (optionally) their versions and then using
|
|
24
|
+
#
|
|
25
|
+
# require 'bundler/setup'
|
|
26
|
+
#
|
|
27
|
+
# or Bundler.setup to setup environment where only specified gems and their
|
|
28
|
+
# specified versions could be used.
|
|
29
|
+
#
|
|
30
|
+
# See {Bundler website}[https://bundler.io/docs.html] for extensive documentation
|
|
31
|
+
# on gemfiles creation and Bundler usage.
|
|
32
|
+
#
|
|
33
|
+
# As a standard library inside project, Bundler could be used for introspection
|
|
34
|
+
# of loaded and required modules.
|
|
35
|
+
#
|
|
17
36
|
module Bundler
|
|
18
37
|
environment_preserver = EnvironmentPreserver.new(ENV, EnvironmentPreserver::BUNDLER_KEYS)
|
|
19
38
|
ORIGINAL_ENV = environment_preserver.restore
|
|
@@ -64,11 +83,11 @@ module Bundler
|
|
|
64
83
|
end
|
|
65
84
|
|
|
66
85
|
def ui
|
|
67
|
-
(defined?(@ui) && @ui) || (self.ui = UI::
|
|
86
|
+
(defined?(@ui) && @ui) || (self.ui = UI::Shell.new)
|
|
68
87
|
end
|
|
69
88
|
|
|
70
89
|
def ui=(ui)
|
|
71
|
-
Bundler.rubygems.ui =
|
|
90
|
+
Bundler.rubygems.ui = UI::RGProxy.new(ui)
|
|
72
91
|
@ui = ui
|
|
73
92
|
end
|
|
74
93
|
|
|
@@ -91,6 +110,33 @@ module Bundler
|
|
|
91
110
|
end
|
|
92
111
|
end
|
|
93
112
|
|
|
113
|
+
# Turns on the Bundler runtime. After +Bundler.setup+ call, all +load+ or
|
|
114
|
+
# +require+ of the gems would be allowed only if they are part of
|
|
115
|
+
# the Gemfile or Ruby's standard library. If the versions specified
|
|
116
|
+
# in Gemfile, only those versions would be loaded.
|
|
117
|
+
#
|
|
118
|
+
# Assuming Gemfile
|
|
119
|
+
#
|
|
120
|
+
# gem 'first_gem', '= 1.0'
|
|
121
|
+
# group :test do
|
|
122
|
+
# gem 'second_gem', '= 1.0'
|
|
123
|
+
# end
|
|
124
|
+
#
|
|
125
|
+
# The code using Bundler.setup works as follows:
|
|
126
|
+
#
|
|
127
|
+
# require 'third_gem' # allowed, required from global gems
|
|
128
|
+
# require 'first_gem' # allowed, loads the last installed version
|
|
129
|
+
# Bundler.setup
|
|
130
|
+
# require 'fourth_gem' # fails with LoadError
|
|
131
|
+
# require 'second_gem' # loads exactly version 1.0
|
|
132
|
+
#
|
|
133
|
+
# +Bundler.setup+ can be called only once, all subsequent calls are no-op.
|
|
134
|
+
#
|
|
135
|
+
# If _groups_ list is provided, only gems from specified groups would
|
|
136
|
+
# be allowed (gems specified outside groups belong to special +:default+ group).
|
|
137
|
+
#
|
|
138
|
+
# To require all gems from Gemfile (or only some groups), see Bundler.require.
|
|
139
|
+
#
|
|
94
140
|
def setup(*groups)
|
|
95
141
|
# Return if all groups are already loaded
|
|
96
142
|
return @setup if defined?(@setup) && @setup
|
|
@@ -107,6 +153,24 @@ module Bundler
|
|
|
107
153
|
end
|
|
108
154
|
end
|
|
109
155
|
|
|
156
|
+
# Setups Bundler environment (see Bundler.setup) if it is not already set,
|
|
157
|
+
# and loads all gems from groups specified. Unlike ::setup, can be called
|
|
158
|
+
# multiple times with different groups (if they were allowed by setup).
|
|
159
|
+
#
|
|
160
|
+
# Assuming Gemfile
|
|
161
|
+
#
|
|
162
|
+
# gem 'first_gem', '= 1.0'
|
|
163
|
+
# group :test do
|
|
164
|
+
# gem 'second_gem', '= 1.0'
|
|
165
|
+
# end
|
|
166
|
+
#
|
|
167
|
+
# The code will work as follows:
|
|
168
|
+
#
|
|
169
|
+
# Bundler.setup # allow all groups
|
|
170
|
+
# Bundler.require(:default) # requires only first_gem
|
|
171
|
+
# # ...later
|
|
172
|
+
# Bundler.require(:test) # requires second_gem
|
|
173
|
+
#
|
|
110
174
|
def require(*groups)
|
|
111
175
|
setup(*groups).require(*groups)
|
|
112
176
|
end
|
|
@@ -116,7 +180,7 @@ module Bundler
|
|
|
116
180
|
end
|
|
117
181
|
|
|
118
182
|
def environment
|
|
119
|
-
SharedHelpers.major_deprecation 2, "Bundler.environment has been removed in favor of Bundler.load"
|
|
183
|
+
SharedHelpers.major_deprecation 2, "Bundler.environment has been removed in favor of Bundler.load", :print_caller_location => true
|
|
120
184
|
load
|
|
121
185
|
end
|
|
122
186
|
|
|
@@ -167,8 +231,7 @@ module Bundler
|
|
|
167
231
|
end
|
|
168
232
|
|
|
169
233
|
if warning
|
|
170
|
-
|
|
171
|
-
user_home = tmp_home_path(Etc.getlogin, warning)
|
|
234
|
+
user_home = tmp_home_path(warning)
|
|
172
235
|
Bundler.ui.warn "#{warning}\nBundler will use `#{user_home}' as your home directory temporarily.\n"
|
|
173
236
|
user_home
|
|
174
237
|
else
|
|
@@ -177,21 +240,6 @@ module Bundler
|
|
|
177
240
|
end
|
|
178
241
|
end
|
|
179
242
|
|
|
180
|
-
def tmp_home_path(login, warning)
|
|
181
|
-
login ||= "unknown"
|
|
182
|
-
Kernel.send(:require, "tmpdir")
|
|
183
|
-
path = Pathname.new(Dir.tmpdir).join("bundler", "home")
|
|
184
|
-
SharedHelpers.filesystem_access(path) do |tmp_home_path|
|
|
185
|
-
unless tmp_home_path.exist?
|
|
186
|
-
tmp_home_path.mkpath
|
|
187
|
-
tmp_home_path.chmod(0o777)
|
|
188
|
-
end
|
|
189
|
-
tmp_home_path.join(login).tap(&:mkpath)
|
|
190
|
-
end
|
|
191
|
-
rescue RuntimeError => e
|
|
192
|
-
raise e.exception("#{warning}\nBundler also failed to create a temporary home directory at `#{path}':\n#{e}")
|
|
193
|
-
end
|
|
194
|
-
|
|
195
243
|
def user_bundle_path(dir = "home")
|
|
196
244
|
env_var, fallback = case dir
|
|
197
245
|
when "home"
|
|
@@ -282,7 +330,8 @@ EOF
|
|
|
282
330
|
Bundler::SharedHelpers.major_deprecation(
|
|
283
331
|
2,
|
|
284
332
|
"`Bundler.clean_env` has been deprecated in favor of `Bundler.unbundled_env`. " \
|
|
285
|
-
"If you instead want the environment before bundler was originally loaded, use `Bundler.original_env`"
|
|
333
|
+
"If you instead want the environment before bundler was originally loaded, use `Bundler.original_env`",
|
|
334
|
+
:print_caller_location => true
|
|
286
335
|
)
|
|
287
336
|
|
|
288
337
|
unbundled_env
|
|
@@ -321,7 +370,8 @@ EOF
|
|
|
321
370
|
Bundler::SharedHelpers.major_deprecation(
|
|
322
371
|
2,
|
|
323
372
|
"`Bundler.with_clean_env` has been deprecated in favor of `Bundler.with_unbundled_env`. " \
|
|
324
|
-
"If you instead want the environment before bundler was originally loaded, use `Bundler.with_original_env`"
|
|
373
|
+
"If you instead want the environment before bundler was originally loaded, use `Bundler.with_original_env`",
|
|
374
|
+
:print_caller_location => true
|
|
325
375
|
)
|
|
326
376
|
|
|
327
377
|
with_env(unbundled_env) { yield }
|
|
@@ -342,7 +392,8 @@ EOF
|
|
|
342
392
|
Bundler::SharedHelpers.major_deprecation(
|
|
343
393
|
2,
|
|
344
394
|
"`Bundler.clean_system` has been deprecated in favor of `Bundler.unbundled_system`. " \
|
|
345
|
-
"If you instead want to run the command in the environment before bundler was originally loaded, use `Bundler.original_system`"
|
|
395
|
+
"If you instead want to run the command in the environment before bundler was originally loaded, use `Bundler.original_system`",
|
|
396
|
+
:print_caller_location => true
|
|
346
397
|
)
|
|
347
398
|
|
|
348
399
|
with_env(unbundled_env) { Kernel.system(*args) }
|
|
@@ -363,7 +414,8 @@ EOF
|
|
|
363
414
|
Bundler::SharedHelpers.major_deprecation(
|
|
364
415
|
2,
|
|
365
416
|
"`Bundler.clean_exec` has been deprecated in favor of `Bundler.unbundled_exec`. " \
|
|
366
|
-
"If you instead want to exec to a command in the environment before bundler was originally loaded, use `Bundler.original_exec`"
|
|
417
|
+
"If you instead want to exec to a command in the environment before bundler was originally loaded, use `Bundler.original_exec`",
|
|
418
|
+
:print_caller_location => true
|
|
367
419
|
)
|
|
368
420
|
|
|
369
421
|
with_env(unbundled_env) { Kernel.exec(*args) }
|
|
@@ -608,6 +660,17 @@ EOF
|
|
|
608
660
|
Bundler.rubygems.clear_paths
|
|
609
661
|
end
|
|
610
662
|
|
|
663
|
+
def tmp_home_path(warning)
|
|
664
|
+
Kernel.send(:require, "tmpdir")
|
|
665
|
+
SharedHelpers.filesystem_access(Dir.tmpdir) do
|
|
666
|
+
path = Bundler.tmp
|
|
667
|
+
at_exit { Bundler.rm_rf(path) }
|
|
668
|
+
path
|
|
669
|
+
end
|
|
670
|
+
rescue RuntimeError => e
|
|
671
|
+
raise e.exception("#{warning}\nBundler also failed to create a temporary home directory':\n#{e}")
|
|
672
|
+
end
|
|
673
|
+
|
|
611
674
|
# @param env [Hash]
|
|
612
675
|
def with_env(env)
|
|
613
676
|
backup = ENV.to_hash
|