bundler 2.3.26 → 2.4.5
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 +110 -1
- data/README.md +2 -2
- data/bundler.gemspec +2 -2
- data/exe/bundle +1 -4
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/cli/add.rb +1 -1
- data/lib/bundler/cli/check.rb +1 -1
- data/lib/bundler/cli/common.rb +1 -0
- data/lib/bundler/cli/console.rb +2 -2
- data/lib/bundler/cli/doctor.rb +4 -6
- data/lib/bundler/cli/gem.rb +62 -40
- data/lib/bundler/cli/install.rb +2 -3
- data/lib/bundler/cli/lock.rb +8 -5
- data/lib/bundler/cli/open.rb +6 -4
- data/lib/bundler/cli/outdated.rb +1 -3
- data/lib/bundler/cli/viz.rb +1 -1
- data/lib/bundler/cli.rb +44 -2
- data/lib/bundler/compact_index_client/cache.rb +1 -1
- data/lib/bundler/compact_index_client/updater.rb +40 -39
- data/lib/bundler/constants.rb +1 -1
- data/lib/bundler/definition.rb +87 -51
- data/lib/bundler/dependency.rb +12 -11
- data/lib/bundler/digest.rb +1 -1
- data/lib/bundler/dsl.rb +3 -3
- data/lib/bundler/env.rb +1 -1
- data/lib/bundler/environment_preserver.rb +1 -0
- data/lib/bundler/errors.rb +1 -11
- data/lib/bundler/fetcher/compact_index.rb +9 -11
- data/lib/bundler/fetcher/dependency.rb +1 -1
- data/lib/bundler/fetcher/downloader.rb +2 -5
- data/lib/bundler/fetcher.rb +2 -6
- data/lib/bundler/force_platform.rb +18 -0
- data/lib/bundler/friendly_errors.rb +0 -3
- data/lib/bundler/gem_version_promoter.rb +52 -86
- data/lib/bundler/graph.rb +3 -3
- data/lib/bundler/index.rb +5 -13
- data/lib/bundler/injector.rb +1 -1
- data/lib/bundler/inline.rb +2 -2
- data/lib/bundler/installer/parallel_installer.rb +0 -31
- data/lib/bundler/installer.rb +9 -23
- data/lib/bundler/lazy_specification.rb +37 -33
- data/lib/bundler/lockfile_parser.rb +5 -5
- data/lib/bundler/man/bundle-add.1 +1 -1
- data/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/lib/bundler/man/bundle-cache.1 +1 -1
- data/lib/bundler/man/bundle-check.1 +1 -1
- data/lib/bundler/man/bundle-clean.1 +1 -1
- data/lib/bundler/man/bundle-config.1 +2 -2
- data/lib/bundler/man/bundle-config.1.ronn +1 -1
- data/lib/bundler/man/bundle-console.1 +1 -1
- data/lib/bundler/man/bundle-doctor.1 +1 -1
- data/lib/bundler/man/bundle-exec.1 +5 -5
- data/lib/bundler/man/bundle-exec.1.ronn +5 -5
- data/lib/bundler/man/bundle-gem.1 +27 -37
- data/lib/bundler/man/bundle-gem.1.ronn +5 -5
- data/lib/bundler/man/bundle-help.1 +1 -1
- data/lib/bundler/man/bundle-info.1 +1 -1
- data/lib/bundler/man/bundle-init.1 +1 -1
- data/lib/bundler/man/bundle-inject.1 +1 -1
- data/lib/bundler/man/bundle-install.1 +1 -30
- data/lib/bundler/man/bundle-install.1.ronn +0 -29
- data/lib/bundler/man/bundle-list.1 +1 -1
- data/lib/bundler/man/bundle-lock.1 +1 -1
- data/lib/bundler/man/bundle-open.1 +22 -2
- data/lib/bundler/man/bundle-open.1.ronn +9 -1
- data/lib/bundler/man/bundle-outdated.1 +1 -1
- data/lib/bundler/man/bundle-platform.1 +2 -2
- data/lib/bundler/man/bundle-platform.1.ronn +1 -1
- data/lib/bundler/man/bundle-plugin.1 +1 -1
- data/lib/bundler/man/bundle-pristine.1 +1 -1
- data/lib/bundler/man/bundle-remove.1 +1 -1
- data/lib/bundler/man/bundle-show.1 +1 -1
- data/lib/bundler/man/bundle-update.1 +1 -1
- data/lib/bundler/man/bundle-version.1 +1 -1
- data/lib/bundler/man/bundle-viz.1 +1 -1
- data/lib/bundler/man/bundle.1 +1 -1
- data/lib/bundler/man/gemfile.5 +1 -1
- data/lib/bundler/mirror.rb +5 -7
- data/lib/bundler/plugin/index.rb +4 -4
- data/lib/bundler/plugin/installer/rubygems.rb +0 -4
- data/lib/bundler/resolver/base.rb +42 -15
- data/lib/bundler/resolver/candidate.rb +94 -0
- data/lib/bundler/resolver/incompatibility.rb +15 -0
- data/lib/bundler/resolver/package.rb +72 -0
- data/lib/bundler/resolver/root.rb +25 -0
- data/lib/bundler/resolver/spec_group.rb +26 -36
- data/lib/bundler/resolver.rb +314 -278
- data/lib/bundler/rubygems_ext.rb +11 -6
- data/lib/bundler/rubygems_gem_installer.rb +4 -2
- data/lib/bundler/rubygems_integration.rb +1 -9
- data/lib/bundler/runtime.rb +1 -5
- data/lib/bundler/settings.rb +0 -6
- data/lib/bundler/shared_helpers.rb +1 -0
- data/lib/bundler/source/git/git_proxy.rb +193 -67
- data/lib/bundler/source/git.rb +15 -17
- data/lib/bundler/source/metadata.rb +0 -1
- data/lib/bundler/source/path/installer.rb +1 -22
- data/lib/bundler/source/path.rb +5 -5
- data/lib/bundler/source/rubygems.rb +14 -68
- data/lib/bundler/source_list.rb +8 -2
- data/lib/bundler/spec_set.rb +7 -9
- data/lib/bundler/templates/Executable +1 -1
- data/lib/bundler/templates/Executable.bundler +4 -9
- data/lib/bundler/templates/Executable.standalone +2 -0
- data/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/lib/bundler/templates/newgem/Gemfile.tt +3 -0
- data/lib/bundler/templates/newgem/README.md.tt +6 -4
- data/lib/bundler/templates/newgem/Rakefile.tt +2 -1
- data/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
- data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +0 -0
- data/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- data/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
- data/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +8 -0
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -2
- data/lib/bundler/ui/shell.rb +35 -12
- data/lib/bundler/ui/silent.rb +21 -5
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
- data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
- data/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
- data/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +151 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +53 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +128 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +409 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +240 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
- data/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
- data/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
- data/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
- data/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
- data/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
- data/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
- data/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
- data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +13 -7
- data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +10 -5
- data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
- data/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
- data/lib/bundler/vendor/uri/lib/uri.rb +3 -2
- data/lib/bundler/vendored_persistent.rb +1 -33
- data/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
- data/lib/bundler/version.rb +5 -1
- data/lib/bundler/worker.rb +5 -7
- data/lib/bundler.rb +20 -64
- metadata +33 -32
- data/lib/bundler/templates/newgem/travis.yml.tt +0 -6
- data/lib/bundler/vendor/molinillo/LICENSE +0 -9
- data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
- data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
- data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
- data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
- data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
- data/lib/bundler/vendored_molinillo.rb +0 -4
- data/lib/bundler/version_ranges.rb +0 -122
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f0ed8153bf4161ce7da774eaa1abd23954e3ca61eb7ba730efcb934a6c13b2fe
|
|
4
|
+
data.tar.gz: 81f598764da83308327451e2ab17276401b9f89f6cd170f82c540b74e3038b41
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 668e10c171354b03ee63547510c0e3cb57caa1146749b9f357ee36d74d9c3bfaa84283dc39d908b91a0e7870ecd673b392f7ea062e7987f9f833b492700f5533
|
|
7
|
+
data.tar.gz: b498147f45cdd036ba4cb3c8ed03eb6353397a5acbbe76fb0b2729c58a4fc99beb86247b6d410e3e55612b7f950d53bea05f705a8d387ed24ab00c47388e7a4a
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,112 @@
|
|
|
1
|
+
# 2.4.5 (January 21, 2023)
|
|
2
|
+
|
|
3
|
+
## Bug fixes:
|
|
4
|
+
|
|
5
|
+
- Fix `bundler/inline` not resolving properly if gems not preinstalled [#6282](https://github.com/rubygems/rubygems/pull/6282)
|
|
6
|
+
- Fix packages for external platforms being introduced in lockfile when Bundler retries resolution [#6285](https://github.com/rubygems/rubygems/pull/6285)
|
|
7
|
+
|
|
8
|
+
## Documentation:
|
|
9
|
+
|
|
10
|
+
- Update bundle-exec man page to not use deprecated `Bundler.with_clean_env` [#6284](https://github.com/rubygems/rubygems/pull/6284)
|
|
11
|
+
|
|
12
|
+
# 2.4.4 (January 16, 2023)
|
|
13
|
+
|
|
14
|
+
## Bug fixes:
|
|
15
|
+
|
|
16
|
+
- Fix platform specific gems removed from the lockfile [#6266](https://github.com/rubygems/rubygems/pull/6266)
|
|
17
|
+
- Properly handle incompatibilities on platform specific gems [#6270](https://github.com/rubygems/rubygems/pull/6270)
|
|
18
|
+
- Optimistically exclude prereleases from initial resolution [#6246](https://github.com/rubygems/rubygems/pull/6246)
|
|
19
|
+
- Fix another case of not properly falling back to ruby variant when materializing [#6261](https://github.com/rubygems/rubygems/pull/6261)
|
|
20
|
+
- Skip setting `BUNDLER_SETUP` on Ruby 2.6 [#6252](https://github.com/rubygems/rubygems/pull/6252)
|
|
21
|
+
- Let resolver deal with legacy gems with equivalent version and different dependencies [#6219](https://github.com/rubygems/rubygems/pull/6219)
|
|
22
|
+
|
|
23
|
+
# 2.4.3 (January 6, 2023)
|
|
24
|
+
|
|
25
|
+
## Enhancements:
|
|
26
|
+
|
|
27
|
+
- Enhance `bundle open` command to allow opening subdir/file of gem [#6146](https://github.com/rubygems/rubygems/pull/6146)
|
|
28
|
+
|
|
29
|
+
## Bug fixes:
|
|
30
|
+
|
|
31
|
+
- Fix pointing GitHub sources to PRs [#6241](https://github.com/rubygems/rubygems/pull/6241)
|
|
32
|
+
- Fix version ranges incorrectly handling platforms [#6240](https://github.com/rubygems/rubygems/pull/6240)
|
|
33
|
+
- Cleanup unnecessary gems when removing lockfile platforms [#6234](https://github.com/rubygems/rubygems/pull/6234)
|
|
34
|
+
- When auto-removing RUBY platform don't add specific platform if not needed [#6233](https://github.com/rubygems/rubygems/pull/6233)
|
|
35
|
+
- Fallback to selecting installable candidates if possible when materializing specs [#6225](https://github.com/rubygems/rubygems/pull/6225)
|
|
36
|
+
|
|
37
|
+
## Documentation:
|
|
38
|
+
|
|
39
|
+
- Fix several typos [#6224](https://github.com/rubygems/rubygems/pull/6224)
|
|
40
|
+
|
|
41
|
+
# 2.4.2 (January 1, 2023)
|
|
42
|
+
|
|
43
|
+
## Performance:
|
|
44
|
+
|
|
45
|
+
- Speed up resolution by properly merging incompatibility ranges [#6215](https://github.com/rubygems/rubygems/pull/6215)
|
|
46
|
+
|
|
47
|
+
## Documentation:
|
|
48
|
+
|
|
49
|
+
- Remove stray word in `bundle config` man page [#6220](https://github.com/rubygems/rubygems/pull/6220)
|
|
50
|
+
|
|
51
|
+
# 2.4.1 (December 24, 2022)
|
|
52
|
+
|
|
53
|
+
## Enhancements:
|
|
54
|
+
|
|
55
|
+
- Allow Bundler to run on old RubyGems + Ruby 2.7 without warnings [#6187](https://github.com/rubygems/rubygems/pull/6187)
|
|
56
|
+
|
|
57
|
+
## Bug fixes:
|
|
58
|
+
|
|
59
|
+
- Fix dependencies scoped to other platforms making resolver fail [#6189](https://github.com/rubygems/rubygems/pull/6189)
|
|
60
|
+
- Restore annotated git tag support [#6186](https://github.com/rubygems/rubygems/pull/6186)
|
|
61
|
+
|
|
62
|
+
# 2.4.0 (December 24, 2022)
|
|
63
|
+
|
|
64
|
+
## Security:
|
|
65
|
+
|
|
66
|
+
- In README generated by `bundle gem`, do not fill rubygems.org install commands with the gem name automatically [#6093](https://github.com/rubygems/rubygems/pull/6093)
|
|
67
|
+
- Use safe Marshal deserialization for dependency API response [#6141](https://github.com/rubygems/rubygems/pull/6141)
|
|
68
|
+
|
|
69
|
+
## Breaking changes:
|
|
70
|
+
|
|
71
|
+
- Remove Travis CI from gem skeleton [#6150](https://github.com/rubygems/rubygems/pull/6150)
|
|
72
|
+
- Drop support for Ruby 2.3, 2.4, 2.5 and RubyGems 2.5, 2.6, 2.7 [#6107](https://github.com/rubygems/rubygems/pull/6107)
|
|
73
|
+
- Completely remove "auto-sudo" feature [#5888](https://github.com/rubygems/rubygems/pull/5888)
|
|
74
|
+
|
|
75
|
+
## Deprecations:
|
|
76
|
+
|
|
77
|
+
- Turn `--ext` option of `bundle gem` into string. Deprecate usage without explicit value [#6144](https://github.com/rubygems/rubygems/pull/6144)
|
|
78
|
+
|
|
79
|
+
## Features:
|
|
80
|
+
|
|
81
|
+
- Add `--ext=rust` support to `bundle gem` for creating simple gems with Rust extensions [#6149](https://github.com/rubygems/rubygems/pull/6149)
|
|
82
|
+
- Migrate our resolver engine to PubGrub [#5960](https://github.com/rubygems/rubygems/pull/5960)
|
|
83
|
+
|
|
84
|
+
## Performance:
|
|
85
|
+
|
|
86
|
+
- Make cloning git repos faster [#4475](https://github.com/rubygems/rubygems/pull/4475)
|
|
87
|
+
|
|
88
|
+
## Enhancements:
|
|
89
|
+
|
|
90
|
+
- Add `bundle lock --update --bundler` [#6134](https://github.com/rubygems/rubygems/pull/6134)
|
|
91
|
+
- Support for pre flag in `bundle update`/`bundle lock` [#5258](https://github.com/rubygems/rubygems/pull/5258)
|
|
92
|
+
- Improve error message when changing Gemfile to a mistyped git ref [#6130](https://github.com/rubygems/rubygems/pull/6130)
|
|
93
|
+
- Remove special handling of some `LoadError` and `NoMethodError` [#6115](https://github.com/rubygems/rubygems/pull/6115)
|
|
94
|
+
|
|
95
|
+
## Bug fixes:
|
|
96
|
+
|
|
97
|
+
- Don't unlock dependencies of a gemspec when its version changes [#6184](https://github.com/rubygems/rubygems/pull/6184)
|
|
98
|
+
- Fix platform specific version for libv8-node and other allowlisted gems not being chosen in Truffleruby [#6169](https://github.com/rubygems/rubygems/pull/6169)
|
|
99
|
+
- Fix `bundle outdated` with both `--groups` and `--parseable` flags [#6148](https://github.com/rubygems/rubygems/pull/6148)
|
|
100
|
+
- Auto-heal lockfile when it's missing specs [#6132](https://github.com/rubygems/rubygems/pull/6132)
|
|
101
|
+
- Fix unintentional downgrades when gemspec DSL is used [#6131](https://github.com/rubygems/rubygems/pull/6131)
|
|
102
|
+
- Fix display of previous gem version when previously downloaded already [#6110](https://github.com/rubygems/rubygems/pull/6110)
|
|
103
|
+
- Fix hang when a lockfile gem does not resolve on the current platform [#6070](https://github.com/rubygems/rubygems/pull/6070)
|
|
104
|
+
|
|
105
|
+
## Documentation:
|
|
106
|
+
|
|
107
|
+
- Improve Bundler setup docs for development [#6154](https://github.com/rubygems/rubygems/pull/6154)
|
|
108
|
+
- Fx link in bundle-platform man page [#6071](https://github.com/rubygems/rubygems/pull/6071)
|
|
109
|
+
|
|
1
110
|
# 2.3.26 (November 16, 2022)
|
|
2
111
|
|
|
3
112
|
## Enhancements:
|
|
@@ -1449,7 +1558,7 @@ Changes
|
|
|
1449
1558
|
|
|
1450
1559
|
- avoid new RubyGems warning about unsafe YAML loading (to keep output consistent) (@segiddins)
|
|
1451
1560
|
- load digest subclasses in a thread-safe manner (@segiddins, @colby-swandale)
|
|
1452
|
-
- avoid
|
|
1561
|
+
- avoid unused variable warnings under ruby 2.5 (@amatsuda)
|
|
1453
1562
|
- fix printing the same message twice in verbose mode ([#6028](https://github.com/rubygems/bundler/issues/6028), @akhramov)
|
|
1454
1563
|
- allow `SignalException`s to bubble up to the interpreter during `bundle exec` ([#6090](https://github.com/rubygems/bundler/issues/6090), @dekellum)
|
|
1455
1564
|
- avoid activating stdlib digest under Ruby 2.5 (@segiddins)
|
data/README.md
CHANGED
|
@@ -38,13 +38,13 @@ Still stuck? Try [filing an issue](https://github.com/rubygems/rubygems/issues/n
|
|
|
38
38
|
|
|
39
39
|
To see what has changed in recent versions of Bundler, see the [CHANGELOG](CHANGELOG.md).
|
|
40
40
|
|
|
41
|
-
To get in touch with the Bundler core team and other Bundler users, please
|
|
41
|
+
To get in touch with the Bundler core team and other Bundler users, please join [the Bundler slack](https://slack.bundler.io).
|
|
42
42
|
|
|
43
43
|
### Contributing
|
|
44
44
|
|
|
45
45
|
If you'd like to contribute to Bundler, that's awesome, and we <3 you. We've put together [the Bundler contributor guide](https://github.com/rubygems/rubygems/blob/master/bundler/doc/contributing/README.md) with all of the information you need to get started.
|
|
46
46
|
|
|
47
|
-
If you'd like to request a substantial change to Bundler or its documentation, refer to the [Bundler RFC process](https://github.com/
|
|
47
|
+
If you'd like to request a substantial change to Bundler or its documentation, refer to the [Bundler RFC process](https://github.com/rubygems/rfcs) for more information.
|
|
48
48
|
|
|
49
49
|
While some Bundler contributors are compensated by Ruby Together, the project maintainers make decisions independent of Ruby Together. As a project, we welcome contributions regardless of the author's affiliation with Ruby Together.
|
|
50
50
|
|
data/bundler.gemspec
CHANGED
|
@@ -29,8 +29,8 @@ Gem::Specification.new do |s|
|
|
|
29
29
|
"source_code_uri" => "https://github.com/rubygems/rubygems/tree/master/bundler",
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
s.required_ruby_version = ">= 2.
|
|
33
|
-
s.required_rubygems_version = ">=
|
|
32
|
+
s.required_ruby_version = ">= 2.6.0"
|
|
33
|
+
s.required_rubygems_version = ">= 3.0.1"
|
|
34
34
|
|
|
35
35
|
s.files = Dir.glob("lib/bundler{.rb,/**/*}", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }
|
|
36
36
|
|
data/exe/bundle
CHANGED
|
@@ -15,10 +15,7 @@ else
|
|
|
15
15
|
require "bundler"
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
gem "bundler", Bundler::VERSION if Gem.rubygems_version < Gem::Version.new("2.6.2")
|
|
20
|
-
|
|
21
|
-
if Gem.rubygems_version < Gem::Version.new("3.2.3") && Gem.ruby_version < Gem::Version.new("2.6.a") && !ENV["BUNDLER_NO_OLD_RUBYGEMS_WARNING"]
|
|
18
|
+
if Gem.rubygems_version < Gem::Version.new("3.2.3") && Gem.ruby_version < Gem::Version.new("2.7.a") && !ENV["BUNDLER_NO_OLD_RUBYGEMS_WARNING"]
|
|
22
19
|
Bundler.ui.warn \
|
|
23
20
|
"Your RubyGems version (#{Gem::VERSION}) has a bug that prevents " \
|
|
24
21
|
"`required_ruby_version` from working for Bundler. Any scripts that use " \
|
|
@@ -4,8 +4,8 @@ module Bundler
|
|
|
4
4
|
# Represents metadata from when the Bundler gem was built.
|
|
5
5
|
module BuildMetadata
|
|
6
6
|
# begin ivars
|
|
7
|
-
@built_at = "
|
|
8
|
-
@git_commit_sha = "
|
|
7
|
+
@built_at = "2023-01-21".freeze
|
|
8
|
+
@git_commit_sha = "d8ff3b6e4a".freeze
|
|
9
9
|
@release = true
|
|
10
10
|
# end ivars
|
|
11
11
|
|
data/lib/bundler/cli/add.rb
CHANGED
|
@@ -40,7 +40,7 @@ module Bundler
|
|
|
40
40
|
raise InvalidOption, "Please specify gems to add." if gems.empty?
|
|
41
41
|
|
|
42
42
|
version.to_a.each do |v|
|
|
43
|
-
raise InvalidOption, "Invalid gem requirement pattern '#{v}'" unless Gem::Requirement::PATTERN
|
|
43
|
+
raise InvalidOption, "Invalid gem requirement pattern '#{v}'" unless Gem::Requirement::PATTERN.match?(v.to_s)
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
end
|
data/lib/bundler/cli/check.rb
CHANGED
|
@@ -17,7 +17,7 @@ module Bundler
|
|
|
17
17
|
begin
|
|
18
18
|
definition.resolve_only_locally!
|
|
19
19
|
not_installed = definition.missing_specs
|
|
20
|
-
rescue GemNotFound,
|
|
20
|
+
rescue GemNotFound, SolveFailure
|
|
21
21
|
Bundler.ui.error "Bundler can't satisfy your Gemfile's dependencies."
|
|
22
22
|
Bundler.ui.warn "Install missing gems with `bundle install`."
|
|
23
23
|
exit 1
|
data/lib/bundler/cli/common.rb
CHANGED
data/lib/bundler/cli/console.rb
CHANGED
data/lib/bundler/cli/doctor.rb
CHANGED
|
@@ -73,12 +73,10 @@ module Bundler
|
|
|
73
73
|
definition.specs.each do |spec|
|
|
74
74
|
bundles_for_gem(spec).each do |bundle|
|
|
75
75
|
bad_paths = dylibs(bundle).select do |f|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
true
|
|
81
|
-
end
|
|
76
|
+
Fiddle.dlopen(f)
|
|
77
|
+
false
|
|
78
|
+
rescue Fiddle::DLError
|
|
79
|
+
true
|
|
82
80
|
end
|
|
83
81
|
if bad_paths.any?
|
|
84
82
|
broken_links[spec] ||= []
|
data/lib/bundler/cli/gem.rb
CHANGED
|
@@ -15,7 +15,7 @@ module Bundler
|
|
|
15
15
|
"test-unit" => "3.0",
|
|
16
16
|
}.freeze
|
|
17
17
|
|
|
18
|
-
attr_reader :options, :gem_name, :thor, :name, :target
|
|
18
|
+
attr_reader :options, :gem_name, :thor, :name, :target, :extension
|
|
19
19
|
|
|
20
20
|
def initialize(options, gem_name, thor)
|
|
21
21
|
@options = options
|
|
@@ -28,7 +28,11 @@ module Bundler
|
|
|
28
28
|
@name = @gem_name
|
|
29
29
|
@target = SharedHelpers.pwd.join(gem_name)
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
@extension = options[:ext]
|
|
32
|
+
|
|
33
|
+
validate_ext_name if @extension
|
|
34
|
+
validate_rust_builder_rubygems_version if @extension == "rust"
|
|
35
|
+
travis_removal_info
|
|
32
36
|
end
|
|
33
37
|
|
|
34
38
|
def run
|
|
@@ -55,21 +59,22 @@ module Bundler
|
|
|
55
59
|
end
|
|
56
60
|
|
|
57
61
|
config = {
|
|
58
|
-
:name
|
|
62
|
+
:name => name,
|
|
59
63
|
:underscored_name => underscored_name,
|
|
60
|
-
:namespaced_path
|
|
61
|
-
:makefile_path
|
|
62
|
-
:constant_name
|
|
63
|
-
:constant_array
|
|
64
|
-
:author
|
|
65
|
-
:email
|
|
66
|
-
:test
|
|
67
|
-
:ext
|
|
68
|
-
:exe
|
|
69
|
-
:bundler_version
|
|
70
|
-
:git
|
|
71
|
-
:github_username
|
|
64
|
+
:namespaced_path => namespaced_path,
|
|
65
|
+
:makefile_path => "#{underscored_name}/#{underscored_name}",
|
|
66
|
+
:constant_name => constant_name,
|
|
67
|
+
:constant_array => constant_array,
|
|
68
|
+
:author => git_author_name.empty? ? "TODO: Write your name" : git_author_name,
|
|
69
|
+
:email => git_user_email.empty? ? "TODO: Write your email address" : git_user_email,
|
|
70
|
+
:test => options[:test],
|
|
71
|
+
:ext => extension,
|
|
72
|
+
:exe => options[:exe],
|
|
73
|
+
:bundler_version => bundler_dependency_version,
|
|
74
|
+
:git => use_git,
|
|
75
|
+
:github_username => github_username.empty? ? "[USERNAME]" : github_username,
|
|
72
76
|
:required_ruby_version => required_ruby_version,
|
|
77
|
+
:rust_builder_required_rubygems_version => rust_builder_required_rubygems_version,
|
|
73
78
|
:minitest_constant_name => minitest_constant_name,
|
|
74
79
|
}
|
|
75
80
|
ensure_safe_gem_name(name, constant_array)
|
|
@@ -132,8 +137,6 @@ module Bundler
|
|
|
132
137
|
case config[:ci]
|
|
133
138
|
when "github"
|
|
134
139
|
templates.merge!("github/workflows/main.yml.tt" => ".github/workflows/main.yml")
|
|
135
|
-
when "travis"
|
|
136
|
-
templates.merge!("travis.yml.tt" => ".travis.yml")
|
|
137
140
|
when "gitlab"
|
|
138
141
|
templates.merge!("gitlab-ci.yml.tt" => ".gitlab-ci.yml")
|
|
139
142
|
when "circle"
|
|
@@ -188,14 +191,23 @@ module Bundler
|
|
|
188
191
|
|
|
189
192
|
templates.merge!("exe/newgem.tt" => "exe/#{name}") if config[:exe]
|
|
190
193
|
|
|
191
|
-
if
|
|
194
|
+
if extension == "c"
|
|
192
195
|
templates.merge!(
|
|
193
|
-
"ext/newgem/extconf.rb.tt" => "ext/#{name}/extconf.rb",
|
|
196
|
+
"ext/newgem/extconf-c.rb.tt" => "ext/#{name}/extconf.rb",
|
|
194
197
|
"ext/newgem/newgem.h.tt" => "ext/#{name}/#{underscored_name}.h",
|
|
195
198
|
"ext/newgem/newgem.c.tt" => "ext/#{name}/#{underscored_name}.c"
|
|
196
199
|
)
|
|
197
200
|
end
|
|
198
201
|
|
|
202
|
+
if extension == "rust"
|
|
203
|
+
templates.merge!(
|
|
204
|
+
"Cargo.toml.tt" => "Cargo.toml",
|
|
205
|
+
"ext/newgem/Cargo.toml.tt" => "ext/#{name}/Cargo.toml",
|
|
206
|
+
"ext/newgem/extconf-rust.rb.tt" => "ext/#{name}/extconf.rb",
|
|
207
|
+
"ext/newgem/src/lib.rs.tt" => "ext/#{name}/src/lib.rs",
|
|
208
|
+
)
|
|
209
|
+
end
|
|
210
|
+
|
|
199
211
|
if target.exist? && !target.directory?
|
|
200
212
|
Bundler.ui.error "Couldn't create a new gem named `#{gem_name}` because there's an existing file named `#{gem_name}`."
|
|
201
213
|
exit Bundler::BundlerError.all_errors[Bundler::GenericSystemCallError]
|
|
@@ -270,7 +282,7 @@ module Bundler
|
|
|
270
282
|
Bundler.ui.info hint_text("test")
|
|
271
283
|
|
|
272
284
|
result = Bundler.ui.ask "Enter a test framework. rspec/minitest/test-unit/(none):"
|
|
273
|
-
if
|
|
285
|
+
if /rspec|minitest|test-unit/.match?(result)
|
|
274
286
|
test_framework = result
|
|
275
287
|
else
|
|
276
288
|
test_framework = false
|
|
@@ -306,12 +318,11 @@ module Bundler
|
|
|
306
318
|
"* CircleCI: https://circleci.com/\n" \
|
|
307
319
|
"* GitHub Actions: https://github.com/features/actions\n" \
|
|
308
320
|
"* GitLab CI: https://docs.gitlab.com/ee/ci/\n" \
|
|
309
|
-
"* Travis CI: https://travis-ci.org/\n" \
|
|
310
321
|
"\n"
|
|
311
322
|
Bundler.ui.info hint_text("ci")
|
|
312
323
|
|
|
313
|
-
result = Bundler.ui.ask "Enter a CI service. github/
|
|
314
|
-
if
|
|
324
|
+
result = Bundler.ui.ask "Enter a CI service. github/gitlab/circle/(none):"
|
|
325
|
+
if /github|gitlab|circle/.match?(result)
|
|
315
326
|
ci_template = result
|
|
316
327
|
else
|
|
317
328
|
ci_template = false
|
|
@@ -342,7 +353,7 @@ module Bundler
|
|
|
342
353
|
Bundler.ui.info hint_text("linter")
|
|
343
354
|
|
|
344
355
|
result = Bundler.ui.ask "Enter a linter. rubocop/standard/(none):"
|
|
345
|
-
if
|
|
356
|
+
if /rubocop|standard/.match?(result)
|
|
346
357
|
linter_template = result
|
|
347
358
|
else
|
|
348
359
|
linter_template = false
|
|
@@ -389,7 +400,7 @@ module Bundler
|
|
|
389
400
|
end
|
|
390
401
|
|
|
391
402
|
def ensure_safe_gem_name(name, constant_array)
|
|
392
|
-
if
|
|
403
|
+
if /^\d/.match?(name)
|
|
393
404
|
Bundler.ui.error "Invalid gem name #{name} Please give a name which does not start with numbers."
|
|
394
405
|
exit 1
|
|
395
406
|
end
|
|
@@ -415,28 +426,39 @@ module Bundler
|
|
|
415
426
|
thor.run(%(#{editor} "#{file}"))
|
|
416
427
|
end
|
|
417
428
|
|
|
429
|
+
def rust_builder_required_rubygems_version
|
|
430
|
+
"3.3.11"
|
|
431
|
+
end
|
|
432
|
+
|
|
418
433
|
def required_ruby_version
|
|
419
|
-
|
|
420
|
-
elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "2.4.0"
|
|
421
|
-
elsif Gem.ruby_version < Gem::Version.new("2.6.a") then "2.5.0"
|
|
422
|
-
else
|
|
423
|
-
"2.6.0"
|
|
424
|
-
end
|
|
434
|
+
"2.6.0"
|
|
425
435
|
end
|
|
426
436
|
|
|
427
437
|
def rubocop_version
|
|
428
|
-
|
|
429
|
-
elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "1.12"
|
|
430
|
-
else
|
|
431
|
-
"1.21"
|
|
432
|
-
end
|
|
438
|
+
"1.21"
|
|
433
439
|
end
|
|
434
440
|
|
|
435
441
|
def standard_version
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
442
|
+
"1.3"
|
|
443
|
+
end
|
|
444
|
+
|
|
445
|
+
# TODO: remove at next minor release
|
|
446
|
+
def travis_removal_info
|
|
447
|
+
if options[:ci] == "travis"
|
|
448
|
+
Bundler.ui.error "Support for Travis CI was removed from gem skeleton generator."
|
|
449
|
+
exit 1
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
if Bundler.settings["gem.ci"] == "travis"
|
|
453
|
+
Bundler.ui.error "Support for Travis CI was removed from gem skeleton generator, but it is present in bundle config. Please configure another provider using `bundle config set gem.ci SERVICE` (where SERVICE is one of github/gitlab/circle) or unset configuration using `bundle config unset gem.ci`."
|
|
454
|
+
exit 1
|
|
455
|
+
end
|
|
456
|
+
end
|
|
457
|
+
|
|
458
|
+
def validate_rust_builder_rubygems_version
|
|
459
|
+
if Gem::Version.new(rust_builder_required_rubygems_version) > Gem.rubygems_version
|
|
460
|
+
Bundler.ui.error "Your RubyGems version (#{Gem.rubygems_version}) is too old to build Rust extension. Please update your RubyGems using `gem update --system` or any other way and try again."
|
|
461
|
+
exit 1
|
|
440
462
|
end
|
|
441
463
|
end
|
|
442
464
|
end
|
data/lib/bundler/cli/install.rb
CHANGED
|
@@ -94,9 +94,8 @@ module Bundler
|
|
|
94
94
|
|
|
95
95
|
def warn_if_root
|
|
96
96
|
return if Bundler.settings[:silence_root_warning] || Gem.win_platform? || !Process.uid.zero?
|
|
97
|
-
Bundler.ui.warn "Don't run Bundler as root.
|
|
98
|
-
|
|
99
|
-
"application for all non-root users on this machine.", :wrap => true
|
|
97
|
+
Bundler.ui.warn "Don't run Bundler as root. Installing your bundle as root " \
|
|
98
|
+
"will break this application for all non-root users on this machine.", :wrap => true
|
|
100
99
|
end
|
|
101
100
|
|
|
102
101
|
def dependencies_count_for(definition)
|
data/lib/bundler/cli/lock.rb
CHANGED
|
@@ -15,19 +15,22 @@ module Bundler
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
print = options[:print]
|
|
18
|
-
|
|
19
|
-
Bundler.ui =
|
|
18
|
+
previous_ui_level = Bundler.ui.level
|
|
19
|
+
Bundler.ui.level = "silent" if print
|
|
20
20
|
|
|
21
21
|
Bundler::Fetcher.disable_endpoint = options["full-index"]
|
|
22
22
|
|
|
23
23
|
update = options[:update]
|
|
24
24
|
conservative = options[:conservative]
|
|
25
|
+
bundler = options[:bundler]
|
|
25
26
|
|
|
26
27
|
if update.is_a?(Array) # unlocking specific gems
|
|
27
28
|
Bundler::CLI::Common.ensure_all_gems_in_lockfile!(update)
|
|
28
29
|
update = { :gems => update, :conservative => conservative }
|
|
29
|
-
elsif update
|
|
30
|
-
update = { :conservative => conservative }
|
|
30
|
+
elsif update && conservative
|
|
31
|
+
update = { :conservative => conservative }
|
|
32
|
+
elsif update && bundler
|
|
33
|
+
update = { :bundler => bundler }
|
|
31
34
|
end
|
|
32
35
|
definition = Bundler.definition(update)
|
|
33
36
|
|
|
@@ -61,7 +64,7 @@ module Bundler
|
|
|
61
64
|
definition.lock(file)
|
|
62
65
|
end
|
|
63
66
|
|
|
64
|
-
Bundler.ui =
|
|
67
|
+
Bundler.ui.level = previous_ui_level
|
|
65
68
|
end
|
|
66
69
|
end
|
|
67
70
|
end
|
data/lib/bundler/cli/open.rb
CHANGED
|
@@ -2,23 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
module Bundler
|
|
4
4
|
class CLI::Open
|
|
5
|
-
attr_reader :options, :name
|
|
5
|
+
attr_reader :options, :name, :path
|
|
6
6
|
def initialize(options, name)
|
|
7
7
|
@options = options
|
|
8
8
|
@name = name
|
|
9
|
+
@path = options[:path] unless options[:path].nil?
|
|
9
10
|
end
|
|
10
11
|
|
|
11
12
|
def run
|
|
13
|
+
raise InvalidOption, "Cannot specify `--path` option without a value" if !@path.nil? && @path.empty?
|
|
12
14
|
editor = [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? }
|
|
13
15
|
return Bundler.ui.info("To open a bundled gem, set $EDITOR or $BUNDLER_EDITOR") unless editor
|
|
14
16
|
return unless spec = Bundler::CLI::Common.select_spec(name, :regex_match)
|
|
15
17
|
if spec.default_gem?
|
|
16
18
|
Bundler.ui.info "Unable to open #{name} because it's a default gem, so the directory it would normally be installed to does not exist."
|
|
17
19
|
else
|
|
18
|
-
|
|
19
|
-
Dir.chdir(
|
|
20
|
+
root_path = spec.full_gem_path
|
|
21
|
+
Dir.chdir(root_path) do
|
|
20
22
|
require "shellwords"
|
|
21
|
-
command = Shellwords.split(editor)
|
|
23
|
+
command = Shellwords.split(editor) << File.join([root_path, path].compact)
|
|
22
24
|
Bundler.with_original_env do
|
|
23
25
|
system(*command)
|
|
24
26
|
end || Bundler.ui.info("Could not run '#{command.join(" ")}'")
|
data/lib/bundler/cli/outdated.rb
CHANGED
data/lib/bundler/cli/viz.rb
CHANGED
|
@@ -23,7 +23,7 @@ module Bundler
|
|
|
23
23
|
Bundler.ui.warn "Make sure you have the graphviz ruby gem. You can install it with:"
|
|
24
24
|
Bundler.ui.warn "`gem install ruby-graphviz`"
|
|
25
25
|
rescue StandardError => e
|
|
26
|
-
raise unless e.message
|
|
26
|
+
raise unless e.message.to_s.include?("GraphViz not installed or dot not in PATH")
|
|
27
27
|
Bundler.ui.error e.message
|
|
28
28
|
Bundler.ui.warn "Please install GraphViz. On a Mac with Homebrew, you can run `brew install graphviz`."
|
|
29
29
|
end
|
data/lib/bundler/cli.rb
CHANGED
|
@@ -10,6 +10,7 @@ module Bundler
|
|
|
10
10
|
|
|
11
11
|
AUTO_INSTALL_CMDS = %w[show binstubs outdated exec open console licenses clean].freeze
|
|
12
12
|
PARSEABLE_COMMANDS = %w[check config help exec platform show version].freeze
|
|
13
|
+
EXTENSIONS = ["c", "rust"].freeze
|
|
13
14
|
|
|
14
15
|
COMMAND_ALIASES = {
|
|
15
16
|
"check" => "c",
|
|
@@ -22,6 +23,8 @@ module Bundler
|
|
|
22
23
|
}.freeze
|
|
23
24
|
|
|
24
25
|
def self.start(*)
|
|
26
|
+
check_deprecated_ext_option(ARGV) if ARGV.include?("--ext")
|
|
27
|
+
|
|
25
28
|
super
|
|
26
29
|
ensure
|
|
27
30
|
Bundler::SharedHelpers.print_major_deprecations!
|
|
@@ -292,6 +295,8 @@ module Bundler
|
|
|
292
295
|
"Prefer updating only to next minor version"
|
|
293
296
|
method_option "major", :type => :boolean, :banner =>
|
|
294
297
|
"Prefer updating to next major version (default)"
|
|
298
|
+
method_option "pre", :type => :boolean, :banner =>
|
|
299
|
+
"Always choose the highest allowed version when updating gems, regardless of prerelease status"
|
|
295
300
|
method_option "strict", :type => :boolean, :banner =>
|
|
296
301
|
"Do not allow any gem to be updated past latest --patch | --minor | --major"
|
|
297
302
|
method_option "conservative", :type => :boolean, :banner =>
|
|
@@ -504,6 +509,7 @@ module Bundler
|
|
|
504
509
|
subcommand "config", Config
|
|
505
510
|
|
|
506
511
|
desc "open GEM", "Opens the source directory of the given bundled gem"
|
|
512
|
+
method_option "path", :type => :string, :lazy_default => "", :banner => "Open relative path of the gem source."
|
|
507
513
|
def open(name)
|
|
508
514
|
require_relative "cli/open"
|
|
509
515
|
Open.new(options, name).run
|
|
@@ -574,7 +580,7 @@ module Bundler
|
|
|
574
580
|
method_option :edit, :type => :string, :aliases => "-e", :required => false, :banner => "EDITOR",
|
|
575
581
|
:lazy_default => [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? },
|
|
576
582
|
:desc => "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)"
|
|
577
|
-
method_option :ext, :type => :
|
|
583
|
+
method_option :ext, :type => :string, :desc => "Generate the boilerplate for C extension code.", :enum => EXTENSIONS
|
|
578
584
|
method_option :git, :type => :boolean, :default => true, :desc => "Initialize a git repo inside your library."
|
|
579
585
|
method_option :mit, :type => :boolean, :desc => "Generate an MIT license file. Set a default with `bundle config set --global gem.mit true`."
|
|
580
586
|
method_option :rubocop, :type => :boolean, :desc => "Add rubocop to the generated Rakefile and gemspec. Set a default with `bundle config set --global gem.rubocop true`."
|
|
@@ -582,7 +588,7 @@ module Bundler
|
|
|
582
588
|
method_option :test, :type => :string, :lazy_default => Bundler.settings["gem.test"] || "", :aliases => "-t", :banner => "Use the specified test framework for your library",
|
|
583
589
|
:desc => "Generate a test directory for your library, either rspec, minitest or test-unit. Set a default with `bundle config set --global gem.test (rspec|minitest|test-unit)`."
|
|
584
590
|
method_option :ci, :type => :string, :lazy_default => Bundler.settings["gem.ci"] || "",
|
|
585
|
-
:desc => "Generate CI configuration, either GitHub Actions,
|
|
591
|
+
:desc => "Generate CI configuration, either GitHub Actions, GitLab CI or CircleCI. Set a default with `bundle config set --global gem.ci (github|gitlab|circle)`"
|
|
586
592
|
method_option :linter, :type => :string, :lazy_default => Bundler.settings["gem.linter"] || "",
|
|
587
593
|
:desc => "Add a linter and code formatter, either RuboCop or Standard. Set a default with `bundle config set --global gem.linter (rubocop|standard)`"
|
|
588
594
|
method_option :github_username, :type => :string, :default => Bundler.settings["gem.github_username"], :banner => "Set your username on GitHub", :desc => "Fill in GitHub username on README so that you don't have to do it manually. Set a default with `bundle config set --global gem.github_username <your_username>`."
|
|
@@ -668,10 +674,14 @@ module Bundler
|
|
|
668
674
|
"If updating, prefer updating only to next minor version"
|
|
669
675
|
method_option "major", :type => :boolean, :banner =>
|
|
670
676
|
"If updating, prefer updating to next major version (default)"
|
|
677
|
+
method_option "pre", :type => :boolean, :banner =>
|
|
678
|
+
"If updating, always choose the highest allowed version, regardless of prerelease status"
|
|
671
679
|
method_option "strict", :type => :boolean, :banner =>
|
|
672
680
|
"If updating, do not allow any gem to be updated past latest --patch | --minor | --major"
|
|
673
681
|
method_option "conservative", :type => :boolean, :banner =>
|
|
674
682
|
"If updating, use bundle install conservative update behavior and do not allow shared dependencies to be updated"
|
|
683
|
+
method_option "bundler", :type => :string, :lazy_default => "> 0.a", :banner =>
|
|
684
|
+
"Update the locked version of bundler"
|
|
675
685
|
def lock
|
|
676
686
|
require_relative "cli/lock"
|
|
677
687
|
Lock.new(options).run
|
|
@@ -749,6 +759,38 @@ module Bundler
|
|
|
749
759
|
end
|
|
750
760
|
end
|
|
751
761
|
|
|
762
|
+
def self.check_deprecated_ext_option(arguments)
|
|
763
|
+
# when deprecated version of `--ext` is called
|
|
764
|
+
# print out deprecation warning and pretend `--ext=c` was provided
|
|
765
|
+
if deprecated_ext_value?(arguments)
|
|
766
|
+
SharedHelpers.major_deprecation 2, "Extensions can now be generated using C or Rust, so `--ext` with no arguments has been deprecated. Please select a language, e.g. `--ext=rust` to generate a Rust extension. This gem will now be generated as if `--ext=c` was used."
|
|
767
|
+
arguments[arguments.index("--ext")] = "--ext=c"
|
|
768
|
+
end
|
|
769
|
+
end
|
|
770
|
+
|
|
771
|
+
def self.deprecated_ext_value?(arguments)
|
|
772
|
+
index = arguments.index("--ext")
|
|
773
|
+
next_argument = arguments[index+1]
|
|
774
|
+
|
|
775
|
+
# it is ok when --ext is followed with valid extension value
|
|
776
|
+
# for example `bundle gem hello --ext c`
|
|
777
|
+
return false if EXTENSIONS.include?(next_argument)
|
|
778
|
+
|
|
779
|
+
# deprecated call when --ext is called with no value in last position
|
|
780
|
+
# for example `bundle gem hello_gem --ext`
|
|
781
|
+
return true if next_argument.nil?
|
|
782
|
+
|
|
783
|
+
# deprecated call when --ext is followed by other parameter
|
|
784
|
+
# for example `bundle gem --ext --no-ci hello_gem`
|
|
785
|
+
return true if next_argument.start_with?("-")
|
|
786
|
+
|
|
787
|
+
# deprecated call when --ext is followed by gem name
|
|
788
|
+
# for example `bundle gem --ext hello_gem`
|
|
789
|
+
return true if next_argument
|
|
790
|
+
|
|
791
|
+
false
|
|
792
|
+
end
|
|
793
|
+
|
|
752
794
|
private
|
|
753
795
|
|
|
754
796
|
# Automatically invoke `bundle install` and resume if
|