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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/bundler/CHANGELOG.md +32 -0
  4. data/bundler/lib/bundler/build_metadata.rb +2 -2
  5. data/bundler/lib/bundler/cli/gem.rb +7 -14
  6. data/bundler/lib/bundler/cli.rb +3 -0
  7. data/bundler/lib/bundler/definition.rb +37 -25
  8. data/bundler/lib/bundler/env.rb +1 -1
  9. data/bundler/lib/bundler/gem_helpers.rb +14 -7
  10. data/bundler/lib/bundler/injector.rb +1 -4
  11. data/bundler/lib/bundler/installer/standalone.rb +0 -3
  12. data/bundler/lib/bundler/installer.rb +1 -3
  13. data/bundler/lib/bundler/lazy_specification.rb +1 -0
  14. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  15. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  16. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  17. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  18. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  19. data/bundler/lib/bundler/man/bundle-config.1 +1 -1
  20. data/bundler/lib/bundler/man/bundle-console.1 +1 -1
  21. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  22. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  23. data/bundler/lib/bundler/man/bundle-gem.1 +7 -1
  24. data/bundler/lib/bundler/man/bundle-gem.1.ronn +11 -0
  25. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  26. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  27. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-install.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  35. data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
  36. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  37. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  39. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  40. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  41. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  42. data/bundler/lib/bundler/man/bundle.1 +1 -1
  43. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  44. data/bundler/lib/bundler/resolver/base.rb +4 -0
  45. data/bundler/lib/bundler/resolver/candidate.rb +4 -16
  46. data/bundler/lib/bundler/resolver/package.rb +4 -0
  47. data/bundler/lib/bundler/resolver/spec_group.rb +20 -2
  48. data/bundler/lib/bundler/resolver.rb +18 -9
  49. data/bundler/lib/bundler/rubygems_ext.rb +69 -1
  50. data/bundler/lib/bundler/rubygems_gem_installer.rb +31 -1
  51. data/bundler/lib/bundler/rubygems_integration.rb +2 -2
  52. data/bundler/lib/bundler/runtime.rb +1 -1
  53. data/bundler/lib/bundler/self_manager.rb +17 -2
  54. data/bundler/lib/bundler/source/rubygems.rb +1 -0
  55. data/bundler/lib/bundler/spec_set.rb +14 -12
  56. data/bundler/lib/bundler/stub_specification.rb +8 -0
  57. data/bundler/lib/bundler/vendored_net_http.rb +17 -6
  58. data/bundler/lib/bundler/version.rb +1 -1
  59. data/lib/rubygems/config_file.rb +13 -8
  60. data/lib/rubygems/installer.rb +8 -7
  61. data/lib/rubygems/platform.rb +2 -2
  62. data/lib/rubygems/specification.rb +9 -5
  63. data/lib/rubygems/specification_policy.rb +14 -4
  64. data/lib/rubygems.rb +20 -14
  65. data/rubygems-update.gemspec +1 -1
  66. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 101bb4d3835465ae355294d968d11286a9f40d1ffcd1ac3a99a54a93d40af5d8
4
- data.tar.gz: 2f93681d561672e3b4096fdd0fada43eee91318fc8a851e0afc6afb6cdf2dd06
3
+ metadata.gz: 97995bf356031d7683c1336089b3520a4604416619ce917d5efb42f628c8abc2
4
+ data.tar.gz: 3f66e1705ddc62583b44bebedd33089c7edbb6ba27f4ecfee984069a53f97548
5
5
  SHA512:
6
- metadata.gz: 501d248170dd4bf953705741e93816b1a9a706b0ce6e586383678bc575645420c42c8196e0c42fdaae75d4b53e621ba1c56308d02deb47b843e734a416922851
7
- data.tar.gz: 7bba23888fa59d7d73c7db9c667845235672b000bb29fd0b652d202e6cc1f4279d3d3beb9b26e62eeadb21a1d64bbda58fcc2e9fc08a7dcdeb5b821b74cb6a0d
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-06-21".freeze
8
- @git_commit_sha = "72920bc230".freeze
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."
@@ -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
- @new_platform = nil
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
- @new_platform ||= !@platforms.include?(platform)
457
- @platforms |= [platform]
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
- !@new_platform &&
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!(current_dependencies)
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
- @platforms |= [local_platform]
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 most_specific_ruby_locked_platform_is_not_local_platform?
631
- @platforms.delete(result.incomplete_for_platform?(dependencies, @current_ruby_locked_platform) ? @current_ruby_locked_platform : local_platform)
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
- @current_ruby_locked_platform = most_specific_locked_platform if current_ruby_platform_locked?
672
- return if most_specific_ruby_locked_platform_is_not_local_platform?
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 most_specific_ruby_locked_platform_is_not_local_platform?
678
- @current_ruby_locked_platform && @current_ruby_locked_platform != local_platform
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
- [@new_platform, "you added a new platform to your gemfile"],
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!(dependencies)
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
- (@new_platform && platforms.last == platform) ||
1066
+ @new_platforms.include?(platform) ||
1059
1067
  @path_changes ||
1060
1068
  @dependency_changes ||
1061
1069
  @locked_spec_with_invalid_deps ||
1062
- !@originally_locked_specs.incomplete_for_platform?(dependencies, platform)
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
@@ -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 = caller.last.split(":").first)&.match? %r{(exe|bin)/bundler?\z}
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 = specs.select {|spec| spec.match_platform(platform) }
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 force_ruby_platform(specs)
57
- matching = specs.select {|spec| spec.match_platform(Gem::Platform::RUBY) && spec.force_ruby_platform! }
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 :force_ruby_platform
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
- if Bundler.frozen_bundle?
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
- if Bundler.frozen_bundle?
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"
@@ -4,6 +4,7 @@ require_relative "force_platform"
4
4
 
5
5
  module Bundler
6
6
  class LazySpecification
7
+ include MatchMetadata
7
8
  include MatchPlatform
8
9
  include ForcePlatform
9
10
 
@@ -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\-ADD" "1" "May 2024" ""
3
+ .TH "BUNDLE\-ADD" "1" "June 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-BINSTUBS" "1" "May 2024" ""
3
+ .TH "BUNDLE\-BINSTUBS" "1" "June 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CACHE" "1" "May 2024" ""
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" "May 2024" ""
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\-CLEAN" "1" "May 2024" ""
3
+ .TH "BUNDLE\-CLEAN" "1" "June 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CONFIG" "1" "May 2024" ""
3
+ .TH "BUNDLE\-CONFIG" "1" "June 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-config\fR \- Set bundler configuration options
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" "May 2024" ""
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\-DOCTOR" "1" "May 2024" ""
3
+ .TH "BUNDLE\-DOCTOR" "1" "June 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-doctor\fR \- Checks the bundle for common problems
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-EXEC" "1" "May 2024" ""
3
+ .TH "BUNDLE\-EXEC" "1" "June 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-exec\fR \- Execute a command in the context of the bundle
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-GEM" "1" "May 2024" ""
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\-HELP" "1" "May 2024" ""
3
+ .TH "BUNDLE\-HELP" "1" "June 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-help\fR \- Displays detailed help for each subcommand
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-INFO" "1" "May 2024" ""
3
+ .TH "BUNDLE\-INFO" "1" "June 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-info\fR \- Show information for the given gem in your bundle
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-INIT" "1" "May 2024" ""
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" "May 2024" ""
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" "May 2024" ""
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"
@@ -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\-LIST" "1" "May 2024" ""
3
+ .TH "BUNDLE\-LIST" "1" "June 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-list\fR \- List all the gems in the bundle
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-LOCK" "1" "May 2024" ""
3
+ .TH "BUNDLE\-LOCK" "1" "June 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-lock\fR \- Creates / Updates a lockfile without installing
6
6
  .SH "SYNOPSIS"