rubygems-update 3.6.2 → 3.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/bundler/CHANGELOG.md +22 -0
  4. data/bundler/README.md +1 -1
  5. data/bundler/lib/bundler/build_metadata.rb +2 -2
  6. data/bundler/lib/bundler/cli/outdated.rb +6 -4
  7. data/bundler/lib/bundler/definition.rb +2 -2
  8. data/bundler/lib/bundler/dependency.rb +1 -1
  9. data/bundler/lib/bundler/feature_flag.rb +2 -6
  10. data/bundler/lib/bundler/installer.rb +15 -1
  11. data/bundler/lib/bundler/man/bundle-add.1 +3 -3
  12. data/bundler/lib/bundler/man/bundle-binstubs.1 +3 -3
  13. data/bundler/lib/bundler/man/bundle-cache.1 +3 -3
  14. data/bundler/lib/bundler/man/bundle-check.1 +3 -3
  15. data/bundler/lib/bundler/man/bundle-clean.1 +3 -3
  16. data/bundler/lib/bundler/man/bundle-config.1 +3 -3
  17. data/bundler/lib/bundler/man/bundle-console.1 +3 -3
  18. data/bundler/lib/bundler/man/bundle-doctor.1 +3 -3
  19. data/bundler/lib/bundler/man/bundle-env.1 +3 -3
  20. data/bundler/lib/bundler/man/bundle-exec.1 +3 -3
  21. data/bundler/lib/bundler/man/bundle-fund.1 +3 -3
  22. data/bundler/lib/bundler/man/bundle-gem.1 +3 -3
  23. data/bundler/lib/bundler/man/bundle-help.1 +3 -3
  24. data/bundler/lib/bundler/man/bundle-info.1 +3 -3
  25. data/bundler/lib/bundler/man/bundle-init.1 +3 -3
  26. data/bundler/lib/bundler/man/bundle-inject.1 +3 -3
  27. data/bundler/lib/bundler/man/bundle-install.1 +3 -3
  28. data/bundler/lib/bundler/man/bundle-issue.1 +3 -3
  29. data/bundler/lib/bundler/man/bundle-licenses.1 +3 -3
  30. data/bundler/lib/bundler/man/bundle-list.1 +3 -3
  31. data/bundler/lib/bundler/man/bundle-lock.1 +3 -3
  32. data/bundler/lib/bundler/man/bundle-open.1 +3 -3
  33. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -3
  34. data/bundler/lib/bundler/man/bundle-platform.1 +3 -3
  35. data/bundler/lib/bundler/man/bundle-plugin.1 +3 -3
  36. data/bundler/lib/bundler/man/bundle-pristine.1 +3 -3
  37. data/bundler/lib/bundler/man/bundle-remove.1 +3 -3
  38. data/bundler/lib/bundler/man/bundle-show.1 +3 -3
  39. data/bundler/lib/bundler/man/bundle-update.1 +3 -3
  40. data/bundler/lib/bundler/man/bundle-version.1 +3 -3
  41. data/bundler/lib/bundler/man/bundle-viz.1 +3 -3
  42. data/bundler/lib/bundler/man/bundle.1 +3 -3
  43. data/bundler/lib/bundler/man/gemfile.5 +3 -3
  44. data/bundler/lib/bundler/plugin/index.rb +4 -0
  45. data/bundler/lib/bundler/resolver/base.rb +2 -1
  46. data/bundler/lib/bundler/resolver/package.rb +1 -1
  47. data/bundler/lib/bundler/resolver.rb +2 -1
  48. data/bundler/lib/bundler/ruby_dsl.rb +12 -3
  49. data/bundler/lib/bundler/rubygems_integration.rb +0 -12
  50. data/bundler/lib/bundler/source/git.rb +1 -0
  51. data/bundler/lib/bundler/spec_set.rb +16 -2
  52. data/bundler/lib/bundler/version.rb +1 -1
  53. data/bundler/lib/bundler.rb +10 -30
  54. data/doc/rubygems/POLICIES.md +1 -1
  55. data/lib/rubygems/commands/environment_command.rb +5 -0
  56. data/lib/rubygems/specification.rb +1 -1
  57. data/lib/rubygems/util/licenses.rb +19 -0
  58. data/lib/rubygems.rb +9 -2
  59. data/rubygems-update.gemspec +1 -1
  60. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c7fc38a36a930a52e9fb812ac5bc206c9f58540bff63db2bee276d514d08ce5f
4
- data.tar.gz: 8056fefbaf65da55c57da58c72c9f7bb6e59e5813e9963c3cbcb8239c7387206
3
+ metadata.gz: 05b48c959a72f6c09600fc229b86f0587fe2e308d407ebbe7a3d2444d77ce4b6
4
+ data.tar.gz: ec85019892569d684769e03bedd955c668fec081214e8514427ae1d20d2e3cac
5
5
  SHA512:
6
- metadata.gz: 3c929cdfcbf4282ac045f1906f57d4d289de04834ce74eaec64664148aa2c2ef1813c9ce225432d88e31989c1d1e1d0456a4485babc9608dd2446b44c97eb837
7
- data.tar.gz: 6945a43c3cda7831f926755d25ae0711a5cbe709b7de819f41b30ce6db3f4dca667106bb7b627a02146a2460d62359b5ba7d876e31e9213fad5440b3dcebb2fd
6
+ metadata.gz: cc9a21273636b54d13930fa08afa013f4d4797856ffb54834e8db61361d2338e0566d6c66523574fb3be687f023b324eb1743d3e207edeb9683e2a2726676788
7
+ data.tar.gz: ca935beea58e18ebf286292958f9abcf9ce2872f4792d30ee132505980e4edd128a9cfde5c52534ba4b42537906f018adfec0ead0be34b6ccc10ba8e1c1adf25
data/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ # 3.6.3 / 2025-01-16
2
+
3
+ ## Enhancements:
4
+
5
+ * Add credentials file path to `gem env`. Pull request
6
+ [#8375](https://github.com/rubygems/rubygems/pull/8375) by duckinator
7
+ * Update SPDX license list as of 2024-12-30. Pull request
8
+ [#8387](https://github.com/rubygems/rubygems/pull/8387) by
9
+ github-actions[bot]
10
+ * Installs bundler 2.6.3 as a default gem.
11
+
12
+ ## Bug fixes:
13
+
14
+ * Fix `@licenses` array unmarshalling. Pull request
15
+ [#8411](https://github.com/rubygems/rubygems/pull/8411) by rykov
16
+
1
17
  # 3.6.2 / 2024-12-23
2
18
 
3
19
  ## Security:
data/bundler/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ # 2.6.3 (January 16, 2025)
2
+
3
+ ## Enhancements:
4
+
5
+ - Don't fallback to evaluating YAML gemspecs as Ruby code [#8404](https://github.com/rubygems/rubygems/pull/8404)
6
+ - Print message when blocking on file locks [#8299](https://github.com/rubygems/rubygems/pull/8299)
7
+ - Add support for mise version manager file [#8356](https://github.com/rubygems/rubygems/pull/8356)
8
+ - Add Ruby 3.5 to Gemfile DSL platform values [#8365](https://github.com/rubygems/rubygems/pull/8365)
9
+
10
+ ## Bug fixes:
11
+
12
+ - Revert RubyGems plugins getting loaded on `Bundler.require` [#8410](https://github.com/rubygems/rubygems/pull/8410)
13
+ - Fix platform specific gems sometimes being removed from the lockfile [#8401](https://github.com/rubygems/rubygems/pull/8401)
14
+ - Serialize gemspec when caching git source [#8403](https://github.com/rubygems/rubygems/pull/8403)
15
+ - Fix crash on read-only filesystems in Ruby 3.4 [#8372](https://github.com/rubygems/rubygems/pull/8372)
16
+ - Fix `bundle outdated <GEM>` failing if not all gems are installed [#8361](https://github.com/rubygems/rubygems/pull/8361)
17
+ - Fix `bundle install` crash on Windows [#8362](https://github.com/rubygems/rubygems/pull/8362)
18
+
19
+ ## Documentation:
20
+
21
+ - Fix broken links in the documents [#8389](https://github.com/rubygems/rubygems/pull/8389)
22
+
1
23
  # 2.6.2 (December 23, 2024)
2
24
 
3
25
  ## Bug fixes:
data/bundler/README.md CHANGED
@@ -29,7 +29,7 @@ See [bundler.io](https://bundler.io) for the full documentation.
29
29
 
30
30
  ### Troubleshooting
31
31
 
32
- For help with common problems, see [TROUBLESHOOTING](doc/TROUBLESHOOTING.md).
32
+ For help with common problems, see [TROUBLESHOOTING](../doc/bundler/TROUBLESHOOTING.md).
33
33
 
34
34
  Still stuck? Try [filing an issue](https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md).
35
35
 
@@ -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 = "2024-12-23".freeze
8
- @git_commit_sha = "90ebd47c740".freeze
7
+ @built_at = "2025-01-16".freeze
8
+ @git_commit_sha = "3c7c4ff2d8f".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -26,13 +26,15 @@ module Bundler
26
26
  def run
27
27
  check_for_deployment_mode!
28
28
 
29
- gems.each do |gem_name|
30
- Bundler::CLI::Common.select_spec(gem_name)
31
- end
32
-
33
29
  Bundler.definition.validate_runtime!
34
30
  current_specs = Bundler.ui.silence { Bundler.definition.resolve }
35
31
 
32
+ gems.each do |gem_name|
33
+ if current_specs[gem_name].empty?
34
+ raise GemNotFound, "Could not find gem '#{gem_name}'."
35
+ end
36
+ end
37
+
36
38
  current_dependencies = Bundler.ui.silence do
37
39
  Bundler.load.dependencies.map {|dep| [dep.name, dep] }.to_h
38
40
  end
@@ -742,7 +742,7 @@ module Bundler
742
742
 
743
743
  @platforms = result.add_extra_platforms!(platforms) if should_add_extra_platforms?
744
744
 
745
- SpecSet.new(result.for(dependencies, @platforms))
745
+ SpecSet.new(result.for(dependencies, @platforms | [Gem::Platform::RUBY]))
746
746
  end
747
747
 
748
748
  def precompute_source_requirements_for_indirect_dependencies?
@@ -1108,7 +1108,7 @@ module Bundler
1108
1108
  return resolution_packages if @explicit_unlocks.empty?
1109
1109
  full_update = dup_for_full_unlock.resolve
1110
1110
  @explicit_unlocks.each do |name|
1111
- version = full_update[name].first&.version
1111
+ version = full_update.version_for(name)
1112
1112
  resolution_packages.base_requirements[name] = Gem::Requirement.new("= #{version}") if version
1113
1113
  end
1114
1114
  resolution_packages
@@ -9,7 +9,7 @@ module Bundler
9
9
  attr_reader :autorequire
10
10
  attr_reader :groups, :platforms, :gemfile, :path, :git, :github, :branch, :ref, :glob
11
11
 
12
- ALL_RUBY_VERSIONS = (18..27).to_a.concat((30..34).to_a).freeze
12
+ ALL_RUBY_VERSIONS = (18..27).to_a.concat((30..35).to_a).freeze
13
13
  PLATFORM_MAP = {
14
14
  ruby: [Gem::Platform::RUBY, ALL_RUBY_VERSIONS],
15
15
  mri: [Gem::Platform::RUBY, ALL_RUBY_VERSIONS],
@@ -25,7 +25,7 @@ module Bundler
25
25
  end
26
26
  private_class_method :settings_method
27
27
 
28
- (1..10).each {|v| define_method("bundler_#{v}_mode?") { major_version >= v } }
28
+ (1..10).each {|v| define_method("bundler_#{v}_mode?") { @major_version >= v } }
29
29
 
30
30
  settings_flag(:allow_offline_install) { bundler_3_mode? }
31
31
  settings_flag(:auto_clean_without_path) { bundler_3_mode? }
@@ -44,11 +44,7 @@ module Bundler
44
44
 
45
45
  def initialize(bundler_version)
46
46
  @bundler_version = Gem::Version.create(bundler_version)
47
+ @major_version = @bundler_version.segments.first
47
48
  end
48
-
49
- def major_version
50
- @bundler_version.segments.first
51
- end
52
- private :major_version
53
49
  end
54
50
  end
@@ -79,7 +79,7 @@ module Bundler
79
79
 
80
80
  if @definition.setup_domain!(options)
81
81
  ensure_specs_are_compatible!
82
- Bundler.load_plugins(@definition)
82
+ load_plugins
83
83
  end
84
84
  install(options)
85
85
 
@@ -209,6 +209,20 @@ module Bundler
209
209
  Bundler.settings.processor_count
210
210
  end
211
211
 
212
+ def load_plugins
213
+ Gem.load_plugins
214
+
215
+ requested_path_gems = @definition.requested_specs.select {|s| s.source.is_a?(Source::Path) }
216
+ path_plugin_files = requested_path_gems.flat_map do |spec|
217
+ spec.matches_for_glob("rubygems_plugin#{Bundler.rubygems.suffix_pattern}")
218
+ rescue TypeError
219
+ error_message = "#{spec.name} #{spec.version} has an invalid gemspec"
220
+ raise Gem::InvalidSpecificationException, error_message
221
+ end
222
+ Gem.load_plugin_files(path_plugin_files)
223
+ Gem.load_env_plugins
224
+ end
225
+
212
226
  def ensure_specs_are_compatible!
213
227
  @definition.specs.each do |spec|
214
228
  unless spec.matches_current_ruby?
@@ -1,6 +1,6 @@
1
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-ADD" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-ADD" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-BINSTUBS" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-BINSTUBS" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CACHE" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-CACHE" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CHECK" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-CHECK" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CLEAN" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-CLEAN" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CONFIG" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-CONFIG" "1" "January 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-config\fR \- Set bundler configuration options
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CONSOLE" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-CONSOLE" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-DOCTOR" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-DOCTOR" "1" "January 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-doctor\fR \- Checks the bundle for common problems
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-ENV" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-ENV" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-EXEC" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-EXEC" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-FUND" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-FUND" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-GEM" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-GEM" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-HELP" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-HELP" "1" "January 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-help\fR \- Displays detailed help for each subcommand
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-INFO" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-INFO" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-INIT" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-INIT" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-INJECT" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-INJECT" "1" "January 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-INSTALL" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-INSTALL" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-ISSUE" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-ISSUE" "1" "January 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-issue\fR \- Get help reporting Bundler issues
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-LICENSES" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-LICENSES" "1" "January 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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-LIST" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-LIST" "1" "January 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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-LOCK" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-LOCK" "1" "January 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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-OPEN" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-OPEN" "1" "January 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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-OUTDATED" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-OUTDATED" "1" "January 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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-PLATFORM" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-PLATFORM" "1" "January 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-platform\fR \- Displays platform compatibility information
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-PLUGIN" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-PLUGIN" "1" "January 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-plugin\fR \- Manage Bundler plugins
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-PRISTINE" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-PRISTINE" "1" "January 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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-REMOVE" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-REMOVE" "1" "January 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-remove\fR \- Removes gems from the Gemfile
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-SHOW" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-SHOW" "1" "January 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,6 +1,6 @@
1
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-UPDATE" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-UPDATE" "1" "January 2025" ""
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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-VERSION" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-VERSION" "1" "January 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-version\fR \- Prints Bundler version information
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-VIZ" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-VIZ" "1" "January 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
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE" "1" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE" "1" "January 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\fR \- Ruby Dependency Management
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
- .\" generated with nRonn/v0.11.1
2
- .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "GEMFILE" "5" "December 2024" ""
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "GEMFILE" "5" "January 2025" ""
4
4
  .SH "NAME"
5
5
  \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
6
6
  .SH "SYNOPSIS"
@@ -34,6 +34,10 @@ module Bundler
34
34
  rescue GenericSystemCallError
35
35
  # no need to fail when on a read-only FS, for example
36
36
  nil
37
+ rescue ArgumentError => e
38
+ # ruby 3.4 checks writability in Dir.tmpdir
39
+ raise unless e.message&.include?("could not find a temporary directory")
40
+ nil
37
41
  end
38
42
  load_index(local_index_file) if SharedHelpers.in_bundle?
39
43
  end
@@ -5,10 +5,11 @@ require_relative "package"
5
5
  module Bundler
6
6
  class Resolver
7
7
  class Base
8
- attr_reader :packages, :requirements, :source_requirements
8
+ attr_reader :packages, :requirements, :source_requirements, :locked_specs
9
9
 
10
10
  def initialize(source_requirements, dependencies, base, platforms, options)
11
11
  @source_requirements = source_requirements
12
+ @locked_specs = options[:locked_specs]
12
13
 
13
14
  @base = base
14
15
 
@@ -18,7 +18,7 @@ module Bundler
18
18
  def initialize(name, platforms, locked_specs:, unlock:, prerelease: false, prefer_local: false, dependency: nil)
19
19
  @name = name
20
20
  @platforms = platforms
21
- @locked_version = locked_specs[name].first&.version
21
+ @locked_version = locked_specs.version_for(name)
22
22
  @unlock = unlock
23
23
  @dependency = dependency || Dependency.new(name, @locked_version)
24
24
  @top_level = !dependency.nil?
@@ -80,7 +80,8 @@ module Bundler
80
80
  def solve_versions(root:, logger:)
81
81
  solver = PubGrub::VersionSolver.new(source: self, root: root, logger: logger)
82
82
  result = solver.solve
83
- result.flat_map {|package, version| version.to_specs(package, @most_specific_locked_platform) }
83
+ resolved_specs = result.flat_map {|package, version| version.to_specs(package, @most_specific_locked_platform) }
84
+ SpecSet.new(resolved_specs).specs_with_additional_variants_from(@base.locked_specs)
84
85
  rescue PubGrub::SolveFailure => e
85
86
  incompatibility = e.incompatibility
86
87
 
@@ -42,9 +42,18 @@ module Bundler
42
42
  # Loads the file relative to the dirname of the Gemfile itself.
43
43
  def normalize_ruby_file(filename)
44
44
  file_content = Bundler.read_file(gemfile.dirname.join(filename))
45
- # match "ruby-3.2.2" or "ruby 3.2.2" capturing version string up to the first space or comment
46
- if /^ruby(-|\s+)([^\s#]+)/.match(file_content)
47
- $2
45
+ # match "ruby-3.2.2", ruby = "3.2.2" or "ruby 3.2.2" capturing version string up to the first space or comment
46
+ if /^ # Start of line
47
+ ruby # Literal "ruby"
48
+ [\s-]* # Optional whitespace or hyphens (for "ruby-3.2.2" format)
49
+ (?:=\s*)? # Optional equals sign with whitespace (for ruby = "3.2.2" format)
50
+ "? # Optional opening quote
51
+ ( # Start capturing group
52
+ [^\s#"]+ # One or more chars that aren't spaces, #, or quotes
53
+ ) # End capturing group
54
+ "? # Optional closing quote
55
+ /x.match(file_content)
56
+ $1
48
57
  else
49
58
  file_content.strip
50
59
  end
@@ -134,18 +134,6 @@ module Bundler
134
134
  loaded_gem_paths.flatten
135
135
  end
136
136
 
137
- def load_plugins
138
- Gem.load_plugins
139
- end
140
-
141
- def load_plugin_files(plugin_files)
142
- Gem.load_plugin_files(plugin_files)
143
- end
144
-
145
- def load_env_plugins
146
- Gem.load_env_plugins
147
- end
148
-
149
137
  def ui=(obj)
150
138
  Gem::DefaultUserInteraction.ui = obj
151
139
  end
@@ -282,6 +282,7 @@ module Bundler
282
282
  FileUtils.rm_rf(app_cache_path)
283
283
  git_proxy.checkout if migrate || requires_checkout?
284
284
  git_proxy.copy_to(app_cache_path, @submodules)
285
+ serialize_gemspecs_in(app_cache_path)
285
286
  end
286
287
 
287
288
  def checkout
@@ -133,8 +133,8 @@ module Bundler
133
133
  validation_set.incomplete_specs.any?
134
134
  end
135
135
 
136
- def missing_specs_for(dependencies)
137
- materialize_dependencies(dependencies)
136
+ def missing_specs_for(deps)
137
+ materialize_dependencies(deps)
138
138
 
139
139
  missing_specs
140
140
  end
@@ -163,12 +163,20 @@ module Bundler
163
163
  @specs.detect {|spec| spec.name == name && spec.match_platform(platform) }
164
164
  end
165
165
 
166
+ def specs_with_additional_variants_from(other)
167
+ sorted | additional_variants_from(other)
168
+ end
169
+
166
170
  def delete_by_name(name)
167
171
  @specs.reject! {|spec| spec.name == name }
168
172
 
169
173
  reset!
170
174
  end
171
175
 
176
+ def version_for(name)
177
+ self[name].first&.version
178
+ end
179
+
172
180
  def what_required(spec)
173
181
  unless req = find {|s| s.runtime_dependencies.any? {|d| d.name == spec.name } }
174
182
  return [spec]
@@ -273,6 +281,12 @@ module Bundler
273
281
  @specs.flat_map {|spec| spec.source.specs.search([spec.name, spec.version]).map(&:platform) }.uniq
274
282
  end
275
283
 
284
+ def additional_variants_from(other)
285
+ other.select do |spec|
286
+ version_for(spec.name) == spec.version && valid_dependencies?(spec)
287
+ end
288
+ end
289
+
276
290
  def valid_dependencies?(s)
277
291
  validate_deps(s) == :valid
278
292
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.6.2".freeze
4
+ VERSION = "2.6.3".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
@@ -212,7 +212,6 @@ module Bundler
212
212
  # Bundler.require(:test) # requires second_gem
213
213
  #
214
214
  def require(*groups)
215
- load_plugins
216
215
  setup(*groups).require(*groups)
217
216
  end
218
217
 
@@ -548,15 +547,7 @@ module Bundler
548
547
  def load_gemspec_uncached(file, validate = false)
549
548
  path = Pathname.new(file)
550
549
  contents = read_file(file)
551
- spec = if contents.start_with?("---") # YAML header
552
- eval_yaml_gemspec(path, contents)
553
- else
554
- # Eval the gemspec from its parent directory, because some gemspecs
555
- # depend on "./" relative paths.
556
- SharedHelpers.chdir(path.dirname.to_s) do
557
- eval_gemspec(path, contents)
558
- end
559
- end
550
+ spec = eval_gemspec(path, contents)
560
551
  return unless spec
561
552
  spec.loaded_from = path.expand_path.to_s
562
553
  Bundler.rubygems.validate(spec) if validate
@@ -576,23 +567,6 @@ module Bundler
576
567
  @feature_flag ||= FeatureFlag.new(VERSION)
577
568
  end
578
569
 
579
- def load_plugins(definition = Bundler.definition)
580
- return if defined?(@load_plugins_ran)
581
-
582
- Bundler.rubygems.load_plugins
583
-
584
- requested_path_gems = definition.requested_specs.select {|s| s.source.is_a?(Source::Path) }
585
- path_plugin_files = requested_path_gems.flat_map do |spec|
586
- spec.matches_for_glob("rubygems_plugin#{Bundler.rubygems.suffix_pattern}")
587
- rescue TypeError
588
- error_message = "#{spec.name} #{spec.version} has an invalid gemspec"
589
- raise Gem::InvalidSpecificationException, error_message
590
- end
591
- Bundler.rubygems.load_plugin_files(path_plugin_files)
592
- Bundler.rubygems.load_env_plugins
593
- @load_plugins_ran = true
594
- end
595
-
596
570
  def reset!
597
571
  reset_paths!
598
572
  Plugin.reset!
@@ -675,12 +649,18 @@ module Bundler
675
649
  Kernel.require "psych"
676
650
 
677
651
  Gem::Specification.from_yaml(contents)
678
- rescue ::Psych::SyntaxError, ArgumentError, Gem::EndOfYAMLException, Gem::Exception
679
- eval_gemspec(path, contents)
680
652
  end
681
653
 
682
654
  def eval_gemspec(path, contents)
683
- eval(contents, TOPLEVEL_BINDING.dup, path.expand_path.to_s)
655
+ if contents.start_with?("---") # YAML header
656
+ eval_yaml_gemspec(path, contents)
657
+ else
658
+ # Eval the gemspec from its parent directory, because some gemspecs
659
+ # depend on "./" relative paths.
660
+ SharedHelpers.chdir(path.dirname.to_s) do
661
+ eval(contents, TOPLEVEL_BINDING.dup, path.expand_path.to_s)
662
+ end
663
+ end
684
664
  rescue ScriptError, StandardError => e
685
665
  msg = "There was an error while loading `#{path.basename}`: #{e.message}"
686
666
 
@@ -95,7 +95,7 @@ the version in all version files, synchronizes both changelogs to include all
95
95
  backported changes and commits that change on top of the cherry-picks.
96
96
 
97
97
  Note that this task requires all user facing pull requests to be tagged with
98
- specific labels. See [Merging a PR](/bundler/doc/playbooks/MERGING_A_PR.md) for details.
98
+ specific labels. See [Merging a PR](../bundler/playbooks/MERGING_A_PR.md) for details.
99
99
 
100
100
  Also note that when this task cherry-picks, it cherry-picks the merge commits
101
101
  using the following command:
@@ -15,6 +15,7 @@ class Gem::Commands::EnvironmentCommand < Gem::Command
15
15
  version display the gem format version
16
16
  remotesources display the remote gem servers
17
17
  platform display the supported gem platforms
18
+ credentials display the path where credentials are stored
18
19
  <omitted> display everything
19
20
  EOF
20
21
  args.gsub(/^\s+/, "")
@@ -88,6 +89,8 @@ lib/rubygems/defaults/operating_system.rb
88
89
  Gem.sources.to_a.join("\n")
89
90
  when /^platform/ then
90
91
  Gem.platforms.join(File::PATH_SEPARATOR)
92
+ when /^credentials/, /^creds/ then
93
+ Gem.configuration.credentials_path
91
94
  when nil then
92
95
  show_environment
93
96
  else
@@ -114,6 +117,8 @@ lib/rubygems/defaults/operating_system.rb
114
117
 
115
118
  out << " - USER INSTALLATION DIRECTORY: #{Gem.user_dir}\n"
116
119
 
120
+ out << " - CREDENTIALS FILE: #{Gem.configuration.credentials_path}\n"
121
+
117
122
  out << " - RUBYGEMS PREFIX: #{Gem.prefix}\n" unless Gem.prefix.nil?
118
123
 
119
124
  out << " - RUBY EXECUTABLE: #{Gem.ruby}\n"
@@ -1322,7 +1322,7 @@ class Gem::Specification < Gem::BasicSpecification
1322
1322
  spec.instance_variable_set :@description, array[13]
1323
1323
  spec.instance_variable_set :@homepage, array[14]
1324
1324
  spec.instance_variable_set :@has_rdoc, array[15]
1325
- spec.instance_variable_set :@licenses, [array[17]]
1325
+ spec.instance_variable_set :@licenses, array[17]
1326
1326
  spec.instance_variable_set :@metadata, array[18]
1327
1327
  spec.instance_variable_set :@loaded, false
1328
1328
  spec.instance_variable_set :@activated, false
@@ -104,6 +104,7 @@ class Gem::Licenses
104
104
  Bitstream-Vera
105
105
  BlueOak-1.0.0
106
106
  Boehm-GC
107
+ Boehm-GC-without-fee
107
108
  Borceux
108
109
  Brian-Gladman-2-Clause
109
110
  Brian-Gladman-3-Clause
@@ -163,6 +164,8 @@ class Gem::Licenses
163
164
  CC-BY-SA-3.0-IGO
164
165
  CC-BY-SA-4.0
165
166
  CC-PDDC
167
+ CC-PDM-1.0
168
+ CC-SA-1.0
166
169
  CC0-1.0
167
170
  CDDL-1.0
168
171
  CDDL-1.1
@@ -213,6 +216,7 @@ class Gem::Licenses
213
216
  DRL-1.1
214
217
  DSDP
215
218
  DocBook-Schema
219
+ DocBook-Stylesheet
216
220
  DocBook-XML
217
221
  Dotseqn
218
222
  ECL-1.0
@@ -320,6 +324,7 @@ class Gem::Licenses
320
324
  Imlib2
321
325
  Info-ZIP
322
326
  Inner-Net-2.0
327
+ InnoSetup
323
328
  Intel
324
329
  Intel-ACPI
325
330
  Interbase-1.0
@@ -364,9 +369,11 @@ class Gem::Licenses
364
369
  Linux-man-pages-copyleft-2-para
365
370
  Linux-man-pages-copyleft-var
366
371
  Lucida-Bitmap-Fonts
372
+ MIPS
367
373
  MIT
368
374
  MIT-0
369
375
  MIT-CMU
376
+ MIT-Click
370
377
  MIT-Festival
371
378
  MIT-Khronos-old
372
379
  MIT-Modern-Variant
@@ -517,6 +524,7 @@ class Gem::Licenses
517
524
  SISSL
518
525
  SISSL-1.2
519
526
  SL
527
+ SMAIL-GPL
520
528
  SMLNJ
521
529
  SMPPL
522
530
  SNIA
@@ -530,6 +538,7 @@ class Gem::Licenses
530
538
  SchemeReport
531
539
  Sendmail
532
540
  Sendmail-8.23
541
+ Sendmail-Open-Source-1.1
533
542
  SimPL-2.0
534
543
  Sleepycat
535
544
  Soundex
@@ -555,6 +564,8 @@ class Gem::Licenses
555
564
  TU-Berlin-1.0
556
565
  TU-Berlin-2.0
557
566
  TermReadKey
567
+ ThirdEye
568
+ TrustedQSL
558
569
  UCAR
559
570
  UCL-1.0
560
571
  UMich-Merit
@@ -598,6 +609,7 @@ class Gem::Licenses
598
609
  Zimbra-1.4
599
610
  Zlib
600
611
  any-OSI
612
+ any-OSI-perl-modules
601
613
  bcrypt-Solar-Designer
602
614
  blessing
603
615
  bzip2-1.0.6
@@ -614,6 +626,7 @@ class Gem::Licenses
614
626
  etalab-2.0
615
627
  fwlw
616
628
  gSOAP-1.3b
629
+ generic-xts
617
630
  gnuplot
618
631
  gtkbook
619
632
  hdparm
@@ -642,6 +655,7 @@ class Gem::Licenses
642
655
  threeparttable
643
656
  ulem
644
657
  w3m
658
+ wwl
645
659
  xinetd
646
660
  xkeyboard-config-Zinoviev
647
661
  xlock
@@ -698,6 +712,7 @@ class Gem::Licenses
698
712
  Bison-exception-1.24
699
713
  Bison-exception-2.2
700
714
  Bootloader-exception
715
+ CGAL-linking-exception
701
716
  CLISP-exception-2.0
702
717
  Classpath-exception-2.0
703
718
  DigiRule-FOSS-exception
@@ -710,6 +725,7 @@ class Gem::Licenses
710
725
  GNAT-exception
711
726
  GNOME-examples-exception
712
727
  GNU-compiler-exception
728
+ GPL-3.0-389-ds-base-exception
713
729
  GPL-3.0-interface-exception
714
730
  GPL-3.0-linking-exception
715
731
  GPL-3.0-linking-source-exception
@@ -717,6 +733,7 @@ class Gem::Licenses
717
733
  GStreamer-exception-2005
718
734
  GStreamer-exception-2008
719
735
  Gmsh-exception
736
+ Independent-modules-exception
720
737
  KiCad-libraries-exception
721
738
  LGPL-3.0-linking-exception
722
739
  LLGPL
@@ -749,9 +766,11 @@ class Gem::Licenses
749
766
  fmt-exception
750
767
  freertos-exception-2.0
751
768
  gnu-javamail-exception
769
+ harbour-exception
752
770
  i2p-gpl-java-exception
753
771
  libpri-OpenH323-exception
754
772
  mif-exception
773
+ mxml-exception
755
774
  openvpn-openssl-exception
756
775
  romic-exception
757
776
  stunnel-exception
data/lib/rubygems.rb CHANGED
@@ -9,7 +9,7 @@
9
9
  require "rbconfig"
10
10
 
11
11
  module Gem
12
- VERSION = "3.6.2"
12
+ VERSION = "3.6.3"
13
13
  end
14
14
 
15
15
  # Must be first since it unloads the prelude from 1.9.2
@@ -815,7 +815,14 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
815
815
 
816
816
  File.open(path, mode) do |io|
817
817
  begin
818
- io.flock(File::LOCK_EX)
818
+ # Try to get a lock without blocking.
819
+ # If we do, the file is locked.
820
+ # Otherwise, explain why we're waiting and get a lock, but block this time.
821
+ if io.flock(File::LOCK_EX | File::LOCK_NB) != 0
822
+ warn "Waiting for another process to let go of lock: #{path}"
823
+ io.flock(File::LOCK_EX)
824
+ end
825
+ io.puts(Process.pid)
819
826
  rescue Errno::ENOSYS, Errno::ENOTSUP
820
827
  end
821
828
  yield io
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "rubygems-update"
5
- s.version = "3.6.2"
5
+ s.version = "3.6.3"
6
6
  s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
7
  s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
8
 
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: 3.6.2
4
+ version: 3.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -15,7 +15,7 @@ authors:
15
15
  - Hiroshi SHIBATA
16
16
  bindir: exe
17
17
  cert_chain: []
18
- date: 2024-12-23 00:00:00.000000000 Z
18
+ date: 2025-01-16 00:00:00.000000000 Z
19
19
  dependencies: []
20
20
  description: |-
21
21
  A package (also known as a library) contains a set of functionality
@@ -746,7 +746,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
746
746
  - !ruby/object:Gem::Version
747
747
  version: '0'
748
748
  requirements: []
749
- rubygems_version: 3.6.2
749
+ rubygems_version: 3.6.3
750
750
  specification_version: 4
751
751
  summary: RubyGems is a package management framework for Ruby. This gem is downloaded
752
752
  and installed by `gem update --system`, so that the `gem` CLI can update itself.