rubygems-update 3.5.14 → 3.5.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +40 -0
- data/bundler/CHANGELOG.md +32 -0
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/gem.rb +7 -14
- data/bundler/lib/bundler/cli.rb +3 -0
- data/bundler/lib/bundler/definition.rb +37 -25
- data/bundler/lib/bundler/env.rb +1 -1
- data/bundler/lib/bundler/gem_helpers.rb +14 -7
- data/bundler/lib/bundler/injector.rb +1 -4
- data/bundler/lib/bundler/installer/standalone.rb +0 -3
- data/bundler/lib/bundler/installer.rb +1 -3
- data/bundler/lib/bundler/lazy_specification.rb +1 -0
- data/bundler/lib/bundler/man/bundle-add.1 +1 -1
- data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
- data/bundler/lib/bundler/man/bundle-check.1 +1 -1
- data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +1 -1
- data/bundler/lib/bundler/man/bundle-console.1 +1 -1
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
- data/bundler/lib/bundler/man/bundle-gem.1 +7 -1
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +11 -0
- data/bundler/lib/bundler/man/bundle-help.1 +1 -1
- data/bundler/lib/bundler/man/bundle-info.1 +1 -1
- data/bundler/lib/bundler/man/bundle-init.1 +1 -1
- data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
- data/bundler/lib/bundler/man/bundle-install.1 +1 -1
- data/bundler/lib/bundler/man/bundle-list.1 +1 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
- data/bundler/lib/bundler/man/bundle-open.1 +1 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
- data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
- data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +1 -1
- data/bundler/lib/bundler/man/bundle-update.1 +1 -1
- data/bundler/lib/bundler/man/bundle-version.1 +1 -1
- data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
- data/bundler/lib/bundler/man/bundle.1 +1 -1
- data/bundler/lib/bundler/man/gemfile.5 +1 -1
- data/bundler/lib/bundler/resolver/base.rb +4 -0
- data/bundler/lib/bundler/resolver/candidate.rb +4 -16
- data/bundler/lib/bundler/resolver/package.rb +4 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +20 -2
- data/bundler/lib/bundler/resolver.rb +18 -9
- data/bundler/lib/bundler/rubygems_ext.rb +69 -1
- data/bundler/lib/bundler/rubygems_gem_installer.rb +31 -1
- data/bundler/lib/bundler/rubygems_integration.rb +2 -2
- data/bundler/lib/bundler/runtime.rb +1 -1
- data/bundler/lib/bundler/self_manager.rb +17 -2
- data/bundler/lib/bundler/source/rubygems.rb +1 -0
- data/bundler/lib/bundler/spec_set.rb +14 -12
- data/bundler/lib/bundler/stub_specification.rb +8 -0
- data/bundler/lib/bundler/vendored_net_http.rb +17 -6
- data/bundler/lib/bundler/version.rb +1 -1
- data/lib/rubygems/config_file.rb +13 -8
- data/lib/rubygems/installer.rb +8 -7
- data/lib/rubygems/platform.rb +2 -2
- data/lib/rubygems/specification.rb +9 -5
- data/lib/rubygems/specification_policy.rb +14 -4
- data/lib/rubygems.rb +20 -14
- data/rubygems-update.gemspec +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97995bf356031d7683c1336089b3520a4604416619ce917d5efb42f628c8abc2
|
4
|
+
data.tar.gz: 3f66e1705ddc62583b44bebedd33089c7edbb6ba27f4ecfee984069a53f97548
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e92f698093d5c671bb617ecb0d5b25e3803b55f182e3cf523e4a2490278ece4a9ed0aa4d984d54ae2f0703847d2b63c50557d1fc05d84b2cd40b6d87c85fe105
|
7
|
+
data.tar.gz: 520eead8b68e27c40f18e54976aac985e1d52baed43b080bbb54a7ab43d6c3f936f8a0d57a0c1fe797e17bdf0a189f4d920e0876b2f938f6ebd571e391c74a28
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,43 @@
|
|
1
|
+
# 3.5.16 / 2024-07-18
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
* Installs bundler 2.5.16 as a default gem.
|
6
|
+
|
7
|
+
## Bug fixes:
|
8
|
+
|
9
|
+
* Fix gemspec `require_paths` validation. Pull request
|
10
|
+
[#7866](https://github.com/rubygems/rubygems/pull/7866) by
|
11
|
+
deivid-rodriguez
|
12
|
+
* Fix loading of nested `gemrc` config keys when specified as symbols.
|
13
|
+
Pull request [#7851](https://github.com/rubygems/rubygems/pull/7851) by
|
14
|
+
moofkit
|
15
|
+
|
16
|
+
## Performance:
|
17
|
+
|
18
|
+
* Use `caller_locations` instead of splitting `caller`. Pull request
|
19
|
+
[#7708](https://github.com/rubygems/rubygems/pull/7708) by nobu
|
20
|
+
|
21
|
+
# 3.5.15 / 2024-07-09
|
22
|
+
|
23
|
+
## Enhancements:
|
24
|
+
|
25
|
+
* Installs bundler 2.5.15 as a default gem.
|
26
|
+
|
27
|
+
## Bug fixes:
|
28
|
+
|
29
|
+
* Restrict generic `arm` to only match 32-bit arm. Pull request
|
30
|
+
[#7830](https://github.com/rubygems/rubygems/pull/7830) by ntkme
|
31
|
+
* Protect creating binstubs with a file lock. Pull request
|
32
|
+
[#7806](https://github.com/rubygems/rubygems/pull/7806) by
|
33
|
+
deivid-rodriguez
|
34
|
+
|
35
|
+
## Documentation:
|
36
|
+
|
37
|
+
* Make it clearer that `add_dependency` is the main way to add
|
38
|
+
non-development dependencies. Pull request
|
39
|
+
[#7800](https://github.com/rubygems/rubygems/pull/7800) by jeromedalbert
|
40
|
+
|
1
41
|
# 3.5.14 / 2024-06-21
|
2
42
|
|
3
43
|
## Enhancements:
|
data/bundler/CHANGELOG.md
CHANGED
@@ -1,3 +1,35 @@
|
|
1
|
+
# 2.5.16 (July 18, 2024)
|
2
|
+
|
3
|
+
## Bug fixes:
|
4
|
+
|
5
|
+
- Fix platform removal regression when `platforms:` used in the Gemfile [#7864](https://github.com/rubygems/rubygems/pull/7864)
|
6
|
+
- Fix standalone script when default gems with extensions are used [#7870](https://github.com/rubygems/rubygems/pull/7870)
|
7
|
+
- Fix another case of `bundle lock --add-platform` doing nothing [#7848](https://github.com/rubygems/rubygems/pull/7848)
|
8
|
+
- Fix bad error messages when using `bundle add` with frozen mode set [#7845](https://github.com/rubygems/rubygems/pull/7845)
|
9
|
+
- Fix generic platform gems getting incorrectly removed from lockfile [#7833](https://github.com/rubygems/rubygems/pull/7833)
|
10
|
+
|
11
|
+
## Performance:
|
12
|
+
|
13
|
+
- Use `caller_locations` instead of splitting `caller` [#7708](https://github.com/rubygems/rubygems/pull/7708)
|
14
|
+
|
15
|
+
# 2.5.15 (July 9, 2024)
|
16
|
+
|
17
|
+
## Enhancements:
|
18
|
+
|
19
|
+
- Support `--no-test`, `--no-ci`, and `--no-linter` options [#7780](https://github.com/rubygems/rubygems/pull/7780)
|
20
|
+
- Allow bundle command in new gems with invalid metadata [#7707](https://github.com/rubygems/rubygems/pull/7707)
|
21
|
+
|
22
|
+
## Bug fixes:
|
23
|
+
|
24
|
+
- Protect creating RubyGems binstubs with a file lock [#7841](https://github.com/rubygems/rubygems/pull/7841)
|
25
|
+
- Only allow valid values for `--test`, `--ci`, and `--linter` options [#7801](https://github.com/rubygems/rubygems/pull/7801)
|
26
|
+
- Fix `bundle lock --add-platform <current_platform>` doing nothing [#7803](https://github.com/rubygems/rubygems/pull/7803)
|
27
|
+
- Print a proper error when bin dir does not have writable permission bit [#7794](https://github.com/rubygems/rubygems/pull/7794)
|
28
|
+
|
29
|
+
## Documentation:
|
30
|
+
|
31
|
+
- Regenerate bundler docs for June 2024 [#7787](https://github.com/rubygems/rubygems/pull/7787)
|
32
|
+
|
1
33
|
# 2.5.14 (June 21, 2024)
|
2
34
|
|
3
35
|
## 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 = "2024-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2024-07-18".freeze
|
8
|
+
@git_commit_sha = "f49d3d48c9".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
@@ -32,7 +32,6 @@ module Bundler
|
|
32
32
|
|
33
33
|
validate_ext_name if @extension
|
34
34
|
validate_rust_builder_rubygems_version if @extension == "rust"
|
35
|
-
travis_removal_info
|
36
35
|
end
|
37
36
|
|
38
37
|
def run
|
@@ -276,6 +275,7 @@ module Bundler
|
|
276
275
|
end
|
277
276
|
|
278
277
|
def ask_and_set_test_framework
|
278
|
+
return if skip?(:test)
|
279
279
|
test_framework = options[:test] || Bundler.settings["gem.test"]
|
280
280
|
|
281
281
|
if test_framework.to_s.empty?
|
@@ -301,6 +301,10 @@ module Bundler
|
|
301
301
|
test_framework
|
302
302
|
end
|
303
303
|
|
304
|
+
def skip?(option)
|
305
|
+
options.key?(option) && options[option].nil?
|
306
|
+
end
|
307
|
+
|
304
308
|
def hint_text(setting)
|
305
309
|
if Bundler.settings["gem.#{setting}"] == false
|
306
310
|
"Your choice will only be applied to this gem."
|
@@ -311,6 +315,7 @@ module Bundler
|
|
311
315
|
end
|
312
316
|
|
313
317
|
def ask_and_set_ci
|
318
|
+
return if skip?(:ci)
|
314
319
|
ci_template = options[:ci] || Bundler.settings["gem.ci"]
|
315
320
|
|
316
321
|
if ci_template.to_s.empty?
|
@@ -342,6 +347,7 @@ module Bundler
|
|
342
347
|
end
|
343
348
|
|
344
349
|
def ask_and_set_linter
|
350
|
+
return if skip?(:linter)
|
345
351
|
linter_template = options[:linter] || Bundler.settings["gem.linter"]
|
346
352
|
linter_template = deprecated_rubocop_option if linter_template.nil?
|
347
353
|
|
@@ -448,19 +454,6 @@ module Bundler
|
|
448
454
|
"1.3"
|
449
455
|
end
|
450
456
|
|
451
|
-
# TODO: remove at next minor release
|
452
|
-
def travis_removal_info
|
453
|
-
if options[:ci] == "travis"
|
454
|
-
Bundler.ui.error "Support for Travis CI was removed from gem skeleton generator."
|
455
|
-
exit 1
|
456
|
-
end
|
457
|
-
|
458
|
-
if Bundler.settings["gem.ci"] == "travis"
|
459
|
-
Bundler.ui.error "Support for Travis CI was removed from gem skeleton generator, but it is present in bundle config. Please configure another provider using `bundle config set gem.ci SERVICE` (where SERVICE is one of github/gitlab/circle) or unset configuration using `bundle config unset gem.ci`."
|
460
|
-
exit 1
|
461
|
-
end
|
462
|
-
end
|
463
|
-
|
464
457
|
def validate_rust_builder_rubygems_version
|
465
458
|
if Gem::Version.new(rust_builder_required_rubygems_version) > Gem.rubygems_version
|
466
459
|
Bundler.ui.error "Your RubyGems version (#{Gem.rubygems_version}) is too old to build Rust extension. Please update your RubyGems using `gem update --system` or any other way and try again."
|
data/bundler/lib/bundler/cli.rb
CHANGED
@@ -550,10 +550,13 @@ module Bundler
|
|
550
550
|
method_option :rubocop, type: :boolean, desc: "Add rubocop to the generated Rakefile and gemspec. Set a default with `bundle config set --global gem.rubocop true`."
|
551
551
|
method_option :changelog, type: :boolean, desc: "Generate changelog file. Set a default with `bundle config set --global gem.changelog true`."
|
552
552
|
method_option :test, type: :string, lazy_default: Bundler.settings["gem.test"] || "", aliases: "-t", banner: "Use the specified test framework for your library",
|
553
|
+
enum: %w[rspec minitest test-unit],
|
553
554
|
desc: "Generate a test directory for your library, either rspec, minitest or test-unit. Set a default with `bundle config set --global gem.test (rspec|minitest|test-unit)`."
|
554
555
|
method_option :ci, type: :string, lazy_default: Bundler.settings["gem.ci"] || "",
|
556
|
+
enum: %w[github gitlab circle],
|
555
557
|
desc: "Generate CI configuration, either GitHub Actions, GitLab CI or CircleCI. Set a default with `bundle config set --global gem.ci (github|gitlab|circle)`"
|
556
558
|
method_option :linter, type: :string, lazy_default: Bundler.settings["gem.linter"] || "",
|
559
|
+
enum: %w[rubocop standard],
|
557
560
|
desc: "Add a linter and code formatter, either RuboCop or Standard. Set a default with `bundle config set --global gem.linter (rubocop|standard)`"
|
558
561
|
method_option :github_username, type: :string, default: Bundler.settings["gem.github_username"], banner: "Set your username on GitHub", desc: "Fill in GitHub username on README so that you don't have to do it manually. Set a default with `bundle config set --global gem.github_username <your_username>`."
|
559
562
|
|
@@ -81,7 +81,7 @@ module Bundler
|
|
81
81
|
@resolved_bundler_version = nil
|
82
82
|
|
83
83
|
@locked_ruby_version = nil
|
84
|
-
@
|
84
|
+
@new_platforms = []
|
85
85
|
@removed_platform = nil
|
86
86
|
|
87
87
|
if lockfile_exists?
|
@@ -367,6 +367,10 @@ module Bundler
|
|
367
367
|
end
|
368
368
|
|
369
369
|
def ensure_equivalent_gemfile_and_lockfile(explicit_flag = false)
|
370
|
+
return unless Bundler.frozen_bundle?
|
371
|
+
|
372
|
+
raise ProductionError, "Frozen mode is set, but there's no lockfile" unless lockfile_exists?
|
373
|
+
|
370
374
|
added = []
|
371
375
|
deleted = []
|
372
376
|
changed = []
|
@@ -395,7 +399,7 @@ module Bundler
|
|
395
399
|
changed << "* #{name} from `#{lockfile_source_name}` to `#{gemfile_source_name}`"
|
396
400
|
end
|
397
401
|
|
398
|
-
reason = change_reason
|
402
|
+
reason = nothing_changed? ? "some dependencies were deleted from your gemfile" : change_reason
|
399
403
|
msg = String.new
|
400
404
|
msg << "#{reason.capitalize.strip}, but the lockfile can't be updated because frozen mode is set"
|
401
405
|
msg << "\n\nYou have added to the Gemfile:\n" << added.join("\n") if added.any?
|
@@ -453,8 +457,10 @@ module Bundler
|
|
453
457
|
end
|
454
458
|
|
455
459
|
def add_platform(platform)
|
456
|
-
|
457
|
-
|
460
|
+
return if @platforms.include?(platform)
|
461
|
+
|
462
|
+
@new_platforms << platform
|
463
|
+
@platforms << platform
|
458
464
|
end
|
459
465
|
|
460
466
|
def remove_platform(platform)
|
@@ -478,7 +484,7 @@ module Bundler
|
|
478
484
|
|
479
485
|
!@source_changes &&
|
480
486
|
!@dependency_changes &&
|
481
|
-
|
487
|
+
@new_platforms.empty? &&
|
482
488
|
!@path_changes &&
|
483
489
|
!@local_changes &&
|
484
490
|
!@missing_lockfile_dep &&
|
@@ -561,7 +567,7 @@ module Bundler
|
|
561
567
|
def resolution_packages
|
562
568
|
@resolution_packages ||= begin
|
563
569
|
last_resolve = converge_locked_specs
|
564
|
-
remove_invalid_platforms!
|
570
|
+
remove_invalid_platforms!
|
565
571
|
packages = Resolver::Base.new(source_requirements, expanded_dependencies, last_resolve, @platforms, locked_specs: @originally_locked_specs, unlock: @gems_to_unlock, prerelease: gem_version_promoter.pre?)
|
566
572
|
packages = additional_base_requirements_to_prevent_downgrades(packages, last_resolve)
|
567
573
|
packages = additional_base_requirements_to_force_updates(packages)
|
@@ -621,20 +627,23 @@ module Bundler
|
|
621
627
|
end
|
622
628
|
|
623
629
|
def start_resolution
|
624
|
-
@
|
630
|
+
local_platform_needed_for_resolvability = @most_specific_non_local_locked_ruby_platform && !@platforms.include?(local_platform)
|
631
|
+
@platforms << local_platform if local_platform_needed_for_resolvability
|
625
632
|
|
626
633
|
result = SpecSet.new(resolver.start)
|
627
634
|
|
628
635
|
@resolved_bundler_version = result.find {|spec| spec.name == "bundler" }&.version
|
629
636
|
|
630
|
-
if
|
631
|
-
|
637
|
+
if @most_specific_non_local_locked_ruby_platform
|
638
|
+
if spec_set_incomplete_for_platform?(result, @most_specific_non_local_locked_ruby_platform)
|
639
|
+
@platforms.delete(@most_specific_non_local_locked_ruby_platform)
|
640
|
+
elsif local_platform_needed_for_resolvability
|
641
|
+
@platforms.delete(local_platform)
|
642
|
+
end
|
632
643
|
end
|
633
644
|
|
634
645
|
@platforms = result.add_extra_platforms!(platforms) if should_add_extra_platforms?
|
635
646
|
|
636
|
-
result.complete_platforms!(platforms)
|
637
|
-
|
638
647
|
SpecSet.new(result.for(dependencies, false, @platforms))
|
639
648
|
end
|
640
649
|
|
@@ -655,12 +664,6 @@ module Bundler
|
|
655
664
|
end
|
656
665
|
end
|
657
666
|
|
658
|
-
def current_ruby_platform_locked?
|
659
|
-
return false unless generic_local_platform_is_ruby?
|
660
|
-
|
661
|
-
current_platform_locked?
|
662
|
-
end
|
663
|
-
|
664
667
|
def current_platform_locked?
|
665
668
|
@platforms.any? do |bundle_platform|
|
666
669
|
MatchPlatform.platforms_match?(bundle_platform, local_platform)
|
@@ -668,14 +671,19 @@ module Bundler
|
|
668
671
|
end
|
669
672
|
|
670
673
|
def add_current_platform
|
671
|
-
@
|
672
|
-
return if
|
674
|
+
@most_specific_non_local_locked_ruby_platform = find_most_specific_non_local_locked_ruby_platform
|
675
|
+
return if @most_specific_non_local_locked_ruby_platform
|
673
676
|
|
674
677
|
add_platform(local_platform)
|
675
678
|
end
|
676
679
|
|
677
|
-
def
|
678
|
-
|
680
|
+
def find_most_specific_non_local_locked_ruby_platform
|
681
|
+
return unless generic_local_platform_is_ruby? && current_platform_locked?
|
682
|
+
|
683
|
+
most_specific_locked_ruby_platform = most_specific_locked_platform
|
684
|
+
return unless most_specific_locked_ruby_platform != local_platform
|
685
|
+
|
686
|
+
most_specific_locked_ruby_platform
|
679
687
|
end
|
680
688
|
|
681
689
|
def change_reason
|
@@ -697,7 +705,7 @@ module Bundler
|
|
697
705
|
[
|
698
706
|
[@source_changes, "the list of sources changed"],
|
699
707
|
[@dependency_changes, "the dependencies in your gemfile changed"],
|
700
|
-
[@
|
708
|
+
[@new_platforms.any?, "you added a new platform to your gemfile"],
|
701
709
|
[@path_changes, "the gemspecs for path gems changed"],
|
702
710
|
[@local_changes, "the gemspecs for git local gems changed"],
|
703
711
|
[@missing_lockfile_dep, "your lock file is missing \"#{@missing_lockfile_dep}\""],
|
@@ -1050,21 +1058,25 @@ module Bundler
|
|
1050
1058
|
unlocked_definition
|
1051
1059
|
end
|
1052
1060
|
|
1053
|
-
def remove_invalid_platforms!
|
1061
|
+
def remove_invalid_platforms!
|
1054
1062
|
return if Bundler.frozen_bundle?
|
1055
1063
|
|
1056
1064
|
platforms.reverse_each do |platform|
|
1057
1065
|
next if local_platform == platform ||
|
1058
|
-
|
1066
|
+
@new_platforms.include?(platform) ||
|
1059
1067
|
@path_changes ||
|
1060
1068
|
@dependency_changes ||
|
1061
1069
|
@locked_spec_with_invalid_deps ||
|
1062
|
-
|
1070
|
+
!spec_set_incomplete_for_platform?(@originally_locked_specs, platform)
|
1063
1071
|
|
1064
1072
|
remove_platform(platform)
|
1065
1073
|
end
|
1066
1074
|
end
|
1067
1075
|
|
1076
|
+
def spec_set_incomplete_for_platform?(spec_set, platform)
|
1077
|
+
spec_set.incomplete_for_platform?(current_dependencies, platform)
|
1078
|
+
end
|
1079
|
+
|
1068
1080
|
def source_map
|
1069
1081
|
@source_map ||= SourceMap.new(sources, dependencies, @locked_specs)
|
1070
1082
|
end
|
data/bundler/lib/bundler/env.rb
CHANGED
@@ -120,7 +120,7 @@ module Bundler
|
|
120
120
|
specs = Bundler.rubygems.find_name(name)
|
121
121
|
out << [" #{name}", "(#{specs.map(&:version).join(",")})"] unless specs.empty?
|
122
122
|
end
|
123
|
-
if (exe =
|
123
|
+
if (exe = caller_locations.last.absolute_path)&.match? %r{(exe|bin)/bundler?\z}
|
124
124
|
shebang = File.read(exe).lines.first
|
125
125
|
shebang.sub!(/^#!\s*/, "")
|
126
126
|
unless shebang.start_with?(Gem.ruby, "/usr/bin/env ruby")
|
@@ -46,19 +46,26 @@ module Bundler
|
|
46
46
|
end
|
47
47
|
module_function :platform_specificity_match
|
48
48
|
|
49
|
-
def select_best_platform_match(specs, platform)
|
50
|
-
matching =
|
49
|
+
def select_best_platform_match(specs, platform, force_ruby: false, prefer_locked: false)
|
50
|
+
matching = if force_ruby
|
51
|
+
specs.select {|spec| spec.match_platform(Gem::Platform::RUBY) && spec.force_ruby_platform! }
|
52
|
+
else
|
53
|
+
specs.select {|spec| spec.match_platform(platform) }
|
54
|
+
end
|
55
|
+
|
56
|
+
if prefer_locked
|
57
|
+
locked_originally = matching.select {|spec| spec.is_a?(LazySpecification) }
|
58
|
+
return locked_originally if locked_originally.any?
|
59
|
+
end
|
51
60
|
|
52
61
|
sort_best_platform_match(matching, platform)
|
53
62
|
end
|
54
63
|
module_function :select_best_platform_match
|
55
64
|
|
56
|
-
def
|
57
|
-
|
58
|
-
|
59
|
-
sort_best_platform_match(matching, Gem::Platform::RUBY)
|
65
|
+
def select_best_local_platform_match(specs, force_ruby: false)
|
66
|
+
select_best_platform_match(specs, local_platform, force_ruby: force_ruby).map(&:materialize_for_installation).compact
|
60
67
|
end
|
61
|
-
module_function :
|
68
|
+
module_function :select_best_local_platform_match
|
62
69
|
|
63
70
|
def sort_best_platform_match(matching, platform)
|
64
71
|
exact = matching.select {|spec| spec.platform == platform }
|
@@ -23,10 +23,7 @@ module Bundler
|
|
23
23
|
# @param [Pathname] lockfile_path The lockfile in which to inject the new dependency.
|
24
24
|
# @return [Array]
|
25
25
|
def inject(gemfile_path, lockfile_path)
|
26
|
-
|
27
|
-
# ensure the lock and Gemfile are synced
|
28
|
-
Bundler.definition.ensure_equivalent_gemfile_and_lockfile(true)
|
29
|
-
end
|
26
|
+
Bundler.definition.ensure_equivalent_gemfile_and_lockfile(true)
|
30
27
|
|
31
28
|
# temporarily unfreeze
|
32
29
|
Bundler.settings.temporary(deployment: false, frozen: false) do
|
@@ -58,9 +58,6 @@ module Bundler
|
|
58
58
|
else
|
59
59
|
SharedHelpers.relative_path_to(full_path, from: Bundler.root.join(bundler_path))
|
60
60
|
end
|
61
|
-
rescue TypeError
|
62
|
-
error_message = "#{spec.name} #{spec.version} has an invalid gemspec"
|
63
|
-
raise Gem::InvalidSpecificationException.new(error_message)
|
64
61
|
end
|
65
62
|
|
66
63
|
def prevent_gem_activation
|
@@ -69,9 +69,7 @@ module Bundler
|
|
69
69
|
Bundler.create_bundle_path
|
70
70
|
|
71
71
|
ProcessLock.lock do
|
72
|
-
|
73
|
-
@definition.ensure_equivalent_gemfile_and_lockfile(options[:deployment])
|
74
|
-
end
|
72
|
+
@definition.ensure_equivalent_gemfile_and_lockfile(options[:deployment])
|
75
73
|
|
76
74
|
if @definition.dependencies.empty?
|
77
75
|
Bundler.ui.warn "The Gemfile specifies no dependencies"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
.\" generated with nRonn/v0.11.1
|
2
2
|
.\" https://github.com/n-ronn/nronn/tree/0.11.1
|
3
|
-
.TH "BUNDLE\-CACHE" "1" "
|
3
|
+
.TH "BUNDLE\-CACHE" "1" "June 2024" ""
|
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 nRonn/v0.11.1
|
2
2
|
.\" https://github.com/n-ronn/nronn/tree/0.11.1
|
3
|
-
.TH "BUNDLE\-CHECK" "1" "
|
3
|
+
.TH "BUNDLE\-CHECK" "1" "June 2024" ""
|
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 nRonn/v0.11.1
|
2
2
|
.\" https://github.com/n-ronn/nronn/tree/0.11.1
|
3
|
-
.TH "BUNDLE\-CONSOLE" "1" "
|
3
|
+
.TH "BUNDLE\-CONSOLE" "1" "June 2024" ""
|
4
4
|
.SH "NAME"
|
5
5
|
\fBbundle\-console\fR \- Deprecated way to open an IRB session with the bundle pre\-loaded
|
6
6
|
.SH "SYNOPSIS"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
.\" generated with nRonn/v0.11.1
|
2
2
|
.\" https://github.com/n-ronn/nronn/tree/0.11.1
|
3
|
-
.TH "BUNDLE\-GEM" "1" "
|
3
|
+
.TH "BUNDLE\-GEM" "1" "June 2024" ""
|
4
4
|
.SH "NAME"
|
5
5
|
\fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
|
6
6
|
.SH "SYNOPSIS"
|
@@ -44,6 +44,8 @@ When Bundler is configured to not generate tests, an interactive prompt will be
|
|
44
44
|
.IP
|
45
45
|
When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler's global config for future \fBbundle gem\fR use\.
|
46
46
|
.IP "\(bu" 4
|
47
|
+
\fB\-\-no\-test\fR: Do not use a test framework (overrides \fB\-\-test\fR specified in the global config)\.
|
48
|
+
.IP "\(bu" 4
|
47
49
|
\fB\-\-ci\fR, \fB\-\-ci=github\fR, \fB\-\-ci=gitlab\fR, \fB\-\-ci=circle\fR: Specify the continuous integration service that Bundler should use when generating the project\. Acceptable values are \fBgithub\fR, \fBgitlab\fR and \fBcircle\fR\. A configuration file will be generated in the project directory\. Given no option is specified:
|
48
50
|
.IP
|
49
51
|
When Bundler is configured to generate CI files, this defaults to Bundler's global config setting \fBgem\.ci\fR\.
|
@@ -52,6 +54,8 @@ When Bundler is configured to not generate CI files, an interactive prompt will
|
|
52
54
|
.IP
|
53
55
|
When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler's global config for future \fBbundle gem\fR use\.
|
54
56
|
.IP "\(bu" 4
|
57
|
+
\fB\-\-no\-ci\fR: Do not use a continuous integration service (overrides \fB\-\-ci\fR specified in the global config)\.
|
58
|
+
.IP "\(bu" 4
|
55
59
|
\fB\-\-linter\fR, \fB\-\-linter=rubocop\fR, \fB\-\-linter=standard\fR: Specify the linter and code formatter that Bundler should add to the project's development dependencies\. Acceptable values are \fBrubocop\fR and \fBstandard\fR\. A configuration file will be generated in the project directory\. Given no option is specified:
|
56
60
|
.IP
|
57
61
|
When Bundler is configured to add a linter, this defaults to Bundler's global config setting \fBgem\.linter\fR\.
|
@@ -60,6 +64,8 @@ When Bundler is configured not to add a linter, an interactive prompt will be di
|
|
60
64
|
.IP
|
61
65
|
When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler's global config for future \fBbundle gem\fR use\.
|
62
66
|
.IP "\(bu" 4
|
67
|
+
\fB\-\-no\-linter\fR: Do not add a linter (overrides \fB\-\-linter\fR specified in the global config)\.
|
68
|
+
.IP "\(bu" 4
|
63
69
|
\fB\-e\fR, \fB\-\-edit[=EDITOR]\fR: Open the resulting GEM_NAME\.gemspec in EDITOR, or the default editor if not specified\. The default is \fB$BUNDLER_EDITOR\fR, \fB$VISUAL\fR, or \fB$EDITOR\fR\.
|
64
70
|
.IP "" 0
|
65
71
|
.SH "SEE ALSO"
|
@@ -76,6 +76,10 @@ configuration file using the following names:
|
|
76
76
|
the answer will be saved in Bundler's global config for future `bundle gem`
|
77
77
|
use.
|
78
78
|
|
79
|
+
* `--no-test`:
|
80
|
+
Do not use a test framework (overrides `--test` specified in the global
|
81
|
+
config).
|
82
|
+
|
79
83
|
* `--ci`, `--ci=github`, `--ci=gitlab`, `--ci=circle`:
|
80
84
|
Specify the continuous integration service that Bundler should use when
|
81
85
|
generating the project. Acceptable values are `github`, `gitlab`
|
@@ -92,6 +96,10 @@ configuration file using the following names:
|
|
92
96
|
the answer will be saved in Bundler's global config for future `bundle gem`
|
93
97
|
use.
|
94
98
|
|
99
|
+
* `--no-ci`:
|
100
|
+
Do not use a continuous integration service (overrides `--ci` specified in
|
101
|
+
the global config).
|
102
|
+
|
95
103
|
* `--linter`, `--linter=rubocop`, `--linter=standard`:
|
96
104
|
Specify the linter and code formatter that Bundler should add to the
|
97
105
|
project's development dependencies. Acceptable values are `rubocop` and
|
@@ -108,6 +116,9 @@ configuration file using the following names:
|
|
108
116
|
the answer will be saved in Bundler's global config for future `bundle gem`
|
109
117
|
use.
|
110
118
|
|
119
|
+
* `--no-linter`:
|
120
|
+
Do not add a linter (overrides `--linter` specified in the global config).
|
121
|
+
|
111
122
|
* `-e`, `--edit[=EDITOR]`:
|
112
123
|
Open the resulting GEM_NAME.gemspec in EDITOR, or the default editor if not
|
113
124
|
specified. The default is `$BUNDLER_EDITOR`, `$VISUAL`, or `$EDITOR`.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
.\" generated with nRonn/v0.11.1
|
2
2
|
.\" https://github.com/n-ronn/nronn/tree/0.11.1
|
3
|
-
.TH "BUNDLE\-INIT" "1" "
|
3
|
+
.TH "BUNDLE\-INIT" "1" "June 2024" ""
|
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 nRonn/v0.11.1
|
2
2
|
.\" https://github.com/n-ronn/nronn/tree/0.11.1
|
3
|
-
.TH "BUNDLE\-INJECT" "1" "
|
3
|
+
.TH "BUNDLE\-INJECT" "1" "June 2024" ""
|
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
1
|
.\" generated with nRonn/v0.11.1
|
2
2
|
.\" https://github.com/n-ronn/nronn/tree/0.11.1
|
3
|
-
.TH "BUNDLE\-INSTALL" "1" "
|
3
|
+
.TH "BUNDLE\-INSTALL" "1" "June 2024" ""
|
4
4
|
.SH "NAME"
|
5
5
|
\fBbundle\-install\fR \- Install the dependencies specified in your Gemfile
|
6
6
|
.SH "SYNOPSIS"
|