bundler 2.4.4 → 2.4.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c086402f586de5162fbccb5f97175ef0539debc5010faed4a7cd25b94c9a0c1
4
- data.tar.gz: 5b0c3726de4085c618f785727c4572b70717e390bf7444a07ff44a3b2c46de64
3
+ metadata.gz: f0ed8153bf4161ce7da774eaa1abd23954e3ca61eb7ba730efcb934a6c13b2fe
4
+ data.tar.gz: 81f598764da83308327451e2ab17276401b9f89f6cd170f82c540b74e3038b41
5
5
  SHA512:
6
- metadata.gz: fee7f484591b307723fad8855c6b76d516648e37a0e51636d67fd642cf65a057a0e48c7ed80588833fb962196694f23644c3965cd5490c6c70f0add41d1d371e
7
- data.tar.gz: 362ccbe671ea531b2e187c468ec6e841fffe3e500d56d3f99e283623b791c62643d8098d0460c77285d09353009bdd135369ce45746a8da368e696e70cafc45b
6
+ metadata.gz: 668e10c171354b03ee63547510c0e3cb57caa1146749b9f357ee36d74d9c3bfaa84283dc39d908b91a0e7870ecd673b392f7ea062e7987f9f833b492700f5533
7
+ data.tar.gz: b498147f45cdd036ba4cb3c8ed03eb6353397a5acbbe76fb0b2729c58a4fc99beb86247b6d410e3e55612b7f950d53bea05f705a8d387ed24ab00c47388e7a4a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ # 2.4.5 (January 21, 2023)
2
+
3
+ ## Bug fixes:
4
+
5
+ - Fix `bundler/inline` not resolving properly if gems not preinstalled [#6282](https://github.com/rubygems/rubygems/pull/6282)
6
+ - Fix packages for external platforms being introduced in lockfile when Bundler retries resolution [#6285](https://github.com/rubygems/rubygems/pull/6285)
7
+
8
+ ## Documentation:
9
+
10
+ - Update bundle-exec man page to not use deprecated `Bundler.with_clean_env` [#6284](https://github.com/rubygems/rubygems/pull/6284)
11
+
1
12
  # 2.4.4 (January 16, 2023)
2
13
 
3
14
  ## Bug fixes:
@@ -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-16".freeze
8
- @git_commit_sha = "e1c0b50e84".freeze
7
+ @built_at = "2023-01-21".freeze
8
+ @git_commit_sha = "d8ff3b6e4a".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -487,7 +487,7 @@ module Bundler
487
487
  end
488
488
 
489
489
  def expanded_dependencies
490
- @expanded_dependencies ||= dependencies + metadata_dependencies
490
+ dependencies + metadata_dependencies
491
491
  end
492
492
 
493
493
  def resolution_packages
@@ -551,13 +551,13 @@ module Bundler
551
551
  end
552
552
 
553
553
  def start_resolution
554
- result = resolver.start(expanded_dependencies)
554
+ result = resolver.start
555
555
 
556
556
  SpecSet.new(SpecSet.new(result).for(dependencies, false, @platforms))
557
557
  end
558
558
 
559
559
  def precompute_source_requirements_for_indirect_dependencies?
560
- @remote && sources.non_global_rubygems_sources.all?(&:dependency_api_available?) && !sources.aggregate_global_source?
560
+ sources.non_global_rubygems_sources.all?(&:dependency_api_available?) && !sources.aggregate_global_source?
561
561
  end
562
562
 
563
563
  def pin_locally_available_names(source_requirements)
@@ -74,13 +74,13 @@ Finally, \fBbundle exec\fR also implicitly modifies \fBGemfile\.lock\fR if the l
74
74
  By default, when attempting to \fBbundle exec\fR to a file with a ruby shebang, Bundler will \fBKernel\.load\fR that file instead of using \fBKernel\.exec\fR\. For the vast majority of cases, this is a performance improvement\. In a rare few cases, this could cause some subtle side\-effects (such as dependence on the exact contents of \fB$0\fR or \fB__FILE__\fR) and the optimization can be disabled by enabling the \fBdisable_exec_load\fR setting\.
75
75
  .
76
76
  .SS "Shelling out"
77
- Any Ruby code that opens a subshell (like \fBsystem\fR, backticks, or \fB%x{}\fR) will automatically use the current Bundler environment\. If you need to shell out to a Ruby command that is not part of your current bundle, use the \fBwith_clean_env\fR method with a block\. Any subshells created inside the block will be given the environment present before Bundler was activated\. For example, Homebrew commands run Ruby, but don\'t work inside a bundle:
77
+ Any Ruby code that opens a subshell (like \fBsystem\fR, backticks, or \fB%x{}\fR) will automatically use the current Bundler environment\. If you need to shell out to a Ruby command that is not part of your current bundle, use the \fBwith_unbundled_env\fR method with a block\. Any subshells created inside the block will be given the environment present before Bundler was activated\. For example, Homebrew commands run Ruby, but don\'t work inside a bundle:
78
78
  .
79
79
  .IP "" 4
80
80
  .
81
81
  .nf
82
82
 
83
- Bundler\.with_clean_env do
83
+ Bundler\.with_unbundled_env do
84
84
  `brew install wget`
85
85
  end
86
86
  .
@@ -89,13 +89,13 @@ end
89
89
  .IP "" 0
90
90
  .
91
91
  .P
92
- Using \fBwith_clean_env\fR is also necessary if you are shelling out to a different bundle\. Any Bundler commands run in a subshell will inherit the current Gemfile, so commands that need to run in the context of a different bundle also need to use \fBwith_clean_env\fR\.
92
+ Using \fBwith_unbundled_env\fR is also necessary if you are shelling out to a different bundle\. Any Bundler commands run in a subshell will inherit the current Gemfile, so commands that need to run in the context of a different bundle also need to use \fBwith_unbundled_env\fR\.
93
93
  .
94
94
  .IP "" 4
95
95
  .
96
96
  .nf
97
97
 
98
- Bundler\.with_clean_env do
98
+ Bundler\.with_unbundled_env do
99
99
  Dir\.chdir "/other/bundler/project" do
100
100
  `bundle exec \./script`
101
101
  end
@@ -84,20 +84,20 @@ the `disable_exec_load` setting.
84
84
  Any Ruby code that opens a subshell (like `system`, backticks, or `%x{}`) will
85
85
  automatically use the current Bundler environment. If you need to shell out to
86
86
  a Ruby command that is not part of your current bundle, use the
87
- `with_clean_env` method with a block. Any subshells created inside the block
87
+ `with_unbundled_env` method with a block. Any subshells created inside the block
88
88
  will be given the environment present before Bundler was activated. For
89
89
  example, Homebrew commands run Ruby, but don't work inside a bundle:
90
90
 
91
- Bundler.with_clean_env do
91
+ Bundler.with_unbundled_env do
92
92
  `brew install wget`
93
93
  end
94
94
 
95
- Using `with_clean_env` is also necessary if you are shelling out to a different
95
+ Using `with_unbundled_env` is also necessary if you are shelling out to a different
96
96
  bundle. Any Bundler commands run in a subshell will inherit the current
97
97
  Gemfile, so commands that need to run in the context of a different bundle also
98
- need to use `with_clean_env`.
98
+ need to use `with_unbundled_env`.
99
99
 
100
- Bundler.with_clean_env do
100
+ Bundler.with_unbundled_env do
101
101
  Dir.chdir "/other/bundler/project" do
102
102
  `bundle exec ./script`
103
103
  end
@@ -5,7 +5,7 @@ require_relative "package"
5
5
  module Bundler
6
6
  class Resolver
7
7
  class Base
8
- attr_reader :packages, :source_requirements
8
+ attr_reader :packages, :requirements, :source_requirements
9
9
 
10
10
  def initialize(source_requirements, dependencies, base, platforms, options)
11
11
  @source_requirements = source_requirements
@@ -16,11 +16,18 @@ module Bundler
16
16
  hash[name] = Package.new(name, platforms, **options)
17
17
  end
18
18
 
19
- dependencies.each do |dep|
19
+ @requirements = dependencies.map do |dep|
20
+ dep_platforms = dep.gem_platforms(platforms)
21
+
22
+ # Dependencies scoped to external platforms are ignored
23
+ next if dep_platforms.empty?
24
+
20
25
  name = dep.name
21
26
 
22
- @packages[name] = Package.new(name, dep.gem_platforms(platforms), **options.merge(:dependency => dep))
23
- end
27
+ @packages[name] = Package.new(name, dep_platforms, **options.merge(:dependency => dep))
28
+
29
+ dep
30
+ end.compact
24
31
  end
25
32
 
26
33
  def [](name)
@@ -21,8 +21,8 @@ module Bundler
21
21
  @gem_version_promoter = gem_version_promoter
22
22
  end
23
23
 
24
- def start(requirements)
25
- @requirements = requirements
24
+ def start
25
+ @requirements = @base.requirements
26
26
  @packages = @base.packages
27
27
 
28
28
  root, logger = setup_solver
@@ -331,15 +331,6 @@ module Bundler
331
331
  to_dependency_hash(requirements, packages).map do |dep_package, dep_constraint|
332
332
  name = dep_package.name
333
333
 
334
- # If a dependency is scoped to a platform different from the current
335
- # one, we ignore it. However, it may reappear during resolution as a
336
- # transitive dependency of another package, so we need to reset the
337
- # package so the proper versions are considered if reintroduced later.
338
- if dep_package.platforms.empty?
339
- @packages.delete(name)
340
- next
341
- end
342
-
343
334
  next [dep_package, dep_constraint] if name == "bundler"
344
335
 
345
336
  versions = versions_for(dep_package, dep_constraint.range)
@@ -292,7 +292,7 @@ module Bundler
292
292
  end
293
293
 
294
294
  def dependency_api_available?
295
- api_fetchers.any?
295
+ @allow_remote && api_fetchers.any?
296
296
  end
297
297
 
298
298
  protected
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.4.4".freeze
4
+ VERSION = "2.4.5".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.4
4
+ version: 2.4.5
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-16 00:00:00.000000000 Z
25
+ date: 2023-01-21 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
@@ -380,7 +380,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
380
380
  - !ruby/object:Gem::Version
381
381
  version: 3.0.1
382
382
  requirements: []
383
- rubygems_version: 3.4.4
383
+ rubygems_version: 3.4.5
384
384
  signing_key:
385
385
  specification_version: 4
386
386
  summary: The best way to manage your application's dependencies