rubygems-update 4.0.7 → 4.0.8

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/bundler/CHANGELOG.md +11 -0
  4. data/bundler/lib/bundler/build_metadata.rb +2 -2
  5. data/bundler/lib/bundler/fetcher/dependency.rb +7 -1
  6. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  7. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  8. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  9. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  10. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  11. data/bundler/lib/bundler/man/bundle-config.1 +4 -1
  12. data/bundler/lib/bundler/man/bundle-config.1.ronn +5 -0
  13. data/bundler/lib/bundler/man/bundle-console.1 +1 -1
  14. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  15. data/bundler/lib/bundler/man/bundle-env.1 +1 -1
  16. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  17. data/bundler/lib/bundler/man/bundle-fund.1 +1 -1
  18. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  19. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  20. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  21. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  22. data/bundler/lib/bundler/man/bundle-install.1 +1 -1
  23. data/bundler/lib/bundler/man/bundle-issue.1 +1 -1
  24. data/bundler/lib/bundler/man/bundle-licenses.1 +1 -1
  25. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  26. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  27. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  35. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  36. data/bundler/lib/bundler/man/bundle.1 +1 -1
  37. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  38. data/bundler/lib/bundler/plugin/index.rb +6 -0
  39. data/bundler/lib/bundler/plugin.rb +2 -2
  40. data/bundler/lib/bundler/templates/newgem/github/workflows/build-gems.yml.tt +8 -4
  41. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +4 -1
  42. data/bundler/lib/bundler/version.rb +1 -1
  43. data/lib/rubygems/ext/cargo_builder.rb +3 -4
  44. data/lib/rubygems/request.rb +1 -0
  45. data/lib/rubygems/resolver/api_set.rb +5 -5
  46. data/lib/rubygems/resolver/api_specification.rb +3 -3
  47. data/lib/rubygems/source.rb +1 -1
  48. data/lib/rubygems.rb +1 -1
  49. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd74ce9ba4fda49012edabc1f3ac73712a3d4e5cac0a0093731b71dbfe5c7e0e
4
- data.tar.gz: 513137267bce8b486aa2b239c05ddfa7f0a85c5bc3a2a495e9a8e50a179f51f3
3
+ metadata.gz: 5f238fb097512e0240397998ccc336ee348bedcf0618f1968a60e41272d77539
4
+ data.tar.gz: 0e9260dd18ac27c9bcea0d941a5b179a66a7626f4300ee02eab89dd7ecfa9a44
5
5
  SHA512:
6
- metadata.gz: c2c8b03826b7117d507149efd79904e4bf6028da39569dfd2e4a7301a1273064d2069e89c22adee81b1c2b80804f1a23cc635154df0d0f42467c5a83f44e2508
7
- data.tar.gz: 0517c93d395ef01d37f9f3375ed5c93a11836b8dc1adec94c01181fe7f14243ef517a840f0692c33b04c8c963007556604d955aee5d5a3ebaf72fdc0224107bc
6
+ metadata.gz: 0136f709eb566f26bffa87d5c7c87b1ee62e6310c66a5f174f65591f46eb7a26aeafeaf244934be67d91d6263e2d66368256b44f97a6f92cda8c269561bfcb6c
7
+ data.tar.gz: 8d87a706aad6a67bfdd877103e4aa2e0e021d217dbdf57f41cde9e1c0fcda6a7f53a50f98fef5bd2d471ac90f2e1fa0f64622a79023476510ea339b46c05d945
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.8 / 2026-03-11
4
+
5
+ ### Enhancements:
6
+
7
+ * Use JSON for cargo metadata parsing. Pull request
8
+ [#9373](https://github.com/ruby/rubygems/pull/9373) by hsbt
9
+ * Fix NameError in Gem::Request.get_proxy_from_env when requiring
10
+ rubygems/request directly. Pull request
11
+ [#9362](https://github.com/ruby/rubygems/pull/9362) by afurm
12
+ * Installs bundler 4.0.8 as a default gem.
13
+
14
+ ### Documentation:
15
+
16
+ * Unify Compact Index API naming. Pull request
17
+ [#9372](https://github.com/ruby/rubygems/pull/9372) by simi
18
+
3
19
  ## 4.0.7 / 2026-02-25
4
20
 
5
21
  ### Enhancements:
data/bundler/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.8 (2026-03-11)
4
+
5
+ ### Enhancements:
6
+
7
+ - Add a new Bundler config to control how many specs are fetched [#9363](https://github.com/ruby/rubygems/pull/9363)
8
+ - Restrict GitHub Actions workflow permissions for newgem [#9361](https://github.com/ruby/rubygems/pull/9361)
9
+
10
+ ### Bug fixes:
11
+
12
+ - Fix plugin new version not registering [#9355](https://github.com/ruby/rubygems/pull/9355)
13
+
3
14
  ## 4.0.7 (2026-02-25)
4
15
 
5
16
  ### Enhancements:
@@ -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 = "2026-02-25".freeze
8
- @git_commit_sha = "049c458564".freeze
7
+ @built_at = "2026-03-11".freeze
8
+ @git_commit_sha = "1a32b76b73".freeze
9
9
  # end ivars
10
10
 
11
11
  # A hash representation of the build metadata.
@@ -50,7 +50,7 @@ module Bundler
50
50
 
51
51
  def unmarshalled_dep_gems(gem_names)
52
52
  gem_list = []
53
- gem_names.each_slice(Source::Rubygems::API_REQUEST_SIZE) do |names|
53
+ gem_names.each_slice(api_request_size) do |names|
54
54
  marshalled_deps = downloader.fetch(dependency_api_uri(names)).body
55
55
  gem_list.concat(Bundler.safe_load_marshal(marshalled_deps))
56
56
  end
@@ -74,6 +74,12 @@ module Bundler
74
74
  uri.query = "gems=#{CGI.escape(gem_names.sort.join(","))}" if gem_names.any?
75
75
  uri
76
76
  end
77
+
78
+ private
79
+
80
+ def api_request_size
81
+ Bundler.settings[:api_request_size]&.to_i || Source::Rubygems::API_REQUEST_SIZE
82
+ end
77
83
  end
78
84
  end
79
85
  end
@@ -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\-ADD" "1" "February 2026" ""
3
+ .TH "BUNDLE\-ADD" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
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\-BINSTUBS" "1" "February 2026" ""
3
+ .TH "BUNDLE\-BINSTUBS" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
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\-CACHE" "1" "February 2026" ""
3
+ .TH "BUNDLE\-CACHE" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application
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\-CHECK" "1" "February 2026" ""
3
+ .TH "BUNDLE\-CHECK" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
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\-CLEAN" "1" "February 2026" ""
3
+ .TH "BUNDLE\-CLEAN" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
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\-CONFIG" "1" "February 2026" ""
3
+ .TH "BUNDLE\-CONFIG" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-config\fR \- Set bundler configuration options
6
6
  .SH "SYNOPSIS"
@@ -70,6 +70,9 @@ Any periods in the configuration keys must be replaced with two underscores when
70
70
  .SH "LIST OF AVAILABLE KEYS"
71
71
  The following is a list of all configuration keys and their purpose\. You can learn more about their operation in bundle install(1) \fIbundle\-install\.1\.html\fR\.
72
72
  .TP
73
+ \fBapi_request_size\fR (\fBBUNDLE_API_REQUEST_SIZE\fR)
74
+ Configure how many dependencies to fetch when resolving the specifications\. This configuration is only used when fetchig specifications from RubyGems servers that didn't implement the Compact Index API\. Defaults to 100\.
75
+ .TP
73
76
  \fBauto_install\fR (\fBBUNDLE_AUTO_INSTALL\fR)
74
77
  Automatically run \fBbundle install\fR when gems are missing\.
75
78
  .TP
@@ -106,6 +106,11 @@ the environment variable `BUNDLE_LOCAL__RACK`.
106
106
  The following is a list of all configuration keys and their purpose. You can
107
107
  learn more about their operation in [bundle install(1)](bundle-install.1.html).
108
108
 
109
+ * `api_request_size` (`BUNDLE_API_REQUEST_SIZE`):
110
+ Configure how many dependencies to fetch when resolving the specifications.
111
+ This configuration is only used when fetchig specifications from RubyGems
112
+ servers that didn't implement the Compact Index API.
113
+ Defaults to 100.
109
114
  * `auto_install` (`BUNDLE_AUTO_INSTALL`):
110
115
  Automatically run `bundle install` when gems are missing.
111
116
  * `bin` (`BUNDLE_BIN`):
@@ -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\-CONSOLE" "1" "February 2026" ""
3
+ .TH "BUNDLE\-CONSOLE" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-console\fR \- Open an IRB session with the bundle pre\-loaded
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\-DOCTOR" "1" "February 2026" ""
3
+ .TH "BUNDLE\-DOCTOR" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-doctor\fR \- Checks the bundle for common problems
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\-ENV" "1" "February 2026" ""
3
+ .TH "BUNDLE\-ENV" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-env\fR \- Print information about the environment Bundler is running under
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\-EXEC" "1" "February 2026" ""
3
+ .TH "BUNDLE\-EXEC" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-exec\fR \- Execute a command in the context of 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\-FUND" "1" "February 2026" ""
3
+ .TH "BUNDLE\-FUND" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-fund\fR \- Lists information about gems seeking funding assistance
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\-GEM" "1" "February 2026" ""
3
+ .TH "BUNDLE\-GEM" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
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\-HELP" "1" "February 2026" ""
3
+ .TH "BUNDLE\-HELP" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-help\fR \- Displays detailed help for each subcommand
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\-INFO" "1" "February 2026" ""
3
+ .TH "BUNDLE\-INFO" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-info\fR \- Show information for the given 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\-INIT" "1" "February 2026" ""
3
+ .TH "BUNDLE\-INIT" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-init\fR \- Generates a Gemfile into the current working directory
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\-INSTALL" "1" "February 2026" ""
3
+ .TH "BUNDLE\-INSTALL" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-install\fR \- Install the dependencies specified in 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\-ISSUE" "1" "February 2026" ""
3
+ .TH "BUNDLE\-ISSUE" "1" "March 2026" ""
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" "February 2026" ""
3
+ .TH "BUNDLE\-LICENSES" "1" "March 2026" ""
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" "February 2026" ""
3
+ .TH "BUNDLE\-LIST" "1" "March 2026" ""
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" "February 2026" ""
3
+ .TH "BUNDLE\-LOCK" "1" "March 2026" ""
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" "February 2026" ""
3
+ .TH "BUNDLE\-OPEN" "1" "March 2026" ""
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" "February 2026" ""
3
+ .TH "BUNDLE\-OUTDATED" "1" "March 2026" ""
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" "February 2026" ""
3
+ .TH "BUNDLE\-PLATFORM" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-platform\fR \- Displays platform compatibility 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\-PLUGIN" "1" "February 2026" ""
3
+ .TH "BUNDLE\-PLUGIN" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-plugin\fR \- Manage Bundler plugins
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\-PRISTINE" "1" "February 2026" ""
3
+ .TH "BUNDLE\-PRISTINE" "1" "March 2026" ""
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" "February 2026" ""
3
+ .TH "BUNDLE\-REMOVE" "1" "March 2026" ""
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" "February 2026" ""
3
+ .TH "BUNDLE\-SHOW" "1" "March 2026" ""
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,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\-UPDATE" "1" "February 2026" ""
3
+ .TH "BUNDLE\-UPDATE" "1" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-update\fR \- Update your gems to the latest available versions
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\-VERSION" "1" "February 2026" ""
3
+ .TH "BUNDLE\-VERSION" "1" "March 2026" ""
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" "1" "February 2026" ""
3
+ .TH "BUNDLE" "1" "March 2026" ""
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" "February 2026" ""
3
+ .TH "GEMFILE" "5" "March 2026" ""
4
4
  .SH "NAME"
5
5
  \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
6
6
  .SH "SYNOPSIS"
@@ -119,6 +119,12 @@ module Bundler
119
119
  @plugin_paths[name]
120
120
  end
121
121
 
122
+ def up_to_date?(spec)
123
+ path = installed?(spec.name)
124
+
125
+ path == spec.full_gem_path
126
+ end
127
+
122
128
  def installed_plugins
123
129
  @plugin_paths.keys
124
130
  end
@@ -113,7 +113,7 @@ module Bundler
113
113
 
114
114
  return if definition.dependencies.empty?
115
115
 
116
- plugins = definition.dependencies.map(&:name).reject {|p| index.installed? p }
116
+ plugins = definition.dependencies.map(&:name)
117
117
  installed_specs = Installer.new.install_definition(definition)
118
118
 
119
119
  save_plugins plugins, installed_specs, builder.inferred_plugins
@@ -258,7 +258,7 @@ module Bundler
258
258
  # It's possible that the `plugin` found in the Gemfile don't appear in the specs. For instance when
259
259
  # calling `BUNDLE_WITHOUT=default bundle install`, the plugins will not get installed.
260
260
  next if spec.nil?
261
- next if index.installed?(name)
261
+ next if index.up_to_date?(spec)
262
262
 
263
263
  save_plugin(name, spec, optional_plugins.include?(name))
264
264
  end
@@ -8,6 +8,10 @@ on:
8
8
  - "cross-gem/*"
9
9
  workflow_dispatch:
10
10
 
11
+ permissions:
12
+ contents: read
13
+ packages: write
14
+
11
15
  jobs:
12
16
  ci-data:
13
17
  runs-on: ubuntu-latest
@@ -25,7 +29,7 @@ jobs:
25
29
  source-gem:
26
30
  runs-on: ubuntu-latest
27
31
  steps:
28
- - uses: actions/checkout@v4
32
+ - uses: actions/checkout@v6
29
33
 
30
34
  - uses: ruby/setup-ruby@v1
31
35
  with:
@@ -34,7 +38,7 @@ jobs:
34
38
  - name: Build gem
35
39
  run: bundle exec rake build
36
40
 
37
- - uses: actions/upload-artifact@v3
41
+ - uses: actions/upload-artifact@v7
38
42
  with:
39
43
  name: source-gem
40
44
  path: pkg/*.gem
@@ -47,7 +51,7 @@ jobs:
47
51
  matrix:
48
52
  platform: ${{ fromJSON(needs.ci-data.outputs.result).supported-ruby-platforms }}
49
53
  steps:
50
- - uses: actions/checkout@v4
54
+ - uses: actions/checkout@v6
51
55
 
52
56
  - uses: ruby/setup-ruby@v1
53
57
  with:
@@ -59,7 +63,7 @@ jobs:
59
63
  platform: ${{ matrix.platform }}
60
64
  ruby-versions: ${{ join(fromJSON(needs.ci-data.outputs.result).stable-ruby-versions, ',') }}
61
65
 
62
- - uses: actions/upload-artifact@v3
66
+ - uses: actions/upload-artifact@v7
63
67
  with:
64
68
  name: cross-gem
65
69
  path: ${{ steps.cross-gem.outputs.gem-path }}
@@ -7,6 +7,9 @@ on:
7
7
 
8
8
  pull_request:
9
9
 
10
+ permissions:
11
+ contents: read
12
+
10
13
  jobs:
11
14
  build:
12
15
  runs-on: ubuntu-latest
@@ -17,7 +20,7 @@ jobs:
17
20
  - '<%= RUBY_VERSION %>'
18
21
 
19
22
  steps:
20
- - uses: actions/checkout@v4
23
+ - uses: actions/checkout@v6
21
24
  with:
22
25
  persist-credentials: false
23
26
  <%- if config[:ext] == 'rust' -%>
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "4.0.7".freeze
4
+ VERSION = "4.0.8".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= gem_version.segments.first
@@ -227,10 +227,9 @@ class Gem::Ext::CargoBuilder < Gem::Ext::Builder
227
227
  raise Gem::InstallError, "cargo metadata failed#{exit_reason}"
228
228
  end
229
229
 
230
- # cargo metadata output is specified as json, but with the
231
- # --format-version 1 option the output is compatible with YAML, so we can
232
- # avoid the json dependency
233
- metadata = Gem::SafeYAML.safe_load(output)
230
+ # cargo metadata output is specified as json
231
+ require "json"
232
+ metadata = JSON.parse(output)
234
233
  package = metadata["packages"].find {|pkg| normalize_path(pkg["manifest_path"]) == manifest_path }
235
234
  unless package
236
235
  found = metadata["packages"].map {|md| "#{md["name"]} at #{md["manifest_path"]}" }
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative "vendored_net_http"
4
4
  require_relative "user_interaction"
5
+ require_relative "uri_formatter"
5
6
 
6
7
  class Gem::Request
7
8
  extend Gem::UserInteraction
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  ##
4
- # The global rubygems pool, available via the rubygems.org API.
4
+ # The global rubygems pool, available via the Compact Index API.
5
5
  # Returns instances of APISpecification.
6
6
 
7
7
  class Gem::Resolver::APISet < Gem::Resolver::Set
8
8
  autoload :GemParser, File.expand_path("api_set/gem_parser", __dir__)
9
9
 
10
10
  ##
11
- # The URI for the dependency API this APISet uses.
11
+ # The URI for the Compact Index API this APISet uses.
12
12
 
13
13
  attr_reader :dep_uri # :nodoc:
14
14
 
@@ -23,9 +23,9 @@ class Gem::Resolver::APISet < Gem::Resolver::Set
23
23
  attr_reader :uri
24
24
 
25
25
  ##
26
- # Creates a new APISet that will retrieve gems from +uri+ using the RubyGems
27
- # API URL +dep_uri+ which is described at
28
- # https://guides.rubygems.org/rubygems-org-api
26
+ # Creates a new APISet that will retrieve gems from +uri+ using the Compact
27
+ # Index API URL +dep_uri+ which is described at
28
+ # https://guides.rubygems.org/rubygems-org-compact-index-api
29
29
 
30
30
  def initialize(dep_uri = "https://index.rubygems.org/info/")
31
31
  super()
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  ##
4
- # Represents a specification retrieved via the rubygems.org API.
4
+ # Represents a specification retrieved via the Compact Index API.
5
5
  #
6
6
  # This is used to avoid loading the full Specification object when all we need
7
7
  # is the name, version, and dependencies.
@@ -19,10 +19,10 @@ class Gem::Resolver::APISpecification < Gem::Resolver::Specification
19
19
  end
20
20
 
21
21
  ##
22
- # Creates an APISpecification for the given +set+ from the rubygems.org
22
+ # Creates an APISpecification for the given +set+ from the Compact Index API
23
23
  # +api_data+.
24
24
  #
25
- # See https://guides.rubygems.org/rubygems-org-api/#misc-methods for the
25
+ # See https://guides.rubygems.org/rubygems-org-compact-index-api for the
26
26
  # format of the +api_data+.
27
27
 
28
28
  def initialize(set, api_data)
@@ -5,7 +5,7 @@ require_relative "text"
5
5
  # A Source knows how to list and fetch gems from a RubyGems marshal index.
6
6
  #
7
7
  # There are other Source subclasses for installed gems, local gems, the
8
- # bundler dependency API and so-forth.
8
+ # Compact Index API and so-forth.
9
9
 
10
10
  class Gem::Source
11
11
  include Comparable
data/lib/rubygems.rb CHANGED
@@ -9,7 +9,7 @@
9
9
  require "rbconfig"
10
10
 
11
11
  module Gem
12
- VERSION = "4.0.7"
12
+ VERSION = "4.0.8"
13
13
  end
14
14
 
15
15
  require_relative "rubygems/defaults"
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.7
4
+ version: 4.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich