rubygems-update 3.7.0 → 3.7.2

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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -0
  3. data/CODE_OF_CONDUCT.md +1 -1
  4. data/bundler/CHANGELOG.md +43 -0
  5. data/bundler/lib/bundler/build_metadata.rb +2 -2
  6. data/bundler/lib/bundler/checksum.rb +6 -0
  7. data/bundler/lib/bundler/cli/cache.rb +0 -1
  8. data/bundler/lib/bundler/cli/common.rb +1 -1
  9. data/bundler/lib/bundler/cli/install.rb +1 -3
  10. data/bundler/lib/bundler/cli/lock.rb +5 -5
  11. data/bundler/lib/bundler/cli/show.rb +2 -6
  12. data/bundler/lib/bundler/cli/update.rb +1 -1
  13. data/bundler/lib/bundler/cli.rb +43 -43
  14. data/bundler/lib/bundler/definition.rb +77 -60
  15. data/bundler/lib/bundler/dsl.rb +1 -1
  16. data/bundler/lib/bundler/feature_flag.rb +1 -1
  17. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  18. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  19. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  20. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  21. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  22. data/bundler/lib/bundler/man/bundle-config.1 +31 -14
  23. data/bundler/lib/bundler/man/bundle-config.1.ronn +49 -20
  24. data/bundler/lib/bundler/man/bundle-console.1 +1 -1
  25. data/bundler/lib/bundler/man/bundle-doctor.1 +4 -4
  26. data/bundler/lib/bundler/man/bundle-doctor.1.ronn +4 -4
  27. data/bundler/lib/bundler/man/bundle-env.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-fund.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  35. data/bundler/lib/bundler/man/bundle-install.1 +4 -4
  36. data/bundler/lib/bundler/man/bundle-install.1.ronn +3 -4
  37. data/bundler/lib/bundler/man/bundle-issue.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-licenses.1 +1 -1
  39. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  40. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  41. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  42. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  43. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  44. data/bundler/lib/bundler/man/bundle-plugin.1 +40 -15
  45. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +44 -15
  46. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  47. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  48. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  49. data/bundler/lib/bundler/man/bundle-update.1 +5 -5
  50. data/bundler/lib/bundler/man/bundle-update.1.ronn +4 -4
  51. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  52. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  53. data/bundler/lib/bundler/man/bundle.1 +1 -1
  54. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  55. data/bundler/lib/bundler/resolver/package.rb +1 -0
  56. data/bundler/lib/bundler/settings.rb +1 -1
  57. data/bundler/lib/bundler/source/gemspec.rb +4 -0
  58. data/bundler/lib/bundler/source/path.rb +2 -0
  59. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +3 -3
  60. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +42 -6
  61. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +1 -1
  62. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +1 -1
  63. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +3 -7
  64. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  65. data/bundler/lib/bundler/version.rb +1 -1
  66. data/doc/bundler/UPGRADING.md +0 -27
  67. data/lib/rubygems/commands/sources_command.rb +122 -18
  68. data/lib/rubygems/defaults.rb +1 -1
  69. data/lib/rubygems/exceptions.rb +3 -12
  70. data/lib/rubygems/platform.rb +1 -1
  71. data/lib/rubygems/s3_uri_signer.rb +54 -7
  72. data/lib/rubygems/source_list.rb +36 -0
  73. data/lib/rubygems.rb +8 -1
  74. data/rubygems-update.gemspec +1 -1
  75. metadata +2 -2
@@ -6,6 +6,7 @@ bundle-install(1) -- Install the dependencies specified in your Gemfile
6
6
  `bundle install` [--binstubs[=DIRECTORY]]
7
7
  [--clean]
8
8
  [--deployment]
9
+ [--force]
9
10
  [--frozen]
10
11
  [--full-index]
11
12
  [--gemfile=GEMFILE]
@@ -16,7 +17,6 @@ bundle-install(1) -- Install the dependencies specified in your Gemfile
16
17
  [--path PATH]
17
18
  [--prefer-local]
18
19
  [--quiet]
19
- [--redownload]
20
20
  [--retry=NUMBER]
21
21
  [--shebang=SHEBANG]
22
22
  [--standalone[=GROUP[ GROUP...]]]
@@ -80,9 +80,8 @@ automatically and that requires `bundler` to silently remember them. Since
80
80
 
81
81
  This option is deprecated in favor of the `deployment` setting.
82
82
 
83
- * `--redownload`, `--force`:
84
- Force download every gem, even if the required versions are already available
85
- locally.
83
+ * `--force`, `--redownload`:
84
+ Force reinstalling every gem, even if already installed.
86
85
 
87
86
  * `--frozen`:
88
87
  Do not allow the Gemfile.lock to be updated after this install. Exits
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-ISSUE" "1" "July 2025" ""
3
+ .TH "BUNDLE\-ISSUE" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-issue\fR \- Get help reporting Bundler issues
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-LICENSES" "1" "July 2025" ""
3
+ .TH "BUNDLE\-LICENSES" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-licenses\fR \- Print the license of all gems in the bundle
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-LIST" "1" "July 2025" ""
3
+ .TH "BUNDLE\-LIST" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-list\fR \- List all the gems in the bundle
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-LOCK" "1" "July 2025" ""
3
+ .TH "BUNDLE\-LOCK" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-lock\fR \- Creates / Updates a lockfile without installing
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-OPEN" "1" "July 2025" ""
3
+ .TH "BUNDLE\-OPEN" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-open\fR \- Opens the source directory for a gem in your bundle
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-OUTDATED" "1" "July 2025" ""
3
+ .TH "BUNDLE\-OUTDATED" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-outdated\fR \- List installed gems with newer versions available
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-PLATFORM" "1" "July 2025" ""
3
+ .TH "BUNDLE\-PLATFORM" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-platform\fR \- Displays platform compatibility information
6
6
  .SH "SYNOPSIS"
@@ -1,12 +1,12 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-PLUGIN" "1" "July 2025" ""
3
+ .TH "BUNDLE\-PLUGIN" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-plugin\fR \- Manage Bundler plugins
6
6
  .SH "SYNOPSIS"
7
- \fBbundle plugin\fR install PLUGINS [\-\-source=\fISOURCE\fR] [\-\-version=\fIversion\fR] [\-\-git=\fIgit\-url\fR] [\-\-branch=\fIbranch\fR|\-\-ref=\fIrev\fR] [\-\-path=\fIpath\fR]
7
+ \fBbundle plugin\fR install PLUGINS [\-\-source=SOURCE] [\-\-version=VERSION] [\-\-git=GIT] [\-\-branch=BRANCH|\-\-ref=REF] [\-\-local\-git=LOCAL_GIT] [\-\-path=PATH]
8
8
  .br
9
- \fBbundle plugin\fR uninstall PLUGINS
9
+ \fBbundle plugin\fR uninstall PLUGINS [\-\-all]
10
10
  .br
11
11
  \fBbundle plugin\fR list
12
12
  .br
@@ -16,18 +16,23 @@ You can install, uninstall, and list plugin(s) with this command to extend funct
16
16
  .SH "SUB\-COMMANDS"
17
17
  .SS "install"
18
18
  Install the given plugin(s)\.
19
+ .P
20
+ For example, \fBbundle plugin install bundler\-graph\fR will install bundler\-graph gem from globally configured sources (defaults to RubyGems\.org)\. Note that the global source specified in Gemfile is ignored\.
21
+ .P
22
+ \fBOPTIONS\fR
19
23
  .TP
20
- \fBbundle plugin install bundler\-graph\fR
21
- Install bundler\-graph gem from globally configured sources (defaults to RubyGems\.org)\. The global source, specified in source in Gemfile is ignored\.
22
- .TP
23
- \fBbundle plugin install bundler\-graph \-\-source https://example\.com\fR
24
- Install bundler\-graph gem from example\.com\. The global source, specified in source in Gemfile is not considered\.
24
+ \fB\-\-source=SOURCE\fR
25
+ Install the plugin gem from a specific source, rather than from globally configured sources\.
26
+ .IP
27
+ Example: \fBbundle plugin install bundler\-graph \-\-source https://example\.com\fR
25
28
  .TP
26
- \fBbundle plugin install bundler\-graph \-\-version 0\.2\.1\fR
27
- You can specify the version of the gem via \fB\-\-version\fR\.
29
+ \fB\-\-version=VERSION\fR
30
+ Specify a version of the plugin gem to install via \fB\-\-version\fR\.
31
+ .IP
32
+ Example: \fBbundle plugin install bundler\-graph \-\-version 0\.2\.1\fR
28
33
  .TP
29
- \fBbundle plugin install bundler\-graph \-\-git https://github\.com/rubygems/bundler\-graph\fR
30
- Install bundler\-graph gem from Git repository\. You can use standard Git URLs like:
34
+ \fB\-\-git=GIT\fR
35
+ Install the plugin gem from a Git repository\. You can use standard Git URLs like:
31
36
  .IP
32
37
  \fBssh://[user@]host\.xz[:port]/path/to/repo\.git\fR
33
38
  .br
@@ -37,12 +42,32 @@ Install bundler\-graph gem from Git repository\. You can use standard Git URLs l
37
42
  .br
38
43
  \fBfile:///path/to/repo\fR
39
44
  .IP
40
- When you specify \fB\-\-git\fR, you can use \fB\-\-branch\fR or \fB\-\-ref\fR to specify any branch, tag, or commit hash (revision) to use\.
45
+ Example: \fBbundle plugin install bundler\-graph \-\-git https://github\.com/rubygems/bundler\-graph\fR
46
+ .TP
47
+ \fB\-\-branch=BRANCH\fR
48
+ When you specify \fB\-\-git\fR, you can use \fB\-\-branch\fR to use\.
49
+ .TP
50
+ \fB\-\-ref=REF\fR
51
+ When you specify \fB\-\-git\fR, you can use \fB\-\-ref\fR to specify any tag, or commit hash (revision) to use\.
41
52
  .TP
42
- \fBbundle plugin install bundler\-graph \-\-path \.\./bundler\-graph\fR
43
- Install bundler\-graph gem from a local path\.
53
+ \fB\-\-path=PATH\fR
54
+ Install the plugin gem from a local path\.
55
+ .IP
56
+ Example: \fBbundle plugin install bundler\-graph \-\-path \.\./bundler\-graph\fR
57
+ .TP
58
+ \fB\-\-local\-git=LOCAL_GIT\fR
59
+ Install the plugin gem from a local Git repository\.
60
+ .IP
61
+ Example: \fBbundle plugin install bundler\-graph \-\-local\-git \.\./bundler\-graph\fR\.
62
+ .IP
63
+ This option is deprecated in favor of \fB\-\-git\fR\.
44
64
  .SS "uninstall"
45
65
  Uninstall the plugin(s) specified in PLUGINS\.
66
+ .P
67
+ \fBOPTIONS\fR
68
+ .TP
69
+ \fB\-\-all\fR
70
+ Uninstall all the installed plugins\. If no plugin is installed, then it does nothing\.
46
71
  .SS "list"
47
72
  List the installed plugins and available commands\.
48
73
  .P
@@ -3,10 +3,11 @@ bundle-plugin(1) -- Manage Bundler plugins
3
3
 
4
4
  ## SYNOPSIS
5
5
 
6
- `bundle plugin` install PLUGINS [--source=<SOURCE>] [--version=<version>]
7
- [--git=<git-url>] [--branch=<branch>|--ref=<rev>]
8
- [--path=<path>]<br>
9
- `bundle plugin` uninstall PLUGINS<br>
6
+ `bundle plugin` install PLUGINS [--source=SOURCE] [--version=VERSION]
7
+ [--git=GIT] [--branch=BRANCH|--ref=REF]
8
+ [--local-git=LOCAL_GIT]
9
+ [--path=PATH]<br>
10
+ `bundle plugin` uninstall PLUGINS [--all]<br>
10
11
  `bundle plugin` list<br>
11
12
  `bundle plugin` help [COMMAND]
12
13
 
@@ -20,32 +21,60 @@ You can install, uninstall, and list plugin(s) with this command to extend funct
20
21
 
21
22
  Install the given plugin(s).
22
23
 
23
- * `bundle plugin install bundler-graph`:
24
- Install bundler-graph gem from globally configured sources (defaults to RubyGems.org). The global source, specified in source in Gemfile is ignored.
24
+ For example, `bundle plugin install bundler-graph` will install bundler-graph
25
+ gem from globally configured sources (defaults to RubyGems.org). Note that the
26
+ global source specified in Gemfile is ignored.
25
27
 
26
- * `bundle plugin install bundler-graph --source https://example.com`:
27
- Install bundler-graph gem from example.com. The global source, specified in source in Gemfile is not considered.
28
+ **OPTIONS**
28
29
 
29
- * `bundle plugin install bundler-graph --version 0.2.1`:
30
- You can specify the version of the gem via `--version`.
30
+ * `--source=SOURCE`:
31
+ Install the plugin gem from a specific source, rather than from globally configured sources.
31
32
 
32
- * `bundle plugin install bundler-graph --git https://github.com/rubygems/bundler-graph`:
33
- Install bundler-graph gem from Git repository. You can use standard Git URLs like:
33
+ Example: `bundle plugin install bundler-graph --source https://example.com`
34
+
35
+ * `--version=VERSION`:
36
+ Specify a version of the plugin gem to install via `--version`.
37
+
38
+ Example: `bundle plugin install bundler-graph --version 0.2.1`
39
+
40
+ * `--git=GIT`:
41
+ Install the plugin gem from a Git repository. You can use standard Git URLs like:
34
42
 
35
43
  `ssh://[user@]host.xz[:port]/path/to/repo.git`<br>
36
44
  `http[s]://host.xz[:port]/path/to/repo.git`<br>
37
45
  `/path/to/repo`<br>
38
46
  `file:///path/to/repo`
39
47
 
40
- When you specify `--git`, you can use `--branch` or `--ref` to specify any branch, tag, or commit hash (revision) to use.
48
+ Example: `bundle plugin install bundler-graph --git https://github.com/rubygems/bundler-graph`
49
+
50
+ * `--branch=BRANCH`:
51
+ When you specify `--git`, you can use `--branch` to use.
52
+
53
+ * `--ref=REF`:
54
+ When you specify `--git`, you can use `--ref` to specify any tag, or commit
55
+ hash (revision) to use.
56
+
57
+ * `--path=PATH`:
58
+ Install the plugin gem from a local path.
41
59
 
42
- * `bundle plugin install bundler-graph --path ../bundler-graph`:
43
- Install bundler-graph gem from a local path.
60
+ Example: `bundle plugin install bundler-graph --path ../bundler-graph`
61
+
62
+ * `--local-git=LOCAL_GIT`:
63
+ Install the plugin gem from a local Git repository.
64
+
65
+ Example: `bundle plugin install bundler-graph --local-git ../bundler-graph`.
66
+
67
+ This option is deprecated in favor of `--git`.
44
68
 
45
69
  ### uninstall
46
70
 
47
71
  Uninstall the plugin(s) specified in PLUGINS.
48
72
 
73
+ **OPTIONS**
74
+
75
+ * `--all`:
76
+ Uninstall all the installed plugins. If no plugin is installed, then it does nothing.
77
+
49
78
  ### list
50
79
 
51
80
  List the installed plugins and available commands.
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-PRISTINE" "1" "July 2025" ""
3
+ .TH "BUNDLE\-PRISTINE" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-pristine\fR \- Restores installed gems to their pristine condition
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-REMOVE" "1" "July 2025" ""
3
+ .TH "BUNDLE\-REMOVE" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-remove\fR \- Removes gems from the Gemfile
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-SHOW" "1" "July 2025" ""
3
+ .TH "BUNDLE\-SHOW" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem
6
6
  .SH "SYNOPSIS"
@@ -1,10 +1,10 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-UPDATE" "1" "July 2025" ""
3
+ .TH "BUNDLE\-UPDATE" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-update\fR \- Update your gems to the latest available versions
6
6
  .SH "SYNOPSIS"
7
- \fBbundle update\fR \fI*gems\fR [\-\-all] [\-\-group=NAME] [\-\-source=NAME] [\-\-local] [\-\-ruby] [\-\-bundler[=VERSION]] [\-\-full\-index] [\-\-gemfile=GEMFILE] [\-\-jobs=NUMBER] [\-\-quiet] [\-\-patch|\-\-minor|\-\-major] [\-\-pre] [\-\-redownload] [\-\-strict] [\-\-conservative]
7
+ \fBbundle update\fR \fI*gems\fR [\-\-all] [\-\-group=NAME] [\-\-source=NAME] [\-\-local] [\-\-ruby] [\-\-bundler[=VERSION]] [\-\-force] [\-\-full\-index] [\-\-gemfile=GEMFILE] [\-\-jobs=NUMBER] [\-\-quiet] [\-\-patch|\-\-minor|\-\-major] [\-\-pre] [\-\-strict] [\-\-conservative]
8
8
  .SH "DESCRIPTION"
9
9
  Update the gems specified (all gems, if \fB\-\-all\fR flag is used), ignoring the previously installed gems specified in the \fBGemfile\.lock\fR\. In general, you should use bundle install(1) \fIbundle\-install\.1\.html\fR to install the same exact gems and versions across machines\.
10
10
  .P
@@ -29,6 +29,9 @@ Update the locked version of Ruby to the current version of Ruby\.
29
29
  \fB\-\-bundler[=BUNDLER]\fR
30
30
  Update the locked version of bundler to the invoked bundler version\.
31
31
  .TP
32
+ \fB\-\-force\fR, \fB\-\-redownload\fR
33
+ Force reinstalling every gem, even if already installed\.
34
+ .TP
32
35
  \fB\-\-full\-index\fR
33
36
  Fall back to using the single\-file index of all gems\.
34
37
  .TP
@@ -44,9 +47,6 @@ Retry failed network or git requests for \fInumber\fR times\.
44
47
  \fB\-\-quiet\fR
45
48
  Only output warnings and errors\.
46
49
  .TP
47
- \fB\-\-redownload\fR, \fB\-\-force\fR
48
- Force downloading every gem\.
49
- .TP
50
50
  \fB\-\-patch\fR
51
51
  Prefer updating only to next patch version\.
52
52
  .TP
@@ -9,13 +9,13 @@ bundle-update(1) -- Update your gems to the latest available versions
9
9
  [--local]
10
10
  [--ruby]
11
11
  [--bundler[=VERSION]]
12
+ [--force]
12
13
  [--full-index]
13
14
  [--gemfile=GEMFILE]
14
15
  [--jobs=NUMBER]
15
16
  [--quiet]
16
17
  [--patch|--minor|--major]
17
18
  [--pre]
18
- [--redownload]
19
19
  [--strict]
20
20
  [--conservative]
21
21
 
@@ -54,6 +54,9 @@ gem.
54
54
  * `--bundler[=BUNDLER]`:
55
55
  Update the locked version of bundler to the invoked bundler version.
56
56
 
57
+ * `--force`, `--redownload`:
58
+ Force reinstalling every gem, even if already installed.
59
+
57
60
  * `--full-index`:
58
61
  Fall back to using the single-file index of all gems.
59
62
 
@@ -70,9 +73,6 @@ gem.
70
73
  * `--quiet`:
71
74
  Only output warnings and errors.
72
75
 
73
- * `--redownload`, `--force`:
74
- Force downloading every gem.
75
-
76
76
  * `--patch`:
77
77
  Prefer updating only to next patch version.
78
78
 
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-VERSION" "1" "July 2025" ""
3
+ .TH "BUNDLE\-VERSION" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-version\fR \- Prints Bundler version information
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-VIZ" "1" "July 2025" ""
3
+ .TH "BUNDLE\-VIZ" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE" "1" "July 2025" ""
3
+ .TH "BUNDLE" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\fR \- Ruby Dependency Management
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "GEMFILE" "5" "July 2025" ""
3
+ .TH "GEMFILE" "5" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
6
6
  .SH "SYNOPSIS"
@@ -21,6 +21,7 @@ module Bundler
21
21
  @locked_version = locked_specs.version_for(name)
22
22
  @unlock = unlock
23
23
  @dependency = dependency || Dependency.new(name, @locked_version)
24
+ @platforms |= [Gem::Platform::RUBY] if @dependency.default_force_ruby_platform
24
25
  @top_level = !dependency.nil?
25
26
  @prerelease = @dependency.prerelease? || @locked_version&.prerelease? || prerelease ? :consider_first : :ignore
26
27
  @prefer_local = prefer_local
@@ -272,7 +272,7 @@ module Bundler
272
272
  def use_system_gems?
273
273
  return true if system_path
274
274
  return false if explicit_path
275
- !Bundler.feature_flag.bundler_4_mode?
275
+ !Bundler.feature_flag.bundler_5_mode?
276
276
  end
277
277
 
278
278
  def base_path
@@ -10,6 +10,10 @@ module Bundler
10
10
  super
11
11
  @gemspec = options["gemspec"]
12
12
  end
13
+
14
+ def to_s
15
+ "gemspec at `#{@path}`"
16
+ end
13
17
  end
14
18
  end
15
19
  end
@@ -53,6 +53,8 @@ module Bundler
53
53
  "source at `#{@path}`"
54
54
  end
55
55
 
56
+ alias_method :identifier, :to_s
57
+
56
58
  alias_method :to_gemfile, :path
57
59
 
58
60
  def hash
@@ -22,9 +22,9 @@ Gem::Specification.new do |spec|
22
22
  spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
23
23
  spec.metadata["homepage_uri"] = spec.homepage
24
24
  spec.metadata["source_code_uri"] = "<%= config[:source_code_uri] %>"
25
- <%- if config[:changelog] -%>
26
- spec.metadata["changelog_uri"] = "<%= config[:changelog_uri] %>"
27
- <%- end -%>
25
+ <%- if config[:changelog] -%>
26
+ spec.metadata["changelog_uri"] = "<%= config[:changelog_uri] %>"
27
+ <%- end -%>
28
28
 
29
29
  # Specify which files should be added to the gem when it is released.
30
30
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -242,6 +242,35 @@ class Bundler::Thor
242
242
  insert_into_file(path, *(args << config), &block)
243
243
  end
244
244
 
245
+ # Run a regular expression replacement on a file, raising an error if the
246
+ # contents of the file are not changed.
247
+ #
248
+ # ==== Parameters
249
+ # path<String>:: path of the file to be changed
250
+ # flag<Regexp|String>:: the regexp or string to be replaced
251
+ # replacement<String>:: the replacement, can be also given as a block
252
+ # config<Hash>:: give :verbose => false to not log the status, and
253
+ # :force => true, to force the replacement regardless of runner behavior.
254
+ #
255
+ # ==== Example
256
+ #
257
+ # gsub_file! 'app/controllers/application_controller.rb', /#\s*(filter_parameter_logging :password)/, '\1'
258
+ #
259
+ # gsub_file! 'README', /rake/, :green do |match|
260
+ # match << " no more. Use thor!"
261
+ # end
262
+ #
263
+ def gsub_file!(path, flag, *args, &block)
264
+ config = args.last.is_a?(Hash) ? args.pop : {}
265
+
266
+ return unless behavior == :invoke || config.fetch(:force, false)
267
+
268
+ path = File.expand_path(path, destination_root)
269
+ say_status :gsub, relative_to_original_destination_root(path), config.fetch(:verbose, true)
270
+
271
+ actually_gsub_file(path, flag, args, true, &block) unless options[:pretend]
272
+ end
273
+
245
274
  # Run a regular expression replacement on a file.
246
275
  #
247
276
  # ==== Parameters
@@ -267,11 +296,7 @@ class Bundler::Thor
267
296
  path = File.expand_path(path, destination_root)
268
297
  say_status :gsub, relative_to_original_destination_root(path), config.fetch(:verbose, true)
269
298
 
270
- unless options[:pretend]
271
- content = File.binread(path)
272
- content.gsub!(flag, *args, &block)
273
- File.open(path, "wb") { |file| file.write(content) }
274
- end
299
+ actually_gsub_file(path, flag, args, false, &block) unless options[:pretend]
275
300
  end
276
301
 
277
302
  # Uncomment all lines matching a given regex. Preserves indentation before
@@ -348,7 +373,7 @@ class Bundler::Thor
348
373
  end
349
374
 
350
375
  def with_output_buffer(buf = "".dup) #:nodoc:
351
- raise ArgumentError, "Buffer can not be a frozen object" if buf.frozen?
376
+ raise ArgumentError, "Buffer cannot be a frozen object" if buf.frozen?
352
377
  old_buffer = output_buffer
353
378
  self.output_buffer = buf
354
379
  yield
@@ -357,6 +382,17 @@ class Bundler::Thor
357
382
  self.output_buffer = old_buffer
358
383
  end
359
384
 
385
+ def actually_gsub_file(path, flag, args, error_on_no_change, &block)
386
+ content = File.binread(path)
387
+ success = content.gsub!(flag, *args, &block)
388
+
389
+ if success.nil? && error_on_no_change
390
+ raise Bundler::Thor::Error, "The content of #{path} did not change"
391
+ end
392
+
393
+ File.open(path, "wb") { |file| file.write(content) }
394
+ end
395
+
360
396
  # Bundler::Thor::Actions#capture depends on what kind of buffer is used in ERB.
361
397
  # Thus CapturableERB fixes ERB to use String buffer.
362
398
  class CapturableERB < ERB
@@ -144,7 +144,7 @@ class Bundler::Thor
144
144
  def check_exclusive!
145
145
  opts = @assigns.keys
146
146
  # When option A and B are exclusive, if A and B are given at the same time,
147
- # the diffrence of argument array size will decrease.
147
+ # the difference of argument array size will decrease.
148
148
  found = @exclusives.find{ |ex| (ex - opts).size < ex.size - 1 }
149
149
  if found
150
150
  names = names_to_switch_names(found & opts).map{|n| "'#{n}'"}
@@ -1,7 +1,6 @@
1
1
  require_relative "../thor"
2
2
  require_relative "group"
3
3
 
4
- require "yaml"
5
4
  require "digest/sha2"
6
5
  require "pathname"
7
6
 
@@ -195,6 +194,7 @@ private
195
194
  def thor_yaml
196
195
  @thor_yaml ||= begin
197
196
  yaml_file = File.join(thor_root, "thor.yml")
197
+ require "yaml"
198
198
  yaml = YAML.load_file(yaml_file) if File.exist?(yaml_file)
199
199
  yaml || {}
200
200
  end
@@ -314,7 +314,7 @@ class Bundler::Thor
314
314
  diff_cmd = ENV["THOR_DIFF"] || ENV["RAILS_DIFF"] || "diff -u"
315
315
 
316
316
  require "tempfile"
317
- Tempfile.open(File.basename(destination), File.dirname(destination)) do |temp|
317
+ Tempfile.open(File.basename(destination), File.dirname(destination), binmode: true) do |temp|
318
318
  temp.write content
319
319
  temp.rewind
320
320
  system %(#{diff_cmd} "#{destination}" "#{temp.path}")
@@ -372,16 +372,12 @@ class Bundler::Thor
372
372
  Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination)) do |temp|
373
373
  temp.write content
374
374
  temp.rewind
375
- system %(#{merge_tool} "#{temp.path}" "#{destination}")
375
+ system(merge_tool, temp.path, destination)
376
376
  end
377
377
  end
378
378
 
379
379
  def merge_tool #:nodoc:
380
- @merge_tool ||= ENV["THOR_MERGE"] || git_merge_tool
381
- end
382
-
383
- def git_merge_tool #:nodoc:
384
- `git config merge.tool`.rstrip rescue ""
380
+ @merge_tool ||= ENV["THOR_MERGE"] || "git difftool --no-index"
385
381
  end
386
382
  end
387
383
  end
@@ -1,3 +1,3 @@
1
1
  class Bundler::Thor
2
- VERSION = "1.3.2"
2
+ VERSION = "1.4.0"
3
3
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.7.0".freeze
4
+ VERSION = "2.7.2".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= gem_version.segments.first
@@ -28,27 +28,6 @@ existing default by configuring
28
28
  bundle config default_cli_command install
29
29
  ```
30
30
 
31
- ### Bundler will install to a `.bundle` folder relative to repository root by default
32
-
33
- We're making this change to improve isolation.
34
-
35
- The previous default of installing to system changes can be kept with `bundle
36
- config path.system true`.
37
-
38
- Related to this change, and to alleviate potential bad consequences from it,
39
- we're also shipping some related changes:
40
-
41
- * To keep disk usage under control, Bundler will cleanup unused gems when
42
- installing gems per application using the new default. This new behavior can
43
- be disabled by toggling back installing to system gems as explained before, or
44
- by configuring `bundle config clean false`.
45
-
46
- * To avoid duplicate downloads of `.gem` packages and recompilation of
47
- extensions, Bundler will keep a global cache of gem packages and compiled
48
- extensions. This new behaviour can be disabled with `bundle config
49
- global_gem_cache false`, or by toggling back installing to system gems as
50
- explained before.
51
-
52
31
  ### Flags passed to `bundle install` that relied on being remembered across invocations will be removed
53
32
 
54
33
  In particular, the `--clean`, `--deployment`, `--frozen`, `--no-prune`,
@@ -144,12 +123,6 @@ Bundler will refuse to run otherwise.
144
123
 
145
124
  #### Notable CLI changes
146
125
 
147
- * The `--force` flag to `bundle install` and `bundle update` will be renamed to `--redownload`.
148
-
149
- This is just a simple rename of the flag, to make more apparent what it
150
- actually does. This flag forces redownloading every gem, it doesn't "force"
151
- anything else.
152
-
153
126
  * `bundle viz` will be removed and extracted to a plugin.
154
127
 
155
128
  This is the only bundler command requiring external dependencies, both an OS