rubygems-update 4.0.0.beta2 → 4.0.0
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/CHANGELOG.md +69 -55
- data/Manifest.txt +1 -2
- data/README.md +1 -1
- data/bundler/CHANGELOG.md +49 -39
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli.rb +35 -12
- data/bundler/lib/bundler/definition.rb +2 -0
- data/bundler/lib/bundler/man/gemfile.5 +2 -2
- data/bundler/lib/bundler/man/gemfile.5.ronn +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +1 -1
- data/bundler/lib/bundler/version.rb +1 -1
- data/doc/UPGRADING.md +28 -0
- data/doc/rubygems/POLICIES.md +0 -144
- data/lib/rubygems/ext/ext_conf_builder.rb +3 -0
- data/lib/rubygems.rb +1 -1
- data/rubygems-update.gemspec +1 -1
- metadata +3 -4
- data/doc/bundler/UPGRADING.md +0 -211
- data/doc/rubygems/UPGRADING.md +0 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e3a33e757835b567451e625eb60fd87dc9d40b5710c96f6a548cf493bb930f03
|
|
4
|
+
data.tar.gz: 95b7748028d7563f74e22aac82e4eab9766ba4aca0b29596af58264ac42721e6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 86a9a29465975044bfc0ad313700a2037a3ef33182f905134df80ab09b43bb753ccd5512bc0cdcc4c8838648ed7e01cfa47d9348d3d482d43c6a045584119be4
|
|
7
|
+
data.tar.gz: aaa0136052ccb1ca34cbedc2d45707f34b82820d1b72859c9de97f959b861bddae87e77801a47a50c79f5b5fb3fe2ce56d8fc46c47506646e554629c3bb41cf4
|
data/CHANGELOG.md
CHANGED
|
@@ -1,55 +1,6 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 4.0.0
|
|
4
|
-
|
|
5
|
-
### Deprecations:
|
|
6
|
-
|
|
7
|
-
* Deprecate comparing Gem::Version objects with strings. Pull request
|
|
8
|
-
[#9085](https://github.com/ruby/rubygems/pull/9085) by tenderlove
|
|
9
|
-
|
|
10
|
-
### Enhancements:
|
|
11
|
-
|
|
12
|
-
* Undeprecate Gem::Version#<=> against strings. Pull request
|
|
13
|
-
[#9110](https://github.com/ruby/rubygems/pull/9110) by byroot
|
|
14
|
-
* Installs bundler 4.0.0.beta2 as a default gem.
|
|
15
|
-
|
|
16
|
-
### Bug fixes:
|
|
17
|
-
|
|
18
|
-
* Respect `BUNDLE_VERSION` config at Gem::BundlerVersionFinder. Pull
|
|
19
|
-
request [#9106](https://github.com/ruby/rubygems/pull/9106) by hsbt
|
|
20
|
-
|
|
21
|
-
## 4.0.0.beta1 / 2025-11-20
|
|
22
|
-
|
|
23
|
-
### Security:
|
|
24
|
-
|
|
25
|
-
* Bump up vendored URI to 1.0.4. Pull request
|
|
26
|
-
[#9031](https://github.com/ruby/rubygems/pull/9031) by hsbt
|
|
27
|
-
|
|
28
|
-
### Breaking changes:
|
|
29
|
-
|
|
30
|
-
* Removed deprecated `-C` option from gem build. Pull request
|
|
31
|
-
[#9088](https://github.com/ruby/rubygems/pull/9088) by hsbt
|
|
32
|
-
* Removed deprecated Gem::Specification#has_rdoc, has_rdoc= and has_rdoc?.
|
|
33
|
-
Pull request [#9084](https://github.com/ruby/rubygems/pull/9084) by hsbt
|
|
34
|
-
* Removed deprecated `gem query` command. Pull request
|
|
35
|
-
[#9083](https://github.com/ruby/rubygems/pull/9083) by hsbt
|
|
36
|
-
* Removed deprecated Gem::DependencyInstaller#find_gems_with_sources. Pull
|
|
37
|
-
request [#9082](https://github.com/ruby/rubygems/pull/9082) by hsbt
|
|
38
|
-
* Remove deprecated methods of RubyGems. Pull request
|
|
39
|
-
[#9081](https://github.com/ruby/rubygems/pull/9081) by hsbt
|
|
40
|
-
* Make verification methods private. Pull request
|
|
41
|
-
[#9051](https://github.com/ruby/rubygems/pull/9051) by tenderlove
|
|
42
|
-
* Deprecate `--default` option from install command. Pull request
|
|
43
|
-
[#7588](https://github.com/ruby/rubygems/pull/7588) by hsbt
|
|
44
|
-
* Switch to 4.0.0.dev in development version. Pull request
|
|
45
|
-
[#9002](https://github.com/ruby/rubygems/pull/9002) by hsbt
|
|
46
|
-
* Removed `compatibility.rb` for RG 4.0. Pull request
|
|
47
|
-
[#8899](https://github.com/ruby/rubygems/pull/8899) by hsbt
|
|
48
|
-
|
|
49
|
-
### Deprecations:
|
|
50
|
-
|
|
51
|
-
* Deprecate `Gem::Specification#datadir`. Pull request
|
|
52
|
-
[#8900](https://github.com/ruby/rubygems/pull/8900) by hsbt
|
|
3
|
+
## 4.0.0 / 2025-12-03
|
|
53
4
|
|
|
54
5
|
### Features:
|
|
55
6
|
|
|
@@ -62,6 +13,8 @@
|
|
|
62
13
|
|
|
63
14
|
### Performance:
|
|
64
15
|
|
|
16
|
+
* Add `MAKEFLAGS=-j` by default before compiling. Pull request
|
|
17
|
+
[#9131](https://github.com/ruby/rubygems/pull/9131) by Edouard-chin
|
|
65
18
|
* Remove some memoization. Pull request
|
|
66
19
|
[#9017](https://github.com/ruby/rubygems/pull/9017) by tenderlove
|
|
67
20
|
* Pull `Gem.win_platform?` out of a hot path. Pull request
|
|
@@ -81,13 +34,9 @@
|
|
|
81
34
|
[#9089](https://github.com/ruby/rubygems/pull/9089) by hsbt
|
|
82
35
|
* Removed unused `Gem::Deprecate`. Pull request
|
|
83
36
|
[#9090](https://github.com/ruby/rubygems/pull/9090) by hsbt
|
|
84
|
-
* Test all tests of `make test-all` by ruby core. Pull request
|
|
85
|
-
[#9075](https://github.com/ruby/rubygems/pull/9075) by hsbt
|
|
86
37
|
* Add debug logging information to see the time it took to download and
|
|
87
38
|
install a gem. Pull request
|
|
88
39
|
[#9066](https://github.com/ruby/rubygems/pull/9066) by Edouard-chin
|
|
89
|
-
* Use `assert_ractor` for testing Ractor. Pull request
|
|
90
|
-
[#9069](https://github.com/ruby/rubygems/pull/9069) by hsbt
|
|
91
40
|
* Fix constants in TAR to be frozen. Pull request
|
|
92
41
|
[#9041](https://github.com/ruby/rubygems/pull/9041) by tenderlove
|
|
93
42
|
* Remove open-ended and prerelease dependency warnings when building gems.
|
|
@@ -97,16 +46,81 @@
|
|
|
97
46
|
[#8753](https://github.com/ruby/rubygems/pull/8753) by cfis
|
|
98
47
|
* Restrict what schemes are acceptable in the remote fetcher. Pull request
|
|
99
48
|
[#9022](https://github.com/ruby/rubygems/pull/9022) by tenderlove
|
|
49
|
+
* `gem sources --prepend` and `--append` allow finer grained control of
|
|
50
|
+
sources. Pull request [#8901](https://github.com/ruby/rubygems/pull/8901)
|
|
51
|
+
by martinemde
|
|
52
|
+
* Improve `gem sources --remove` output. Pull request
|
|
53
|
+
[#8909](https://github.com/ruby/rubygems/pull/8909) by deivid-rodriguez
|
|
54
|
+
* Make `gem sources` output more clear. Pull request
|
|
55
|
+
[#8938](https://github.com/ruby/rubygems/pull/8938) by deivid-rodriguez
|
|
100
56
|
* Don't fail if there is no makefile, simply don't do anything. Pull
|
|
101
57
|
request [#8879](https://github.com/ruby/rubygems/pull/8879) by ioquatix
|
|
102
|
-
*
|
|
58
|
+
* Use IMDSv2 for S3 instance credentials. Pull request
|
|
59
|
+
[#7709](https://github.com/ruby/rubygems/pull/7709) by folbricht-stripe
|
|
60
|
+
* Fix regression in presence of RVM gems. Pull request
|
|
61
|
+
[#8854](https://github.com/ruby/rubygems/pull/8854) by deivid-rodriguez
|
|
62
|
+
* Restore parsing "--" as an unknown platform rather than crashing. Pull
|
|
63
|
+
request [#8846](https://github.com/ruby/rubygems/pull/8846) by
|
|
64
|
+
deivid-rodriguez
|
|
65
|
+
* Installs bundler 4.0.0 as a default gem.
|
|
66
|
+
|
|
67
|
+
### Bug fixes:
|
|
68
|
+
|
|
69
|
+
* Fix test failure of mswin and nmake. Pull request
|
|
70
|
+
[#9135](https://github.com/ruby/rubygems/pull/9135) by hsbt
|
|
71
|
+
* Respect `BUNDLE_VERSION` config at Gem::BundlerVersionFinder. Pull
|
|
72
|
+
request [#9106](https://github.com/ruby/rubygems/pull/9106) by hsbt
|
|
73
|
+
* Fix "did you mean" suggestions for unknown commands. Pull request
|
|
74
|
+
[#8948](https://github.com/ruby/rubygems/pull/8948) by deivid-rodriguez
|
|
75
|
+
* Fix trailing slashes not considered by `gem sources --remove`. Pull
|
|
76
|
+
request [#8939](https://github.com/ruby/rubygems/pull/8939) by
|
|
77
|
+
deivid-rodriguez
|
|
78
|
+
|
|
79
|
+
### Security:
|
|
80
|
+
|
|
81
|
+
* Bump up vendored URI to 1.0.4. Pull request
|
|
82
|
+
[#9031](https://github.com/ruby/rubygems/pull/9031) by hsbt
|
|
83
|
+
|
|
84
|
+
### Breaking changes:
|
|
85
|
+
|
|
86
|
+
* Removed deprecated `-C` option from gem build. Pull request
|
|
87
|
+
[#9088](https://github.com/ruby/rubygems/pull/9088) by hsbt
|
|
88
|
+
* Removed deprecated Gem::Specification#has_rdoc, has_rdoc= and has_rdoc?.
|
|
89
|
+
Pull request [#9084](https://github.com/ruby/rubygems/pull/9084) by hsbt
|
|
90
|
+
* Removed deprecated `gem query` command. Pull request
|
|
91
|
+
[#9083](https://github.com/ruby/rubygems/pull/9083) by hsbt
|
|
92
|
+
* Removed deprecated Gem::DependencyInstaller#find_gems_with_sources. Pull
|
|
93
|
+
request [#9082](https://github.com/ruby/rubygems/pull/9082) by hsbt
|
|
94
|
+
* Remove deprecated methods of RubyGems. Pull request
|
|
95
|
+
[#9081](https://github.com/ruby/rubygems/pull/9081) by hsbt
|
|
96
|
+
* Make verification methods private. Pull request
|
|
97
|
+
[#9051](https://github.com/ruby/rubygems/pull/9051) by tenderlove
|
|
98
|
+
* Deprecate `--default` option from install command. Pull request
|
|
99
|
+
[#7588](https://github.com/ruby/rubygems/pull/7588) by hsbt
|
|
100
|
+
* Removed `compatibility.rb` for RG 4.0. Pull request
|
|
101
|
+
[#8899](https://github.com/ruby/rubygems/pull/8899) by hsbt
|
|
102
|
+
|
|
103
|
+
### Deprecations:
|
|
104
|
+
|
|
105
|
+
* Deprecate `Gem::Specification#datadir`. Pull request
|
|
106
|
+
[#8900](https://github.com/ruby/rubygems/pull/8900) by hsbt
|
|
103
107
|
|
|
104
108
|
### Documentation:
|
|
105
109
|
|
|
110
|
+
* Unified UPGRADING.md and extract blog.rubygems.org. Pull request
|
|
111
|
+
[#9148](https://github.com/ruby/rubygems/pull/9148) by hsbt
|
|
112
|
+
* Remove italic formatting from changelog section headers. Pull request
|
|
113
|
+
[#9128](https://github.com/ruby/rubygems/pull/9128) by hsbt
|
|
106
114
|
* [DOC] Fix the location of Gem::Deprecate document. Pull request
|
|
107
115
|
[#9065](https://github.com/ruby/rubygems/pull/9065) by nobu
|
|
108
116
|
* Fix typo. Pull request
|
|
109
117
|
[#9012](https://github.com/ruby/rubygems/pull/9012) by etiennebarrie
|
|
118
|
+
* Added document for Gem::Uninstaller. Pull request
|
|
119
|
+
[#8904](https://github.com/ruby/rubygems/pull/8904) by hsbt
|
|
120
|
+
* Use mailto link in Code of Conduct. Pull request
|
|
121
|
+
[#8849](https://github.com/ruby/rubygems/pull/8849) by deivid-rodriguez
|
|
122
|
+
* Update Code of Conduct email to conduct@rubygems.org. Pull request
|
|
123
|
+
[#8848](https://github.com/ruby/rubygems/pull/8848) by indirect
|
|
110
124
|
|
|
111
125
|
## 3.7.2 / 2025-09-09
|
|
112
126
|
|
data/Manifest.txt
CHANGED
|
@@ -352,10 +352,9 @@ bundler/lib/bundler/vlad.rb
|
|
|
352
352
|
bundler/lib/bundler/worker.rb
|
|
353
353
|
bundler/lib/bundler/yaml_serializer.rb
|
|
354
354
|
doc/MAINTAINERS.txt
|
|
355
|
-
doc/
|
|
355
|
+
doc/UPGRADING.md
|
|
356
356
|
doc/rubygems/CONTRIBUTING.md
|
|
357
357
|
doc/rubygems/POLICIES.md
|
|
358
|
-
doc/rubygems/UPGRADING.md
|
|
359
358
|
exe/gem
|
|
360
359
|
exe/update_rubygems
|
|
361
360
|
hide_lib_for_update/note.txt
|
data/README.md
CHANGED
|
@@ -65,7 +65,7 @@ To upgrade to the latest RubyGems, run:
|
|
|
65
65
|
|
|
66
66
|
$ gem update --system
|
|
67
67
|
|
|
68
|
-
See [UPGRADING](doc/
|
|
68
|
+
See [UPGRADING](doc/UPGRADING.md) for more details and alternative instructions.
|
|
69
69
|
|
|
70
70
|
## Release policy
|
|
71
71
|
|
data/bundler/CHANGELOG.md
CHANGED
|
@@ -1,27 +1,62 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 4.0.0
|
|
3
|
+
## 4.0.0 (2025-12-03)
|
|
4
4
|
|
|
5
5
|
### Features:
|
|
6
6
|
|
|
7
7
|
- Support bundle install --lockfile option [#9111](https://github.com/ruby/rubygems/pull/9111)
|
|
8
8
|
- Add support for lockfile in Gemfile and bundle install --no-lock [#9059](https://github.com/ruby/rubygems/pull/9059)
|
|
9
|
+
- Add `--ext=go` to `bundle gem` [#8183](https://github.com/ruby/rubygems/pull/8183)
|
|
10
|
+
- Update Bundler::CurrentRuby::ALL_RUBY_VERSIONS [#9058](https://github.com/ruby/rubygems/pull/9058)
|
|
11
|
+
- Introduce `bundle list --format=json` [#8728](https://github.com/ruby/rubygems/pull/8728)
|
|
9
12
|
|
|
10
13
|
### Performance:
|
|
11
14
|
|
|
12
15
|
- Run git operations in parallel to speed things up: [#9100](https://github.com/ruby/rubygems/pull/9100)
|
|
16
|
+
- Replace instance method look up in plugin installer [#9094](https://github.com/ruby/rubygems/pull/9094)
|
|
17
|
+
- Adjust the API_REQUEST_LIMIT to make less network roundtrip [#9071](https://github.com/ruby/rubygems/pull/9071)
|
|
13
18
|
|
|
14
19
|
### Enhancements:
|
|
15
20
|
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
21
|
+
- Make BUNDLE_LOCKFILE environment variable have precedence over lockfile method in Gemfile [#9146](https://github.com/ruby/rubygems/pull/9146)
|
|
22
|
+
- Improve banner message for the default command [#9145](https://github.com/ruby/rubygems/pull/9145)
|
|
23
|
+
- Introduce `install_or_cli_help` and use it default `bundle` command [#9136](https://github.com/ruby/rubygems/pull/9136)
|
|
24
|
+
- Add go_gem/rake_task for Go native extension gem skeleton [#9105](https://github.com/ruby/rubygems/pull/9105)
|
|
25
|
+
- Warn users that `bundle` now display the help: [#9092](https://github.com/ruby/rubygems/pull/9092)
|
|
26
|
+
- Use DidYouMean::SpellChecker for gem suggestions in Bundler [#3857](https://github.com/ruby/rubygems/pull/3857)
|
|
27
|
+
- Update all vendored libraries to latest version [#9089](https://github.com/ruby/rubygems/pull/9089)
|
|
28
|
+
- We don't need to allow some warning now [#9074](https://github.com/ruby/rubygems/pull/9074)
|
|
29
|
+
- Support to embedded Pathname [#9056](https://github.com/ruby/rubygems/pull/9056)
|
|
30
|
+
- Enforce activation of irb when running with bundle console [#9033](https://github.com/ruby/rubygems/pull/9033)
|
|
31
|
+
- Update Magnus version in Rust extension gem template [#9025](https://github.com/ruby/rubygems/pull/9025)
|
|
32
|
+
- Add checksum of gems hosted on private servers: [#9004](https://github.com/ruby/rubygems/pull/9004)
|
|
33
|
+
- Loading support on Windows [#8254](https://github.com/ruby/rubygems/pull/8254)
|
|
34
|
+
- Improve error message when the same source is specified through `gemspec` and `path` [#8460](https://github.com/ruby/rubygems/pull/8460)
|
|
35
|
+
- Raise an error in frozen mode if some registry gems have empty checksums [#8888](https://github.com/ruby/rubygems/pull/8888)
|
|
36
|
+
- Bump vendored thor to 1.4.0 [#8883](https://github.com/ruby/rubygems/pull/8883)
|
|
37
|
+
- Delay default path and global cache changes to Bundler 5 [#8867](https://github.com/ruby/rubygems/pull/8867)
|
|
38
|
+
- Fix spacing in bundle gem newgem.gemspec.tt [#8865](https://github.com/ruby/rubygems/pull/8865)
|
|
39
|
+
- Add some missing deprecation messages [#8844](https://github.com/ruby/rubygems/pull/8844)
|
|
19
40
|
|
|
20
41
|
### Bug fixes:
|
|
21
42
|
|
|
43
|
+
- Fixed checksums generation issue when no source is specified [#9133](https://github.com/ruby/rubygems/pull/9133)
|
|
22
44
|
- Check for file existence before deletion from cache [#9095](https://github.com/ruby/rubygems/pull/9095)
|
|
23
|
-
|
|
24
|
-
|
|
45
|
+
- Use method_defined?(:method, false) [#9098](https://github.com/ruby/rubygems/pull/9098)
|
|
46
|
+
- Handle BUNDLER_VERSION being set to an empty string [#6928](https://github.com/ruby/rubygems/pull/6928)
|
|
47
|
+
- Fix `bundle install` when the Gemfile contains "install_if" git gems: [#8992](https://github.com/ruby/rubygems/pull/8992)
|
|
48
|
+
- Fix installation issue related to path sources and precompiled gems [#8973](https://github.com/ruby/rubygems/pull/8973)
|
|
49
|
+
- Fix outdated lockfile during `bundle lock` when source changes [#8962](https://github.com/ruby/rubygems/pull/8962)
|
|
50
|
+
- Raise error on missing version file [#8963](https://github.com/ruby/rubygems/pull/8963)
|
|
51
|
+
- Fix `bundle cache --frozen` and `bundle cache --no-prune` not printing a deprecation message [#8926](https://github.com/ruby/rubygems/pull/8926)
|
|
52
|
+
- Fix local installation incorrectly forced if there's a `vendor/cache` directory and frozen mode is set [#8925](https://github.com/ruby/rubygems/pull/8925)
|
|
53
|
+
- Fix `bundle lock --update <gem>` with `--lockfile` flag updating all gems [#8922](https://github.com/ruby/rubygems/pull/8922)
|
|
54
|
+
- Fix `bundle show --verbose` and recommend it as an alternative to `bundle show --outdated` [#8915](https://github.com/ruby/rubygems/pull/8915)
|
|
55
|
+
- Fix `bundle cache --no-all` not printing a deprecation warning [#8912](https://github.com/ruby/rubygems/pull/8912)
|
|
56
|
+
- Fix `bundle update foo` unable to update foo in an edge case [#8897](https://github.com/ruby/rubygems/pull/8897)
|
|
57
|
+
- Fix Bundler printing more flags than actually passed in verbose mode [#8914](https://github.com/ruby/rubygems/pull/8914)
|
|
58
|
+
- Fix bundler failing to install sorbet-static in truffleruby when there's no lockfile [#8872](https://github.com/ruby/rubygems/pull/8872)
|
|
59
|
+
- Cancel deprecation of `--force` flag to `bundle install` and `bundle update` [#8843](https://github.com/ruby/rubygems/pull/8843)
|
|
25
60
|
|
|
26
61
|
### Security:
|
|
27
62
|
|
|
@@ -35,14 +70,12 @@
|
|
|
35
70
|
- Pick and add extra changes for 4.0.0 version [#9018](https://github.com/ruby/rubygems/pull/9018)
|
|
36
71
|
- Replaced Bundler::SharedHelpers.major_deprecation to feature_removed! or feature_deprecated! [#9016](https://github.com/ruby/rubygems/pull/9016)
|
|
37
72
|
- Removed legacy_check option from SpecSet#for [#9015](https://github.com/ruby/rubygems/pull/9015)
|
|
38
|
-
- Removed deprecated legacy windows platform support [#9013](https://github.com/ruby/rubygems/pull/9013)
|
|
39
73
|
- Make update_requires_all_flag to settings [#9011](https://github.com/ruby/rubygems/pull/9011)
|
|
40
74
|
- Make default cli command settings [#9010](https://github.com/ruby/rubygems/pull/9010)
|
|
41
75
|
- Make global_gem_cache flag to settings [#9009](https://github.com/ruby/rubygems/pull/9009)
|
|
42
76
|
- Consolidate removal of `Bundler.rubygems.all_specs` [#9008](https://github.com/ruby/rubygems/pull/9008)
|
|
43
77
|
- Consolidate removal of `Bundler::SpecSet#-` and `Bundler::SpecSet#<<` [#9007](https://github.com/ruby/rubygems/pull/9007)
|
|
44
78
|
- Replaced Bundler.feature_flag.plugins? to Bundler.settings [#9006](https://github.com/ruby/rubygems/pull/9006)
|
|
45
|
-
- Switch to 4.0.0.dev in development version [#9002](https://github.com/ruby/rubygems/pull/9002)
|
|
46
79
|
- Make `bundle show --outdated` raise an error [#8980](https://github.com/ruby/rubygems/pull/8980)
|
|
47
80
|
- Make `--local-git` flag to `bundle plugin install` raise an error [#8979](https://github.com/ruby/rubygems/pull/8979)
|
|
48
81
|
- Switch `cache_all` to be `true` by default [#8975](https://github.com/ruby/rubygems/pull/8975)
|
|
@@ -59,40 +92,17 @@
|
|
|
59
92
|
- Remove deprecated `bundle viz` and `bundle inject` commands [#8923](https://github.com/ruby/rubygems/pull/8923)
|
|
60
93
|
- Removed to workaround for Bundler 2.2 [#8903](https://github.com/ruby/rubygems/pull/8903)
|
|
61
94
|
|
|
62
|
-
### Features:
|
|
63
|
-
|
|
64
|
-
- Update Bundler::CurrentRuby::ALL_RUBY_VERSIONS [#9058](https://github.com/ruby/rubygems/pull/9058)
|
|
65
|
-
- Introduce `bundle list --format=json` [#8728](https://github.com/ruby/rubygems/pull/8728)
|
|
66
|
-
|
|
67
|
-
### Performance:
|
|
68
|
-
|
|
69
|
-
- Replace instance method look up in plugin installer [#9094](https://github.com/ruby/rubygems/pull/9094)
|
|
70
|
-
- Adjust the API_REQUEST_LIMIT to make less network roundtrip [#9071](https://github.com/ruby/rubygems/pull/9071)
|
|
71
|
-
|
|
72
|
-
### Enhancements:
|
|
73
|
-
|
|
74
|
-
- Use DidYouMean::SpellChecker for gem suggestions in Bundler [#3857](https://github.com/ruby/rubygems/pull/3857)
|
|
75
|
-
- Update all vendored libraries to latest version [#9089](https://github.com/ruby/rubygems/pull/9089)
|
|
76
|
-
- We don't need to allow some warning now [#9074](https://github.com/ruby/rubygems/pull/9074)
|
|
77
|
-
- Shell out fewer times [#9068](https://github.com/ruby/rubygems/pull/9068)
|
|
78
|
-
- Build gems directly instead of shelling out [#9053](https://github.com/ruby/rubygems/pull/9053)
|
|
79
|
-
- Support to embedded Pathname [#9056](https://github.com/ruby/rubygems/pull/9056)
|
|
80
|
-
- Forcely activate irb when running with bundle console [#9033](https://github.com/ruby/rubygems/pull/9033)
|
|
81
|
-
- Update Magnus version in Rust extension gem template [#9025](https://github.com/ruby/rubygems/pull/9025)
|
|
82
|
-
- Postpone to remove legacy mingw platform [#9023](https://github.com/ruby/rubygems/pull/9023)
|
|
83
|
-
- Add checksum of gems hosted on private servers: [#9004](https://github.com/ruby/rubygems/pull/9004)
|
|
84
|
-
- Loading support on Windows [#8254](https://github.com/ruby/rubygems/pull/8254)
|
|
85
|
-
|
|
86
|
-
### Bug fixes:
|
|
87
|
-
|
|
88
|
-
- Fix `bundle install` when the Gemfile contains "install_if" git gems: [#8992](https://github.com/ruby/rubygems/pull/8992)
|
|
89
|
-
- Fix installation issue related to path sources and precompiled gems [#8973](https://github.com/ruby/rubygems/pull/8973)
|
|
90
|
-
- Fix outdated lockfile during `bundle lock` when source changes [#8962](https://github.com/ruby/rubygems/pull/8962)
|
|
91
|
-
- Raise error on missing version file [#8963](https://github.com/ruby/rubygems/pull/8963)
|
|
92
|
-
|
|
93
95
|
### Documentation:
|
|
94
96
|
|
|
97
|
+
- Unified UPGRADING.md and extract blog.rubygems.org [#9148](https://github.com/ruby/rubygems/pull/9148)
|
|
98
|
+
- Remove italic formatting from changelog section headers [#9128](https://github.com/ruby/rubygems/pull/9128)
|
|
95
99
|
- Small clarifications to Bundler 4 upgrade docs [#8964](https://github.com/ruby/rubygems/pull/8964)
|
|
100
|
+
- Improve documentation of `bundle doctor`, `bundle plugin`, and `bundle config` [#8919](https://github.com/ruby/rubygems/pull/8919)
|
|
101
|
+
- Make sure all CLI flags and subcommands are documented [#8861](https://github.com/ruby/rubygems/pull/8861)
|
|
102
|
+
- Clarify documentation about new default gem installation directory in Bundler 4 [#8857](https://github.com/ruby/rubygems/pull/8857)
|
|
103
|
+
- Use mailto link in Code of Conduct [#8849](https://github.com/ruby/rubygems/pull/8849)
|
|
104
|
+
- Update Code of Conduct email to conduct@rubygems.org [#8848](https://github.com/ruby/rubygems/pull/8848)
|
|
105
|
+
- Add missing link to `irb` repo in DEBUGGING.md [#8842](https://github.com/ruby/rubygems/pull/8842)
|
|
96
106
|
|
|
97
107
|
## 2.7.2 (2025-09-09)
|
|
98
108
|
|
|
@@ -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 = "2025-
|
|
8
|
-
@git_commit_sha = "
|
|
7
|
+
@built_at = "2025-12-03".freeze
|
|
8
|
+
@git_commit_sha = "64d0dfe695".freeze
|
|
9
9
|
# end ivars
|
|
10
10
|
|
|
11
11
|
# A hash representation of the build metadata.
|
data/bundler/lib/bundler/cli.rb
CHANGED
|
@@ -69,7 +69,7 @@ module Bundler
|
|
|
69
69
|
|
|
70
70
|
# lock --lockfile works differently than install --lockfile
|
|
71
71
|
unless current_cmd == "lock"
|
|
72
|
-
custom_lockfile = options[:lockfile] || Bundler.settings[:lockfile]
|
|
72
|
+
custom_lockfile = options[:lockfile] || ENV["BUNDLE_LOCKFILE"] || Bundler.settings[:lockfile]
|
|
73
73
|
if custom_lockfile && !custom_lockfile.empty?
|
|
74
74
|
Bundler::SharedHelpers.set_env "BUNDLE_LOCKFILE", File.expand_path(custom_lockfile)
|
|
75
75
|
reset_settings = true
|
|
@@ -120,20 +120,28 @@ module Bundler
|
|
|
120
120
|
self.class.send(:class_options_help, shell)
|
|
121
121
|
end
|
|
122
122
|
|
|
123
|
+
desc "install_or_cli_help", "Tries to run bundle install but prints a summary of bundler commands if there is no Gemfile", hide: true
|
|
124
|
+
def install_or_cli_help
|
|
125
|
+
invoke_other_command("install")
|
|
126
|
+
rescue GemfileNotFound => error
|
|
127
|
+
Bundler.ui.error error.message, wrap: true
|
|
128
|
+
invoke_other_command("cli_help")
|
|
129
|
+
end
|
|
130
|
+
|
|
123
131
|
def self.default_command(meth = nil)
|
|
124
132
|
return super if meth
|
|
125
133
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
134
|
+
unless Bundler.settings[:default_cli_command]
|
|
135
|
+
Bundler.ui.info <<-MSG
|
|
136
|
+
In a future version of Bundler, running `bundle` without argument will no longer run `bundle install`.
|
|
137
|
+
Instead, the `cli_help` command will be displayed. Please use `bundle install` explicitly for scripts like CI/CD.
|
|
138
|
+
You can use the future behavior now with `bundle config set default_cli_command cli_help --global`,
|
|
139
|
+
or you can continue to use the current behavior with `bundle config set default_cli_command install_or_cli_help --global`.
|
|
140
|
+
This message will be removed after a default_cli_command value is set.
|
|
141
|
+
MSG
|
|
142
|
+
end
|
|
135
143
|
|
|
136
|
-
"
|
|
144
|
+
Bundler.settings[:default_cli_command] || "install_or_cli_help"
|
|
137
145
|
end
|
|
138
146
|
|
|
139
147
|
class_option "no-color", type: :boolean, desc: "Disable colorization in output"
|
|
@@ -274,8 +282,10 @@ module Bundler
|
|
|
274
282
|
end
|
|
275
283
|
|
|
276
284
|
require_relative "cli/install"
|
|
285
|
+
options = self.options.dup
|
|
286
|
+
options["lockfile"] ||= ENV["BUNDLE_LOCKFILE"]
|
|
277
287
|
Bundler.settings.temporary(no_install: false) do
|
|
278
|
-
Install.new(options
|
|
288
|
+
Install.new(options).run
|
|
279
289
|
end
|
|
280
290
|
end
|
|
281
291
|
|
|
@@ -723,6 +733,19 @@ module Bundler
|
|
|
723
733
|
config[:current_command]
|
|
724
734
|
end
|
|
725
735
|
|
|
736
|
+
def invoke_other_command(name)
|
|
737
|
+
_, _, config = @_initializer
|
|
738
|
+
original_command = config[:current_command]
|
|
739
|
+
command = self.class.all_commands[name]
|
|
740
|
+
config[:current_command] = command
|
|
741
|
+
send(name)
|
|
742
|
+
ensure
|
|
743
|
+
config[:current_command] = original_command
|
|
744
|
+
end
|
|
745
|
+
|
|
746
|
+
def current_command=(command)
|
|
747
|
+
end
|
|
748
|
+
|
|
726
749
|
def print_command
|
|
727
750
|
return unless Bundler.ui.debug?
|
|
728
751
|
cmd = current_command
|
|
@@ -494,9 +494,9 @@ The \fBbundle install\fR \fB\-\-no\-lock\fR option (which disables lockfile crea
|
|
|
494
494
|
.IP "2." 4
|
|
495
495
|
The \fBbundle install\fR \fB\-\-lockfile\fR option\.
|
|
496
496
|
.IP "3." 4
|
|
497
|
-
The \fBlockfile\fR method in the Gemfile\.
|
|
498
|
-
.IP "4." 4
|
|
499
497
|
The \fBBUNDLE_LOCKFILE\fR environment variable\.
|
|
498
|
+
.IP "4." 4
|
|
499
|
+
The \fBlockfile\fR method in the Gemfile\.
|
|
500
500
|
.IP "5." 4
|
|
501
501
|
The default behavior of adding \fB\.lock\fR to the end of the Gemfile name\.
|
|
502
502
|
.IP "" 0
|
|
@@ -581,6 +581,6 @@ following precedence is used:
|
|
|
581
581
|
|
|
582
582
|
1. The `bundle install` `--no-lock` option (which disables lockfile creation).
|
|
583
583
|
1. The `bundle install` `--lockfile` option.
|
|
584
|
-
1. The `lockfile` method in the Gemfile.
|
|
585
584
|
1. The `BUNDLE_LOCKFILE` environment variable.
|
|
585
|
+
1. The `lockfile` method in the Gemfile.
|
|
586
586
|
1. The default behavior of adding `.lock` to the end of the Gemfile name.
|
|
@@ -625,7 +625,7 @@ class Bundler::Thor
|
|
|
625
625
|
# alias name.
|
|
626
626
|
def find_command_possibilities(meth)
|
|
627
627
|
len = meth.to_s.length
|
|
628
|
-
possibilities = all_commands.merge(map).keys.select { |n| meth == n[0, len] }.sort
|
|
628
|
+
possibilities = all_commands.reject { |_k, c| c.hidden? }.merge(map).keys.select { |n| meth == n[0, len] }.sort
|
|
629
629
|
unique_possibilities = possibilities.map { |k| map[k] || k }.uniq
|
|
630
630
|
|
|
631
631
|
if possibilities.include?(meth)
|
data/doc/UPGRADING.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# How to upgrade/downgrade Rubygems and Bundler:
|
|
2
|
+
|
|
3
|
+
## Upgrade Recipe
|
|
4
|
+
|
|
5
|
+
$ gem update --system
|
|
6
|
+
|
|
7
|
+
$ gem install bundler
|
|
8
|
+
$ bundle update --bundler
|
|
9
|
+
|
|
10
|
+
## Downgrade Recipe
|
|
11
|
+
|
|
12
|
+
$ gem update --system 3.7.2
|
|
13
|
+
|
|
14
|
+
$ gem install bundler -v 2.7.2
|
|
15
|
+
$ bundle update --bundler=2.7.2
|
|
16
|
+
|
|
17
|
+
## Install a pre-release version
|
|
18
|
+
|
|
19
|
+
$ gem update --system --pre
|
|
20
|
+
|
|
21
|
+
$ gem install bundler --pre
|
|
22
|
+
$ bundle update --bundler=4.0.0.beta1
|
|
23
|
+
|
|
24
|
+
## Install from source
|
|
25
|
+
|
|
26
|
+
* Download from: https://rubygems.org/pages/download
|
|
27
|
+
* Unpack into a directory and `cd` there
|
|
28
|
+
* Install with: `ruby setup.rb`
|
data/doc/rubygems/POLICIES.md
CHANGED
|
@@ -40,150 +40,6 @@ releases will only support Ruby 2.3 and above. As of this writing RubyGems is
|
|
|
40
40
|
at version 2.7, so when RubyGems 2.8 is released, it will only support Ruby
|
|
41
41
|
2.3 and later.
|
|
42
42
|
|
|
43
|
-
## Release Process
|
|
44
|
-
|
|
45
|
-
### Permissions
|
|
46
|
-
|
|
47
|
-
You'll need the following environment variables set to release RubyGems &
|
|
48
|
-
Bundler:
|
|
49
|
-
|
|
50
|
-
* AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY: to be able to push RubyGems zip
|
|
51
|
-
files to s3 so that they appear at RubyGems [download page].
|
|
52
|
-
|
|
53
|
-
* GITHUB_RELEASE_PAT: A [GitHub PAT] with repo permissions, in order to push
|
|
54
|
-
GitHub releases and to use the GitHub API for changelog generation.
|
|
55
|
-
|
|
56
|
-
[download page]: https://rubygems.org/pages/download
|
|
57
|
-
[GitHub PAT]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
|
|
58
|
-
|
|
59
|
-
### Recommendations for security releases
|
|
60
|
-
|
|
61
|
-
* Obtain CVE numbers as needed from HackerOne or Red Hat.
|
|
62
|
-
* Agree on a release date with ruby-core, so patches can be backported to
|
|
63
|
-
older Ruby versions as needed.
|
|
64
|
-
* Avoid releasing security updates on Fridays, so platform services don't
|
|
65
|
-
have to work on weekends.
|
|
66
|
-
* Continue with the regular release process below.
|
|
67
|
-
|
|
68
|
-
### Branching
|
|
69
|
-
|
|
70
|
-
Bundler releases are synchronized with rubygems releases at the moment. That
|
|
71
|
-
means that releases for both share the same stable branch, and they should
|
|
72
|
-
generally happen together.
|
|
73
|
-
|
|
74
|
-
The current conventional naming for stable branches is `x+1.y`, where `x.y` is
|
|
75
|
-
the version of `bundler` that will be released. This is because `rubygems-x+1.y`
|
|
76
|
-
will be released at the same time.
|
|
77
|
-
|
|
78
|
-
For example, `rubygems-3.2.0` and `bundler-2.2.0` were both released from the
|
|
79
|
-
`3.2` stable branch.
|
|
80
|
-
|
|
81
|
-
Once a stable branch has been cut from `master`, changes for that minor release
|
|
82
|
-
series are only made _intentionally_, via patch releases. That is to say,
|
|
83
|
-
changes to `master` by default _won't_ make their way into the current stable
|
|
84
|
-
branch, and development on `master` will be targeting the next minor
|
|
85
|
-
or major release.
|
|
86
|
-
|
|
87
|
-
There is a `bin/rake prepare_release[<target_rubygems_version>]` rake task
|
|
88
|
-
that helps with creating a release. It takes a single argument, the _exact
|
|
89
|
-
rubygems release_ being made (e.g. `3.2.3` when releasing bundler `2.2.3`).
|
|
90
|
-
This task checks out the appropriate stable branch (`3.2`, for example), grabs
|
|
91
|
-
all merged but unreleased PRs from both bundler & rubygems from GitHub that are
|
|
92
|
-
compatible with the target release level, and then cherry-picks those changes
|
|
93
|
-
(and only those changes) to a new branch based off the stable branch. Then bumps
|
|
94
|
-
the version in all version files, synchronizes both changelogs to include all
|
|
95
|
-
backported changes and commits that change on top of the cherry-picks.
|
|
96
|
-
|
|
97
|
-
Note that this task requires all user facing pull requests to be tagged with
|
|
98
|
-
specific labels. See [Merging a PR](../bundler/playbooks/MERGING_A_PR.md) for details.
|
|
99
|
-
|
|
100
|
-
Also note that when this task cherry-picks, it cherry-picks the merge commits
|
|
101
|
-
using the following command:
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
$ git cherry-pick -m 1 MERGE_COMMIT_SHAS
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
For example, for PR [#5029](https://github.com/rubygems/bundler/pull/5029), we
|
|
108
|
-
cherry picked commit [dd6aef9](https://github.com/rubygems/bundler/commit/dd6aef97a5f2e7173f406267256a8c319d6134ab),
|
|
109
|
-
not [4fe9291](https://github.com/rubygems/bundler/commit/4fe92919f51e3463f0aad6fa833ab68044311f03)
|
|
110
|
-
using:
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
$ git cherry-pick -m 1 dd6aef9
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
After running the task, you'll have a release branch ready to be merged into the
|
|
117
|
-
stable branch. You'll want to open a PR from this branch into the stable branch
|
|
118
|
-
and provided CI is green, you can go ahead, merge the PR and run release tasks
|
|
119
|
-
as specified below from the updated stable branch.
|
|
120
|
-
|
|
121
|
-
### Automatic changelog and backport generation
|
|
122
|
-
|
|
123
|
-
PR labels and titles are used to automatically generate changelogs for patch and
|
|
124
|
-
minor releases.
|
|
125
|
-
|
|
126
|
-
When releasing, a changelog generation script goes through all PRs that have
|
|
127
|
-
never made it into a release, and selects only the ones with specific labels as
|
|
128
|
-
detailed in the `.changelog.yml` and `bundler/.changelog.yml` files. Those
|
|
129
|
-
particular PRs get backported to the stable branch and included in the release
|
|
130
|
-
changelog.
|
|
131
|
-
|
|
132
|
-
If PRs don't have a proper label, they won't be backported to patch releases.
|
|
133
|
-
|
|
134
|
-
If you want a PR to be backported to a patch level release, but don't want to
|
|
135
|
-
include it in the changelog, you can use the special `rubygems: skip changelog`
|
|
136
|
-
and `bundler: skip changelog` labels. For example, this is useful when
|
|
137
|
-
backporting a PR generates conflicts that are solved by backporting another PR
|
|
138
|
-
with no user visible changes. You can use these special labels to also backport
|
|
139
|
-
the other PR and not get any conflicts.
|
|
140
|
-
|
|
141
|
-
### Breaking changes
|
|
142
|
-
|
|
143
|
-
Bundler cares a lot about preserving compatibility. As a result, changes that
|
|
144
|
-
break backwards compatibility should (whenever this is possible) include a feature
|
|
145
|
-
release that is backwards compatible, and issue warnings for all options and
|
|
146
|
-
behaviors that will change.
|
|
147
|
-
|
|
148
|
-
We only release major breaking changes when incrementing the _major_ version of
|
|
149
|
-
Bundler and RubyGems. However, experience shows that almost every single part of
|
|
150
|
-
Bundler and RubyGems is depended on by someone in ways hard to anticipate. So if
|
|
151
|
-
we were strict about breaking changes we'd need to hold on from making progress
|
|
152
|
-
a lot, or continuously increment the major version, emptying "really major"
|
|
153
|
-
versions from their meaning. Because of this, we also may release "small"
|
|
154
|
-
breaking changes in minor releases. "Small" here means that we expect them to
|
|
155
|
-
affect only very few users in rare cases.
|
|
156
|
-
|
|
157
|
-
### Steps for patch releases
|
|
158
|
-
|
|
159
|
-
* Confirm all PRs that you want backported are properly tagged with `rubygems:
|
|
160
|
-
<type>` or `bundler: <type>` labels at GitHub.
|
|
161
|
-
* Run `bin/rake prepare_release[<target_rubygems_version>]`. This will create
|
|
162
|
-
a PR to the stable branch with the backports included in the release, and
|
|
163
|
-
proper changelogs and version bumps. It will also create a PR to merge
|
|
164
|
-
release changelogs into master.
|
|
165
|
-
* Once CI passes, merge the release PR, switch to the stable branch and pull
|
|
166
|
-
the PR just merged.
|
|
167
|
-
* Release `bundler` with `bin/rake bundler:release`.
|
|
168
|
-
* Release `rubygems` with `bin/rake release`.
|
|
169
|
-
|
|
170
|
-
### Steps for minor and major releases
|
|
171
|
-
|
|
172
|
-
* Confirm all PRs that you want listed in changelogs are properly tagged with
|
|
173
|
-
`rubygems: <type>` or `bundler: <type>` labels at GitHub.
|
|
174
|
-
* Run `bin/rake prepare_release[<target_rubygems_version>]`. This will create
|
|
175
|
-
a new stable branch off the master branch, and create a PR to it with the
|
|
176
|
-
proper version bumps and changelogs. It will also create a PR to merge
|
|
177
|
-
release changelogs into master.
|
|
178
|
-
* Replace the stable branch in the workflows with the new stable branch, and
|
|
179
|
-
push that change to the release PR.
|
|
180
|
-
* Replace version numbers with the next ".dev" version, and push that change
|
|
181
|
-
to the master PR.
|
|
182
|
-
* Once CI passes, merge the release PR, switch to the stable branch and pull
|
|
183
|
-
the PR just merged.
|
|
184
|
-
* Release `bundler` with `bin/rake bundler:release`.
|
|
185
|
-
* Release `rubygems` with `bin/rake release`.
|
|
186
|
-
|
|
187
43
|
## Committer Access
|
|
188
44
|
|
|
189
45
|
RubyGems committers may lose their commit privileges if they are inactive for
|
|
@@ -40,6 +40,9 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
|
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
ENV["DESTDIR"] = nil
|
|
43
|
+
unless RUBY_PLATFORM.include?("mswin") && RbConfig::CONFIG["configure_args"]&.include?("nmake")
|
|
44
|
+
ENV["MAKEFLAGS"] ||= "-j#{Etc.nprocessors + 1}"
|
|
45
|
+
end
|
|
43
46
|
|
|
44
47
|
make dest_path, results, extension_dir, tmp_dest_relative, target_rbconfig: target_rbconfig
|
|
45
48
|
|
data/lib/rubygems.rb
CHANGED
data/rubygems-update.gemspec
CHANGED
|
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
|
|
|
32
32
|
s.extra_rdoc_files = [
|
|
33
33
|
"LICENSE.txt", "doc/MAINTAINERS.txt",
|
|
34
34
|
"MIT.txt", "Manifest.txt", "README.md",
|
|
35
|
-
"doc/
|
|
35
|
+
"doc/UPGRADING.md", "doc/rubygems/POLICIES.md", "CODE_OF_CONDUCT.md",
|
|
36
36
|
"doc/rubygems/CONTRIBUTING.md",
|
|
37
37
|
"bundler/LICENSE.md", "bundler/README.md",
|
|
38
38
|
"hide_lib_for_update/note.txt", *Dir["bundler/lib/bundler/man/*.1", base: __dir__]
|
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: 4.0.0
|
|
4
|
+
version: 4.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jim Weirich
|
|
@@ -76,9 +76,9 @@ extra_rdoc_files:
|
|
|
76
76
|
- bundler/lib/bundler/man/bundle-version.1
|
|
77
77
|
- bundler/lib/bundler/man/bundle.1
|
|
78
78
|
- doc/MAINTAINERS.txt
|
|
79
|
+
- doc/UPGRADING.md
|
|
79
80
|
- doc/rubygems/CONTRIBUTING.md
|
|
80
81
|
- doc/rubygems/POLICIES.md
|
|
81
|
-
- doc/rubygems/UPGRADING.md
|
|
82
82
|
- hide_lib_for_update/note.txt
|
|
83
83
|
files:
|
|
84
84
|
- CHANGELOG.md
|
|
@@ -435,10 +435,9 @@ files:
|
|
|
435
435
|
- bundler/lib/bundler/worker.rb
|
|
436
436
|
- bundler/lib/bundler/yaml_serializer.rb
|
|
437
437
|
- doc/MAINTAINERS.txt
|
|
438
|
-
- doc/
|
|
438
|
+
- doc/UPGRADING.md
|
|
439
439
|
- doc/rubygems/CONTRIBUTING.md
|
|
440
440
|
- doc/rubygems/POLICIES.md
|
|
441
|
-
- doc/rubygems/UPGRADING.md
|
|
442
441
|
- exe/gem
|
|
443
442
|
- exe/update_rubygems
|
|
444
443
|
- hide_lib_for_update/note.txt
|
data/doc/bundler/UPGRADING.md
DELETED
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
# Upgrading
|
|
2
|
-
|
|
3
|
-
## Bundler 4
|
|
4
|
-
|
|
5
|
-
In order to prepare for Bundler 4, you can easily configure Bundler 2.7 to
|
|
6
|
-
behave exactly like Bundler 4 will behave. To do so, set the environment
|
|
7
|
-
variable `BUNDLE_SIMULATE_VERSION` to `4`. Alternatively, you can use `bundle
|
|
8
|
-
config` and enable "Bundler 4 mode" either globally through `bundle config set
|
|
9
|
-
--global simulate_version 4`, or locally through `bundle config set --local
|
|
10
|
-
simulate_version 4`. From now on in this document we will assume that all three
|
|
11
|
-
of these configuration options are available, but will only mention `bundle
|
|
12
|
-
config set <option> <value>`.
|
|
13
|
-
|
|
14
|
-
The following is a summary of the changes that we plan to introduce in Bundler
|
|
15
|
-
4, and why we will be making those changes. Some of them should be well known
|
|
16
|
-
already by existing users, because we have been printing deprecation messages
|
|
17
|
-
for years, but some of them are defaults that will be switched in Bundler 4 and
|
|
18
|
-
needs some heads up.
|
|
19
|
-
|
|
20
|
-
### Running just `bundle` will print help usage
|
|
21
|
-
|
|
22
|
-
We're changing this default to make Bundler more friendly for new users. We do
|
|
23
|
-
understand that long time users already know how Bundler works and find useful
|
|
24
|
-
that just `bundle` defaults to `bundle install`. Those users can keep the
|
|
25
|
-
existing default by configuring
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
bundle config default_cli_command install
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Flags passed to `bundle install` that relied on being remembered across invocations will be removed
|
|
32
|
-
|
|
33
|
-
In particular, the `--clean`, `--deployment`, `--frozen`, `--no-prune`,
|
|
34
|
-
`--path`, `--shebang`, `--system`, `--without`, and `--with` options to `bundle
|
|
35
|
-
install`.
|
|
36
|
-
|
|
37
|
-
Remembering CLI options has been a source of historical confusion and bug
|
|
38
|
-
reports, not only for beginners but also for experienced users. A CLI tool
|
|
39
|
-
should not behave differently across exactly the same invocations _unless_
|
|
40
|
-
explicitly configured to do so. This is what configuration is about after all,
|
|
41
|
-
and things should never be silently configured without the user knowing about
|
|
42
|
-
it.
|
|
43
|
-
|
|
44
|
-
The problem with changing this behavior is that very common workflows are
|
|
45
|
-
relying on it. For example, when you run `bundle install --without
|
|
46
|
-
development:test` in production, those flags are persisted in the app's
|
|
47
|
-
configuration file and further `bundle` invocations will happily ignore
|
|
48
|
-
development and test gems. This magic will disappear from bundler 4, and you
|
|
49
|
-
will explicitly need to configure it, either through environment variables,
|
|
50
|
-
application configuration, or machine configuration. For example, with `bundle
|
|
51
|
-
config set --local without development test`.
|
|
52
|
-
|
|
53
|
-
### Bundler will include checksums in new lockfiles by default
|
|
54
|
-
|
|
55
|
-
We shipped this security feature recently and we believe it's time to turn it on
|
|
56
|
-
by default, so that everyone benefits from the extra security assurances. So
|
|
57
|
-
whenever you create a new lockfile, Bundler will include a CHECKSUMS section.
|
|
58
|
-
Bundler will not automatically add a CHECKSUMS section to existing
|
|
59
|
-
lockfiles, though, unless explicitly requested through `bundle lock
|
|
60
|
-
--add-checksums`.
|
|
61
|
-
|
|
62
|
-
### Strict source pinning in Gemfile is enforced by default
|
|
63
|
-
|
|
64
|
-
In bundler 4, the source for every dependency will be unambiguously defined, and
|
|
65
|
-
Bundler will refuse to run otherwise.
|
|
66
|
-
|
|
67
|
-
* Multiple global Gemfile sources will no longer be supported.
|
|
68
|
-
|
|
69
|
-
Instead of something like this:
|
|
70
|
-
|
|
71
|
-
```ruby
|
|
72
|
-
source "https://main_source"
|
|
73
|
-
source "https://another_source"
|
|
74
|
-
|
|
75
|
-
gem "dependency1"
|
|
76
|
-
gem "dependency2"
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
do something like this:
|
|
80
|
-
|
|
81
|
-
```ruby
|
|
82
|
-
source "https://main_source"
|
|
83
|
-
|
|
84
|
-
gem "dependency1"
|
|
85
|
-
|
|
86
|
-
source "https://another_source" do
|
|
87
|
-
gem "dependency2"
|
|
88
|
-
end
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
* Global `path` and `git` sources will no longer be supported.
|
|
92
|
-
|
|
93
|
-
Instead of something like this:
|
|
94
|
-
|
|
95
|
-
```ruby
|
|
96
|
-
path "/my/path/with/gems"
|
|
97
|
-
git "https://my_git_repo_with_gems"
|
|
98
|
-
|
|
99
|
-
gem "dependency1"
|
|
100
|
-
gem "dependency2"
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
do something like this:
|
|
104
|
-
|
|
105
|
-
```ruby
|
|
106
|
-
gem "dependency1", path: "/my/path/with/gems"
|
|
107
|
-
gem "dependency2", git: "https://my_git_repo_with_gems"
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
or use the block forms if you have multiple gems for each source and you want
|
|
111
|
-
to be a bit DRYer:
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
```ruby
|
|
115
|
-
path "/my/path/with/gems" do
|
|
116
|
-
# gem "dependency1"
|
|
117
|
-
# ...
|
|
118
|
-
# gem "dependencyn"
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
git "https://my_git_repo_with_gems" do
|
|
122
|
-
# gem "dependency1"
|
|
123
|
-
# ...
|
|
124
|
-
# gem "dependencyn"
|
|
125
|
-
end
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
#### Notable CLI changes
|
|
129
|
-
|
|
130
|
-
* `bundle viz` will be removed and extracted to a plugin.
|
|
131
|
-
|
|
132
|
-
This is the only bundler command requiring external dependencies, both an OS
|
|
133
|
-
dependency (the `graphviz` package) and a gem dependency (the `ruby-graphviz`
|
|
134
|
-
gem). Removing these dependencies will make development easier and it was also
|
|
135
|
-
seen by the bundler team as an opportunity to develop a bundler plugin that
|
|
136
|
-
it's officially maintained by the bundler team, and that users can take as a
|
|
137
|
-
reference to develop their own plugins. The plugin will contain the same code
|
|
138
|
-
as the old core command, the only difference being that the command is now
|
|
139
|
-
implemented as `bundle graph` which is much easier to understand. However, the
|
|
140
|
-
details of the plugin are under discussion. See [#3333](https://github.com/ruby/rubygems/issues/3333).
|
|
141
|
-
|
|
142
|
-
* The `bundle install` command will no longer accept a `--binstubs` flag.
|
|
143
|
-
|
|
144
|
-
The `--binstubs` option has been removed from `bundle install` and replaced
|
|
145
|
-
with the `bundle binstubs` command. The `--binstubs` flag would create
|
|
146
|
-
binstubs for all executables present inside the gems in the project. This was
|
|
147
|
-
hardly useful since most users will only use a subset of all the binstubs
|
|
148
|
-
available to them. Also, it would force the introduction of a bunch of most
|
|
149
|
-
likely unused files into source control. Because of this, binstubs now must
|
|
150
|
-
be created and checked into version control individually.
|
|
151
|
-
|
|
152
|
-
* The `bundle inject` command will be replaced with `bundle add`
|
|
153
|
-
|
|
154
|
-
We believe the new command fits the user's mental model better and it supports
|
|
155
|
-
a wider set of use cases. The interface supported by `bundle inject` works
|
|
156
|
-
exactly the same in `bundle add`, so it should be easy to migrate to the new
|
|
157
|
-
command.
|
|
158
|
-
|
|
159
|
-
### Other notable changes
|
|
160
|
-
|
|
161
|
-
* Git and Path gems will be included in `vendor/cache` by default
|
|
162
|
-
|
|
163
|
-
If you have a `vendor/cache` directory (to support offline scenarios, for
|
|
164
|
-
example), Bundler will start including gems from `path` and `git` sources in
|
|
165
|
-
there. We're unsure why these gems were treated specially so we'll start
|
|
166
|
-
caching them normally.
|
|
167
|
-
|
|
168
|
-
* Bundler will use cached local data if available when network issues are found
|
|
169
|
-
during resolution.
|
|
170
|
-
|
|
171
|
-
Just trying to provide a more resilient behavior here.
|
|
172
|
-
|
|
173
|
-
* `Bundler.clean_env`, `Bundler.with_clean_env`, `Bundler.clean_system`, and `Bundler.clean_exec` will be removed
|
|
174
|
-
|
|
175
|
-
All of these helpers ultimately use `Bundler.clean_env` under the hood, which
|
|
176
|
-
makes sure all bundler-related environment are removed inside the block it
|
|
177
|
-
yields.
|
|
178
|
-
|
|
179
|
-
After quite a lot user reports, we noticed that users don't usually want this
|
|
180
|
-
but instead want the bundler environment as it was before the current process
|
|
181
|
-
was started. Thus, `Bundler.with_original_env`, `Bundler.original_system`, and
|
|
182
|
-
`Bundler.original_exec` were born. They all use the new `Bundler.original_env`
|
|
183
|
-
under the hood.
|
|
184
|
-
|
|
185
|
-
There's however some specific cases where the good old `Bundler.clean_env`
|
|
186
|
-
behavior can be useful. For example, when testing Rails generators, you really
|
|
187
|
-
want an environment where `bundler` is out of the picture. This is why we
|
|
188
|
-
decided to keep the old behavior under a new more clear name, because we
|
|
189
|
-
figured the word "clean" was too ambiguous. So we have introduced
|
|
190
|
-
`Bundler.unbundled_env`, `Bundler.with_unbundled_env`,
|
|
191
|
-
`Bundler.unbundled_system`, and `Bundler.unbundled_exec`.
|
|
192
|
-
|
|
193
|
-
* `Bundler.environment` is deprecated in favor of `Bundler.load`.
|
|
194
|
-
|
|
195
|
-
We're not sure how people might be using this directly but we have removed the
|
|
196
|
-
`Bundler::Environment` class which was instantiated by `Bundler.environment`
|
|
197
|
-
since we realized the `Bundler::Runtime` class was the same thing. During the
|
|
198
|
-
transition `Bundler.environment` will delegate to `Bundler.load`, which holds
|
|
199
|
-
the reference to the `Bundler::Environment`.
|
|
200
|
-
|
|
201
|
-
* Deployment helpers for `vlad` and `capistrano` are being removed.
|
|
202
|
-
|
|
203
|
-
These are natural deprecations since the `vlad` tool has had no activity for
|
|
204
|
-
years whereas `capistrano` 3 has built-in Bundler integration in the form of
|
|
205
|
-
the `capistrano-bundler` gem, and everyone using Capistrano 3 should be
|
|
206
|
-
already using that instead. If for some reason, you are still using Capistrano
|
|
207
|
-
2, feel free to copy the Capistrano tasks out of the Bundler 2 file
|
|
208
|
-
`lib/bundler/deployment.rb` and put them into your app.
|
|
209
|
-
|
|
210
|
-
In general, we don't want to maintain integrations for every deployment system
|
|
211
|
-
out there, so that's why we are removing these.
|
data/doc/rubygems/UPGRADING.md
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# How to upgrade/downgrade Rubygems:
|
|
2
|
-
|
|
3
|
-
## Downgrade Recipe
|
|
4
|
-
|
|
5
|
-
$ gem update --system 3.1.4
|
|
6
|
-
|
|
7
|
-
## Upgrade Recipe
|
|
8
|
-
|
|
9
|
-
$ gem update --system
|
|
10
|
-
|
|
11
|
-
## Install from source
|
|
12
|
-
|
|
13
|
-
* Download from: https://rubygems.org/pages/download
|
|
14
|
-
* Unpack into a directory and `cd` there
|
|
15
|
-
* Install with: `ruby setup.rb`
|