bundler 2.4.6 → 2.4.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/lib/bundler/build_metadata.rb +2 -2
  4. data/lib/bundler/cli/init.rb +2 -2
  5. data/lib/bundler/cli.rb +1 -0
  6. data/lib/bundler/current_ruby.rb +2 -0
  7. data/lib/bundler/dependency.rb +1 -1
  8. data/lib/bundler/installer/parallel_installer.rb +16 -2
  9. data/lib/bundler/installer/standalone.rb +1 -1
  10. data/lib/bundler/man/bundle-add.1 +1 -1
  11. data/lib/bundler/man/bundle-binstubs.1 +1 -1
  12. data/lib/bundler/man/bundle-cache.1 +1 -1
  13. data/lib/bundler/man/bundle-check.1 +1 -1
  14. data/lib/bundler/man/bundle-clean.1 +1 -1
  15. data/lib/bundler/man/bundle-config.1 +1 -1
  16. data/lib/bundler/man/bundle-console.1 +1 -1
  17. data/lib/bundler/man/bundle-doctor.1 +1 -1
  18. data/lib/bundler/man/bundle-exec.1 +1 -1
  19. data/lib/bundler/man/bundle-gem.1 +1 -1
  20. data/lib/bundler/man/bundle-help.1 +1 -1
  21. data/lib/bundler/man/bundle-info.1 +1 -1
  22. data/lib/bundler/man/bundle-init.1 +5 -1
  23. data/lib/bundler/man/bundle-init.1.ronn +2 -0
  24. data/lib/bundler/man/bundle-inject.1 +1 -1
  25. data/lib/bundler/man/bundle-install.1 +1 -1
  26. data/lib/bundler/man/bundle-list.1 +1 -1
  27. data/lib/bundler/man/bundle-lock.1 +1 -1
  28. data/lib/bundler/man/bundle-open.1 +1 -1
  29. data/lib/bundler/man/bundle-outdated.1 +1 -1
  30. data/lib/bundler/man/bundle-platform.1 +1 -1
  31. data/lib/bundler/man/bundle-plugin.1 +1 -1
  32. data/lib/bundler/man/bundle-pristine.1 +1 -1
  33. data/lib/bundler/man/bundle-remove.1 +1 -1
  34. data/lib/bundler/man/bundle-show.1 +1 -1
  35. data/lib/bundler/man/bundle-update.1 +1 -1
  36. data/lib/bundler/man/bundle-version.1 +1 -1
  37. data/lib/bundler/man/bundle-viz.1 +1 -1
  38. data/lib/bundler/man/bundle.1 +1 -1
  39. data/lib/bundler/man/gemfile.5 +1 -1
  40. data/lib/bundler/source/git/git_proxy.rb +6 -4
  41. data/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
  42. data/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +6 -2
  43. data/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +8 -1
  44. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +5 -4
  45. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +4 -2
  46. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +4 -1
  47. data/lib/bundler/version.rb +1 -1
  48. metadata +3 -4
  49. data/lib/bundler/templates/gems.rb +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: faefef03f59dac0ba23f22a7c1a95acbb584930132acf4c5a1f8533030a77906
4
- data.tar.gz: 51e844daae34fa0bd18652c5c3d45c8bad50da0ae4905107b5fc2f56e9dbd0cb
3
+ metadata.gz: a65f84ced002f9c1ab71db372d85d37f9578c02a5dc1e454ca62c895e7a4d247
4
+ data.tar.gz: f5e1e1f51f2eaa82029c2129a4c703c75a6e8950370be93cc7bd802d89155bda
5
5
  SHA512:
6
- metadata.gz: e0252ec1cd2c474804872e1907eb6579c9e23c55ef9127197c201d078f5e80e91030d546dda86a9bca450a49304603b10b290f4245f6ab933c3e81326ffa8f6d
7
- data.tar.gz: 68d4b915a405c462d21cc4c5db17b4a544f8b838f9ab20b9985d7a2dbe72dba83c1eeb33d84d23f31f4ae98914291d005a1ed86181d41489228ac42bee96e20b
6
+ metadata.gz: 458454313b85996243c7c77ba6ad6fba40ec2185bf657def24c8bce61595c2bd86f973f465dfcebec1ef01130c5c784dc820710437f62de9701bb6317236b3fb
7
+ data.tar.gz: e35d6b4c930214928c4480df520ef5b342107d1d25da2dbc9596591eab94e115b53c2c4432ff5513630f3d60d18c8935b415bdb2b2bbd60e40d04228b8e2d292
data/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ # 2.4.7 (February 15, 2023)
2
+
3
+ ## Enhancements:
4
+
5
+ - Add `--gemfile` flag to `bundle init` to configure gemfile name to generate [#6046](https://github.com/rubygems/rubygems/pull/6046)
6
+ - Improve solve failure explanations by using better wording [#6366](https://github.com/rubygems/rubygems/pull/6366)
7
+ - Restore better error message when locked ref does not exist [#6356](https://github.com/rubygems/rubygems/pull/6356)
8
+ - Avoid crashing when installing from a corrupted lockfile [#6355](https://github.com/rubygems/rubygems/pull/6355)
9
+ - Improve wording of unmet dependencies warning [#6357](https://github.com/rubygems/rubygems/pull/6357)
10
+ - Add Ruby 3.2 and 3.3 platforms to Gemfile DSL [#6346](https://github.com/rubygems/rubygems/pull/6346)
11
+
12
+ ## Bug fixes:
13
+
14
+ - Fix crash in pub grub involving empty ranges [#6365](https://github.com/rubygems/rubygems/pull/6365)
15
+ - Make gemspec file generated by `bundle gem` properly exclude itself from packaged gem [#6339](https://github.com/rubygems/rubygems/pull/6339)
16
+ - Preserve relative path sources in standalone setup [#6327](https://github.com/rubygems/rubygems/pull/6327)
17
+
1
18
  # 2.4.6 (January 31, 2023)
2
19
 
3
20
  ## 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 = "2023-01-31".freeze
8
- @git_commit_sha = "598c04d54a".freeze
7
+ @built_at = "2023-02-15".freeze
8
+ @git_commit_sha = "5d717a27e0".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -32,7 +32,7 @@ module Bundler
32
32
  file << spec.to_gemfile
33
33
  end
34
34
  else
35
- File.open(File.expand_path("../templates/#{gemfile}", __dir__), "r") do |template|
35
+ File.open(File.expand_path("../templates/Gemfile", __dir__), "r") do |template|
36
36
  File.open(gemfile, "wb") do |destination|
37
37
  IO.copy_stream(template, destination)
38
38
  end
@@ -45,7 +45,7 @@ module Bundler
45
45
  private
46
46
 
47
47
  def gemfile
48
- @gemfile ||= Bundler.preferred_gemfile_name
48
+ @gemfile ||= options[:gemfile] || Bundler.preferred_gemfile_name
49
49
  end
50
50
  end
51
51
  end
data/lib/bundler/cli.rb CHANGED
@@ -156,6 +156,7 @@ module Bundler
156
156
  dependency listed in the gemspec file to the newly created Gemfile.
157
157
  D
158
158
  method_option "gemspec", :type => :string, :banner => "Use the specified .gemspec to create the Gemfile"
159
+ method_option "gemfile", :type => :string, :banner => "Use the specified name for the gemfile instead of 'Gemfile'"
159
160
  def init
160
161
  require_relative "cli/init"
161
162
  Init.new(options.dup).run
@@ -22,6 +22,8 @@ module Bundler
22
22
  2.7
23
23
  3.0
24
24
  3.1
25
+ 3.2
26
+ 3.3
25
27
  ].freeze
26
28
 
27
29
  KNOWN_MAJOR_VERSIONS = KNOWN_MINOR_VERSIONS.map {|v| v.split(".", 2).first }.uniq.freeze
@@ -9,7 +9,7 @@ module Bundler
9
9
  attr_reader :autorequire
10
10
  attr_reader :groups, :platforms, :gemfile, :path, :git, :github, :branch, :ref
11
11
 
12
- ALL_RUBY_VERSIONS = ((18..27).to_a + (30..31).to_a).freeze
12
+ ALL_RUBY_VERSIONS = ((18..27).to_a + (30..33).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],
@@ -47,6 +47,13 @@ module Bundler
47
47
  dependencies.all? {|d| installed_specs.include? d.name }
48
48
  end
49
49
 
50
+ # Check whether spec's dependencies are missing, which can indicate a
51
+ # corrupted lockfile
52
+ def dependencies_missing?(all_specs)
53
+ spec_names = all_specs.map(&:name)
54
+ dependencies.any? {|d| !spec_names.include? d.name }
55
+ end
56
+
50
57
  # Represents only the non-development dependencies, the ones that are
51
58
  # itself and are in the total list.
52
59
  def dependencies
@@ -110,12 +117,17 @@ module Bundler
110
117
 
111
118
  warning = []
112
119
  warning << "Your lockfile doesn't include a valid resolution."
113
- warning << "You can fix this by regenerating your lockfile or trying to manually editing the bad locked gems to a version that satisfies all dependencies."
120
+ warning << "You can fix this by regenerating your lockfile or manually editing the bad locked gems to a version that satisfies all dependencies."
114
121
  warning << "The unmet dependencies are:"
115
122
 
116
123
  unmet_dependencies.each do |spec, unmet_spec_dependencies|
117
124
  unmet_spec_dependencies.each do |unmet_spec_dependency|
118
- warning << "* #{unmet_spec_dependency}, depended upon #{spec.full_name}, unsatisfied by #{@specs.find {|s| s.name == unmet_spec_dependency.name && !unmet_spec_dependency.matches_spec?(s.spec) }.full_name}"
125
+ found = @specs.find {|s| s.name == unmet_spec_dependency.name && !unmet_spec_dependency.matches_spec?(s.spec) }
126
+ if found
127
+ warning << "* #{unmet_spec_dependency}, dependency of #{spec.full_name}, unsatisfied by #{found.full_name}"
128
+ else
129
+ warning << "* #{unmet_spec_dependency}, dependency of #{spec.full_name} but missing from lockfile"
130
+ end
119
131
  end
120
132
  end
121
133
 
@@ -212,6 +224,8 @@ module Bundler
212
224
  if spec.dependencies_installed? @specs
213
225
  spec.state = :enqueued
214
226
  worker_pool.enq spec
227
+ elsif spec.dependencies_missing? @specs
228
+ spec.state = :failed
215
229
  end
216
230
  end
217
231
  end
@@ -52,7 +52,7 @@ module Bundler
52
52
 
53
53
  def gem_path(path, spec)
54
54
  full_path = Pathname.new(path).absolute? ? path : File.join(spec.full_gem_path, path)
55
- if spec.source.instance_of?(Source::Path)
55
+ if spec.source.instance_of?(Source::Path) && spec.source.path.absolute?
56
56
  full_path
57
57
  else
58
58
  Pathname.new(full_path).relative_path_from(Bundler.root.join(bundler_path)).to_s
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-ADD" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-ADD" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-BINSTUBS" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-BINSTUBS" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CACHE" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-CACHE" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CHECK" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-CHECK" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CLEAN" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-CLEAN" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CONFIG" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-CONFIG" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-config\fR \- Set bundler configuration options
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CONSOLE" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-CONSOLE" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-console\fR \- Deprecated way to open an IRB session with the bundle pre\-loaded
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-DOCTOR" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-DOCTOR" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-doctor\fR \- Checks the bundle for common problems
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-EXEC" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-EXEC" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-exec\fR \- Execute a command in the context of the bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-GEM" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-GEM" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-HELP" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-HELP" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-help\fR \- Displays detailed help for each subcommand
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INFO" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-INFO" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-info\fR \- Show information for the given gem in your bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INIT" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-INIT" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-init\fR \- Generates a Gemfile into the current working directory
@@ -18,6 +18,10 @@ Init generates a default [\fBGemfile(5)\fR][Gemfile(5)] in the current working d
18
18
  \fB\-\-gemspec\fR
19
19
  Use the specified \.gemspec to create the [\fBGemfile(5)\fR][Gemfile(5)]
20
20
  .
21
+ .TP
22
+ \fB\-\-gemfile\fR
23
+ Use the specified name for the gemfile instead of \fBGemfile\fR
24
+ .
21
25
  .SH "FILES"
22
26
  Included in the default [\fBGemfile(5)\fR][Gemfile(5)] generated is the line \fB# frozen_string_literal: true\fR\. This is a magic comment supported for the first time in Ruby 2\.3\. The presence of this line results in all string literals in the file being implicitly frozen\.
23
27
  .
@@ -16,6 +16,8 @@ created [`Gemfile(5)`][Gemfile(5)].
16
16
 
17
17
  * `--gemspec`:
18
18
  Use the specified .gemspec to create the [`Gemfile(5)`][Gemfile(5)]
19
+ * `--gemfile`:
20
+ Use the specified name for the gemfile instead of `Gemfile`
19
21
 
20
22
  ## FILES
21
23
 
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INJECT" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-INJECT" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INSTALL" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-INSTALL" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-install\fR \- Install the dependencies specified in your Gemfile
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-LIST" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-LIST" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-list\fR \- List all the gems in the bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-LOCK" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-LOCK" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-lock\fR \- Creates / Updates a lockfile without installing
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-OPEN" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-OPEN" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-open\fR \- Opens the source directory for a gem in your bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-OUTDATED" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-OUTDATED" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-outdated\fR \- List installed gems with newer versions available
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-PLATFORM" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-PLATFORM" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-platform\fR \- Displays platform compatibility information
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-PLUGIN" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-PLUGIN" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-plugin\fR \- Manage Bundler plugins
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-PRISTINE" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-PRISTINE" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-pristine\fR \- Restores installed gems to their pristine condition
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-REMOVE" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-REMOVE" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-remove\fR \- Removes gems from the Gemfile
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-SHOW" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-SHOW" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-UPDATE" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-UPDATE" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-update\fR \- Update your gems to the latest available versions
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-VERSION" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-VERSION" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-version\fR \- Prints Bundler version information
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-VIZ" "1" "January 2023" "" ""
4
+ .TH "BUNDLE\-VIZ" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE" "1" "January 2023" "" ""
4
+ .TH "BUNDLE" "1" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\fR \- Ruby Dependency Management
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "GEMFILE" "5" "January 2023" "" ""
4
+ .TH "GEMFILE" "5" "February 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
@@ -139,8 +139,8 @@ module Bundler
139
139
  out, err, status = capture(command, path)
140
140
  return out if status.success?
141
141
 
142
- if err.include?("couldn't find remote ref")
143
- raise MissingGitRevisionError.new(command_with_no_credentials, path, explicit_ref, credential_filtered_uri)
142
+ if err.include?("couldn't find remote ref") || err.include?("not our ref")
143
+ raise MissingGitRevisionError.new(command_with_no_credentials, path, commit || explicit_ref, credential_filtered_uri)
144
144
  else
145
145
  raise GitCommandError.new(command_with_no_credentials, path, err)
146
146
  end
@@ -186,8 +186,6 @@ module Bundler
186
186
  end
187
187
 
188
188
  def refspec
189
- commit = pinned_to_full_sha? ? ref : @revision
190
-
191
189
  if commit
192
190
  @commit_ref = "refs/#{commit}-sha"
193
191
  return "#{commit}:#{@commit_ref}"
@@ -206,6 +204,10 @@ module Bundler
206
204
  "#{reference}:#{reference}"
207
205
  end
208
206
 
207
+ def commit
208
+ @commit ||= pinned_to_full_sha? ? ref : @revision
209
+ end
210
+
209
211
  def fully_qualified_ref
210
212
  if branch
211
213
  "refs/heads/#{branch}"
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
29
29
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
30
30
  spec.files = Dir.chdir(__dir__) do
31
31
  `git ls-files -z`.split("\x0").reject do |f|
32
- (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|circleci)|appveyor)})
32
+ (File.expand_path(f) == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|circleci)|appveyor)})
33
33
  end
34
34
  end
35
35
  spec.bindir = "exe"
@@ -76,9 +76,13 @@ module Bundler::PubGrub
76
76
  elsif terms.length == 1
77
77
  term = terms[0]
78
78
  if term.positive?
79
- "#{terms[0].to_s(allow_every: true)} is forbidden"
79
+ if term.constraint.any?
80
+ "#{term.package} cannot be used"
81
+ else
82
+ "#{term.to_s(allow_every: true)} cannot be used"
83
+ end
80
84
  else
81
- "#{terms[0].invert} is required"
85
+ "#{term.invert} is required"
82
86
  end
83
87
  else
84
88
  if terms.all?(&:positive?)
@@ -19,7 +19,14 @@ module Bundler::PubGrub
19
19
  version = Gem::Version.new(version)
20
20
  @packages[name] ||= {}
21
21
  raise ArgumentError, "#{name} #{version} declared twice" if @packages[name].key?(version)
22
- @packages[name][version] = deps
22
+ @packages[name][version] = clean_deps(name, version, deps)
23
+ end
24
+
25
+ private
26
+
27
+ # Exclude redundant self-referencing dependencies
28
+ def clean_deps(name, version, deps)
29
+ deps.reject {|dep_name, req| name == dep_name && Bundler::PubGrub::RubyGems.parse_range(req).include?(version) }
23
30
  end
24
31
  end
25
32
 
@@ -15,15 +15,16 @@ module Bundler::PubGrub
15
15
  package.hash ^ range.hash
16
16
  end
17
17
 
18
+ def ==(other)
19
+ package == other.package &&
20
+ range == other.range
21
+ end
22
+
18
23
  def eql?(other)
19
24
  package.eql?(other.package) &&
20
25
  range.eql?(other.range)
21
26
  end
22
27
 
23
- def ==(other)
24
- package == other.package && range == other.range
25
- end
26
-
27
28
  class << self
28
29
  def exact(package, version)
29
30
  range = VersionRange.new(min: version, max: version, include_min: true, include_max: true)
@@ -19,7 +19,7 @@ module Bundler::PubGrub
19
19
  true
20
20
  end
21
21
 
22
- def eql?
22
+ def eql?(other)
23
23
  other.empty?
24
24
  end
25
25
 
@@ -65,6 +65,7 @@ module Bundler::PubGrub
65
65
  end
66
66
 
67
67
  EMPTY = Empty.new
68
+ Empty.singleton_class.undef_method(:new)
68
69
 
69
70
  def self.empty
70
71
  EMPTY
@@ -88,7 +89,8 @@ module Bundler::PubGrub
88
89
 
89
90
  def eql?(other)
90
91
  if other.is_a?(VersionRange)
91
- min.eql?(other.min) &&
92
+ !other.empty? &&
93
+ min.eql?(other.min) &&
92
94
  max.eql?(other.max) &&
93
95
  include_min.eql?(other.include_min) &&
94
96
  include_max.eql?(other.include_max)
@@ -125,6 +125,7 @@ module Bundler::PubGrub
125
125
  package = next_package_to_try
126
126
  unsatisfied_term = solution.unsatisfied.find { |t| t.package == package }
127
127
  version = source.versions_for(package, unsatisfied_term.constraint.range).first
128
+ logger.debug { "attempting #{package} #{version}" }
128
129
 
129
130
  if version.nil?
130
131
  add_incompatibility source.no_versions_incompatibility_for(package, unsatisfied_term)
@@ -148,9 +149,11 @@ module Bundler::PubGrub
148
149
  end
149
150
 
150
151
  unless conflict
151
- logger.info { "selecting #{package} #{version}" }
152
+ logger.info { "selected #{package} #{version}" }
152
153
 
153
154
  solution.decide(package, version)
155
+ else
156
+ logger.info { "conflict: #{conflict.inspect}" }
154
157
  end
155
158
 
156
159
  package
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.4.6".freeze
4
+ VERSION = "2.4.7".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.6
4
+ version: 2.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - André Arko
@@ -22,7 +22,7 @@ authors:
22
22
  autorequire:
23
23
  bindir: exe
24
24
  cert_chain: []
25
- date: 2023-01-31 00:00:00.000000000 Z
25
+ date: 2023-02-15 00:00:00.000000000 Z
26
26
  dependencies: []
27
27
  description: Bundler manages an application's dependencies through its entire life,
28
28
  across many machines, systematically and repeatably
@@ -228,7 +228,6 @@ files:
228
228
  - lib/bundler/templates/Executable.bundler
229
229
  - lib/bundler/templates/Executable.standalone
230
230
  - lib/bundler/templates/Gemfile
231
- - lib/bundler/templates/gems.rb
232
231
  - lib/bundler/templates/newgem/CHANGELOG.md.tt
233
232
  - lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
234
233
  - lib/bundler/templates/newgem/Cargo.toml.tt
@@ -380,7 +379,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
380
379
  - !ruby/object:Gem::Version
381
380
  version: 3.0.1
382
381
  requirements: []
383
- rubygems_version: 3.4.6
382
+ rubygems_version: 3.4.7
384
383
  signing_key:
385
384
  specification_version: 4
386
385
  summary: The best way to manage your application's dependencies
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- # gem "rails"