rubygems-update 3.2.15 → 3.2.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -1
  3. data/Manifest.txt +1 -0
  4. data/Rakefile +7 -8
  5. data/bundler/CHANGELOG.md +18 -1
  6. data/bundler/lib/bundler/build_metadata.rb +2 -2
  7. data/bundler/lib/bundler/cli.rb +1 -0
  8. data/bundler/lib/bundler/cli/common.rb +13 -2
  9. data/bundler/lib/bundler/cli/gem.rb +9 -1
  10. data/bundler/lib/bundler/cli/outdated.rb +1 -1
  11. data/bundler/lib/bundler/definition.rb +5 -5
  12. data/bundler/lib/bundler/feature_flag.rb +0 -1
  13. data/bundler/lib/bundler/gem_helper.rb +16 -0
  14. data/bundler/lib/bundler/lazy_specification.rb +3 -3
  15. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  16. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  17. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  18. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  19. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  20. data/bundler/lib/bundler/man/bundle-config.1 +4 -4
  21. data/bundler/lib/bundler/man/bundle-config.1.ronn +4 -3
  22. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  23. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  24. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  25. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  26. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  27. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-install.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  35. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  36. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  37. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  39. data/bundler/lib/bundler/man/bundle.1 +1 -1
  40. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  41. data/bundler/lib/bundler/settings.rb +0 -1
  42. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +2 -4
  43. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +1 -1
  44. data/bundler/lib/bundler/version.rb +1 -1
  45. data/lib/rubygems.rb +1 -1
  46. data/lib/rubygems/installer.rb +5 -2
  47. data/lib/rubygems/package.rb +1 -8
  48. data/rubygems-update.gemspec +1 -1
  49. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  50. data/test/rubygems/test_gem_installer.rb +20 -0
  51. data/test/rubygems/test_gem_package.rb +1 -1
  52. metadata +4 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12f7d1b385b073b255590e0eee7807d5bb588ab877a9928e5edee6f3701e47b6
4
- data.tar.gz: 425d632864b300c71cd1d62e9fdd045f94f4a6a088dbfc0a3a29977950958787
3
+ metadata.gz: ccd219adf38f48a5bf473e99fc307d14829f6fcef8cd1a74cf1da058ab7e82a0
4
+ data.tar.gz: fb9a36d286fcb7dd940495c5abdbe92bc5008ab736ebc581568b12e46984e746
5
5
  SHA512:
6
- metadata.gz: ed5579f01a5c0a2d832779331df8900db7e0ed9bc6dc03f6f449ff76f9552f378d771424354629fbc34bd2ace0a9ab486cf79743065ece6d89d832a79383b97a
7
- data.tar.gz: bf54441188feb5c8388676a46713113097aa978270514a3bcadf12564f8dd50ec671c0067c55727a927e7f6dfac27ce05bf13ba04731a44e749ce8c1b16d0470
6
+ metadata.gz: 6fb98ef231fdb44f615927ff27be6b92b42306eb5f4a89df105775dbe45d632c596fb5f41359a94b6488952a595f7707bf29811d228732125edb638616185aef
7
+ data.tar.gz: 90aa71948495dd12cbcf701827e85a523521dbe08774729e4de857a60c9be2c180781fa98172100a71025169690f7f9ffffa82ca30d288b421c7f59691c501ec
data/CHANGELOG.md CHANGED
@@ -1,4 +1,10 @@
1
- # 3.2.15 / 2021-03-18
1
+ # 3.2.16 / 2021-04-08
2
+
3
+ ## Bug fixes:
4
+
5
+ * Correctly handle symlinks. Pull request #2836 by voxik
6
+
7
+ # 3.2.15 / 2021-03-19
2
8
 
3
9
  ## Enhancements:
4
10
 
data/Manifest.txt CHANGED
@@ -535,6 +535,7 @@ test/rubygems/invalid_signer_cert_32.pem
535
535
  test/rubygems/invalidchild_cert.pem
536
536
  test/rubygems/invalidchild_cert_32.pem
537
537
  test/rubygems/invalidchild_key.pem
538
+ test/rubygems/packages/ascii_binder-0.1.10.1.gem
538
539
  test/rubygems/plugin/exception/rubygems_plugin.rb
539
540
  test/rubygems/plugin/load/rubygems_plugin.rb
540
541
  test/rubygems/plugin/standarderror/rubygems_plugin.rb
data/Rakefile CHANGED
@@ -7,18 +7,20 @@ require 'psych'
7
7
 
8
8
  desc "Setup Rubygems dev environment"
9
9
  task :setup do
10
- sh "ruby", "bundler/bin/bundle", "install", "--gemfile=dev_gems.rb"
10
+ sh "ruby", "bundler/spec/support/bundle.rb", "install", "--gemfile=dev_gems.rb"
11
11
  end
12
12
 
13
13
  desc "Update Rubygems dev environment"
14
14
  task :update do |_, args|
15
- sh "ruby", "bundler/bin/bundle", "update", *args, "--gemfile=dev_gems.rb"
15
+ sh "ruby", "bundler/spec/support/bundle.rb", "update", *args, "--gemfile=dev_gems.rb"
16
16
  end
17
17
 
18
18
  desc "Update the locked bundler version in dev environment"
19
19
  task :update_locked_bundler do |_, args|
20
- sh "ruby", "bundler/bin/bundle", "update", "--bundler", "--gemfile=dev_gems.rb"
21
- sh "ruby", "bundler/bin/bundle", "update", "--bundler", "--gemfile=bundler/test_gems.rb"
20
+ sh "ruby", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=dev_gems.rb"
21
+ sh "ruby", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=bundler/tool/bundler/test_gems.rb"
22
+ sh "ruby", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=bundler/tool/bundler/rubocop_gems.rb"
23
+ sh "ruby", "bundler/spec/support/bundle.rb", "update", "--bundler", "--gemfile=bundler/tool/bundler/rubocop23_gems.rb"
22
24
  end
23
25
 
24
26
  desc "Setup git hooks"
@@ -242,15 +244,12 @@ namespace 'guides' do
242
244
  desc 'Updates and publishes the guides for the just-released RubyGems'
243
245
  task 'publish'
244
246
 
245
- on_master = `git branch --list master`.strip == '* master'
246
- on_master = true if ENV['FORCE']
247
-
248
247
  task 'publish' => %w[
249
248
  guides:pull
250
249
  guides:update
251
250
  guides:commit
252
251
  guides:push
253
- ] if on_master
252
+ ]
254
253
  end
255
254
 
256
255
  directory '../blog.rubygems.org' do
data/bundler/CHANGELOG.md CHANGED
@@ -1,4 +1,21 @@
1
- # 2.2.15 (March 18, 2021)
1
+ # 2.2.16 (April 8, 2021)
2
+
3
+ ## Enhancements:
4
+
5
+ - Add `--github-username` option and config to `bundle gem` [#3687](https://github.com/rubygems/rubygems/pull/3687)
6
+ - Bump vendored `tmpdir` library copy [#4506](https://github.com/rubygems/rubygems/pull/4506)
7
+ - Add `rake build:checksum` task to build cheksums for a gem package [#4156](https://github.com/rubygems/rubygems/pull/4156)
8
+ - Enable bundler-cache for GitHub Actions template [#4498](https://github.com/rubygems/rubygems/pull/4498)
9
+ - Improve `bundle info` error when gem is on a "disabled" group [#4492](https://github.com/rubygems/rubygems/pull/4492)
10
+ - Small tweak to yank message [#4494](https://github.com/rubygems/rubygems/pull/4494)
11
+ - Don't show duplicate entries in `bundle outdated` output [#4474](https://github.com/rubygems/rubygems/pull/4474)
12
+ - Never downgrade top level gems when running `bundle update` [#4473](https://github.com/rubygems/rubygems/pull/4473)
13
+
14
+ ## Bug fixes:
15
+
16
+ - Fix incorrect logic for filtering metadata matching candidates [#4497](https://github.com/rubygems/rubygems/pull/4497)
17
+
18
+ # 2.2.15 (March 19, 2021)
2
19
 
3
20
  ## Enhancements:
4
21
 
@@ -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 = "2021-03-19".freeze
8
- @git_commit_sha = "3dbcc68293".freeze
7
+ @built_at = "2021-04-09".freeze
8
+ @git_commit_sha = "3d7bfaff25".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -591,6 +591,7 @@ module Bundler
591
591
  :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)`."
592
592
  method_option :ci, :type => :string, :lazy_default => Bundler.settings["gem.ci"] || "",
593
593
  :desc => "Generate CI configuration, either GitHub Actions, Travis CI, GitLab CI or CircleCI. Set a default with `bundle config set --global gem.ci (github|travis|gitlab|circle)`"
594
+ 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>`."
594
595
 
595
596
  def gem(name)
596
597
  end
@@ -36,10 +36,15 @@ module Bundler
36
36
  def self.without_groups_message(command)
37
37
  command_in_past_tense = command == :install ? "installed" : "updated"
38
38
  groups = Bundler.settings[:without]
39
+ "Gems in the #{verbalize_groups(groups)} were not #{command_in_past_tense}."
40
+ end
41
+
42
+ def self.verbalize_groups(groups)
43
+ groups.map!{|g| "'#{g}'" }
39
44
  group_list = [groups[0...-1].join(", "), groups[-1..-1]].
40
45
  reject {|s| s.to_s.empty? }.join(" and ")
41
46
  group_str = groups.size == 1 ? "group" : "groups"
42
- "Gems in the #{group_str} #{group_list} were not #{command_in_past_tense}."
47
+ "#{group_str} #{group_list}"
43
48
  end
44
49
 
45
50
  def self.select_spec(name, regex_match = nil)
@@ -53,7 +58,13 @@ module Bundler
53
58
 
54
59
  case specs.count
55
60
  when 0
56
- raise GemNotFound, gem_not_found_message(name, Bundler.definition.dependencies)
61
+ dep_in_other_group = Bundler.definition.current_dependencies.find {|dep|dep.name == name }
62
+
63
+ if dep_in_other_group
64
+ raise GemNotFound, "Could not find gem '#{name}', because it's in the #{verbalize_groups(dep_in_other_group.groups)}, configured to be ignored."
65
+ else
66
+ raise GemNotFound, gem_not_found_message(name, Bundler.definition.dependencies)
67
+ end
57
68
  when 1
58
69
  specs.first
59
70
  else
@@ -42,9 +42,17 @@ module Bundler
42
42
  use_git = Bundler.git_present? && options[:git]
43
43
 
44
44
  git_author_name = use_git ? `git config user.name`.chomp : ""
45
- github_username = use_git ? `git config github.user`.chomp : ""
45
+ git_username = use_git ? `git config github.user`.chomp : ""
46
46
  git_user_email = use_git ? `git config user.email`.chomp : ""
47
47
 
48
+ github_username = if options[:github_username].nil?
49
+ git_username
50
+ elsif options[:github_username] == false
51
+ ""
52
+ else
53
+ options[:github_username]
54
+ end
55
+
48
56
  config = {
49
57
  :name => name,
50
58
  :underscored_name => underscored_name,
@@ -72,7 +72,7 @@ module Bundler
72
72
  gemfile_specs + dependency_specs
73
73
  end
74
74
 
75
- specs.sort_by(&:name).each do |current_spec|
75
+ specs.sort_by(&:name).uniq(&:name).each do |current_spec|
76
76
  next unless gems.empty? || gems.include?(current_spec.name)
77
77
 
78
78
  active_spec = retrieve_active_spec(definition, current_spec)
@@ -187,10 +187,10 @@ module Bundler
187
187
  gem_name, gem_version = extract_gem_info(e)
188
188
  locked_gem = @locked_specs[gem_name].last
189
189
  raise if locked_gem.nil? || locked_gem.version.to_s != gem_version || !@remote
190
- raise GemNotFound, "Your bundle is locked to #{locked_gem}, but that version could not " \
191
- "be found in any of the sources listed in your Gemfile. If you haven't changed sources, " \
192
- "that means the author of #{locked_gem} has removed it. You'll need to update your bundle " \
193
- "to a version other than #{locked_gem} that hasn't been removed in order to install."
190
+ raise GemNotFound, "Your bundle is locked to #{locked_gem} from #{locked_gem.source}, but that version can " \
191
+ "no longer be found in that source. That means the author of #{locked_gem} has removed it. " \
192
+ "You'll need to update your bundle to a version other than #{locked_gem} that hasn't been " \
193
+ "removed in order to install."
194
194
  end
195
195
  unless specs["bundler"].any?
196
196
  bundler = sources.metadata_source.specs.search(Gem::Dependency.new("bundler", VERSION)).last
@@ -959,7 +959,7 @@ module Bundler
959
959
  end
960
960
 
961
961
  def additional_base_requirements_for_resolve
962
- return [] unless @locked_gems && Bundler.feature_flag.only_update_to_newer_versions?
962
+ return [] unless @locked_gems
963
963
  dependencies_by_name = dependencies.inject({}) {|memo, dep| memo.update(dep.name => dep) }
964
964
  @locked_gems.specs.reduce({}) do |requirements, locked_spec|
965
965
  name = locked_spec.name
@@ -35,7 +35,6 @@ module Bundler
35
35
  settings_flag(:disable_multisource) { bundler_3_mode? }
36
36
  settings_flag(:forget_cli_options) { bundler_3_mode? }
37
37
  settings_flag(:global_gem_cache) { bundler_3_mode? }
38
- settings_flag(:only_update_to_newer_versions) { bundler_3_mode? }
39
38
  settings_flag(:path_relative_to_cwd) { bundler_3_mode? }
40
39
  settings_flag(:plugins) { @bundler_version >= Gem::Version.new("1.14") }
41
40
  settings_flag(:print_only_version_number) { bundler_3_mode? }
@@ -47,6 +47,11 @@ module Bundler
47
47
  built_gem_path = build_gem
48
48
  end
49
49
 
50
+ desc "Generate SHA512 checksum if #{name}-#{version}.gem into the checksums directory."
51
+ task "build:checksum" => "build" do
52
+ build_checksum(built_gem_path)
53
+ end
54
+
50
55
  desc "Build and install #{name}-#{version}.gem into system gems."
51
56
  task "install" => "build" do
52
57
  install_gem(built_gem_path)
@@ -100,6 +105,17 @@ module Bundler
100
105
  Bundler.ui.confirm "#{name} (#{version}) installed."
101
106
  end
102
107
 
108
+ def build_checksum(built_gem_path = nil)
109
+ built_gem_path ||= build_gem
110
+ SharedHelpers.filesystem_access(File.join(base, "checksums")) {|p| FileUtils.mkdir_p(p) }
111
+ file_name = "#{File.basename(built_gem_path)}.sha512"
112
+ require "digest/sha2"
113
+ checksum = Digest::SHA512.new.hexdigest(built_gem_path.to_s)
114
+ target = File.join(base, "checksums", file_name)
115
+ File.write(target, checksum)
116
+ Bundler.ui.confirm "#{name} #{version} checksum written to checksums/#{file_name}."
117
+ end
118
+
103
119
  protected
104
120
 
105
121
  def rubygem_push(path)
@@ -74,9 +74,9 @@ module Bundler
74
74
  MatchPlatform.platforms_match?(spec.platform, platform_object)
75
75
  end
76
76
  installable_candidates = same_platform_candidates.select do |spec|
77
- !spec.is_a?(RemoteSpecification) &&
78
- spec.required_ruby_version.satisfied_by?(Gem.ruby_version) &&
79
- spec.required_rubygems_version.satisfied_by?(Gem.rubygems_version)
77
+ !spec.is_a?(EndpointSpecification) ||
78
+ (spec.required_ruby_version.satisfied_by?(Gem.ruby_version) &&
79
+ spec.required_rubygems_version.satisfied_by?(Gem.rubygems_version))
80
80
  end
81
81
  search = installable_candidates.last || same_platform_candidates.last
82
82
  search.dependencies = dependencies if search && (search.is_a?(RemoteSpecification) || search.is_a?(EndpointSpecification))
@@ -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 2021" "" ""
4
+ .TH "BUNDLE\-ADD" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-BINSTUBS" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-CACHE" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-CHECK" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-CLEAN" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-CONFIG" "1" "April 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-config\fR \- Set bundler configuration options
@@ -199,6 +199,9 @@ The following is a list of all configuration keys and their purpose\. You can le
199
199
  \fBfrozen\fR (\fBBUNDLE_FROZEN\fR): Disallow changes to the \fBGemfile\fR\. When the \fBGemfile\fR is changed and the lockfile has not been updated, running Bundler commands will be blocked\. Defaults to \fBtrue\fR when \fB\-\-deployment\fR is used\.
200
200
  .
201
201
  .IP "\(bu" 4
202
+ \fBgem\.github_username\fR (\fBBUNDLE_GEM__GITHUB_USERNAME\fR): Sets a GitHub username or organization to be used in \fBREADME\fR file when you create a new gem via \fBbundle gem\fR command\. It can be overriden by passing an explicit \fB\-\-github\-username\fR flag to \fBbundle gem\fR\.
203
+ .
204
+ .IP "\(bu" 4
202
205
  \fBgem\.push_key\fR (\fBBUNDLE_GEM__PUSH_KEY\fR): Sets the \fB\-\-key\fR parameter for \fBgem push\fR when using the \fBrake release\fR command with a private gemstash server\.
203
206
  .
204
207
  .IP "\(bu" 4
@@ -223,9 +226,6 @@ The following is a list of all configuration keys and their purpose\. You can le
223
226
  \fBno_prune\fR (\fBBUNDLE_NO_PRUNE\fR): Whether Bundler should leave outdated gems unpruned when caching\.
224
227
  .
225
228
  .IP "\(bu" 4
226
- \fBonly_update_to_newer_versions\fR (\fBBUNDLE_ONLY_UPDATE_TO_NEWER_VERSIONS\fR): During \fBbundle update\fR, only resolve to newer versions of the gems in the lockfile\.
227
- .
228
- .IP "\(bu" 4
229
229
  \fBpath\fR (\fBBUNDLE_PATH\fR): The location on disk where all gems in your bundle will be located regardless of \fB$GEM_HOME\fR or \fB$GEM_PATH\fR values\. Bundle gems not found in this location will be installed by \fBbundle install\fR\. Defaults to \fBGem\.dir\fR\. When \-\-deployment is used, defaults to vendor/bundle\.
230
230
  .
231
231
  .IP "\(bu" 4
@@ -194,6 +194,10 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
194
194
  Disallow changes to the `Gemfile`. When the `Gemfile` is changed and the
195
195
  lockfile has not been updated, running Bundler commands will be blocked.
196
196
  Defaults to `true` when `--deployment` is used.
197
+ * `gem.github_username` (`BUNDLE_GEM__GITHUB_USERNAME`):
198
+ Sets a GitHub username or organization to be used in `README` file when you
199
+ create a new gem via `bundle gem` command. It can be overriden by passing an
200
+ explicit `--github-username` flag to `bundle gem`.
197
201
  * `gem.push_key` (`BUNDLE_GEM__PUSH_KEY`):
198
202
  Sets the `--key` parameter for `gem push` when using the `rake release`
199
203
  command with a private gemstash server.
@@ -218,9 +222,6 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
218
222
  Whether `bundle package` should skip installing gems.
219
223
  * `no_prune` (`BUNDLE_NO_PRUNE`):
220
224
  Whether Bundler should leave outdated gems unpruned when caching.
221
- * `only_update_to_newer_versions` (`BUNDLE_ONLY_UPDATE_TO_NEWER_VERSIONS`):
222
- During `bundle update`, only resolve to newer versions of the gems in the
223
- lockfile.
224
225
  * `path` (`BUNDLE_PATH`):
225
226
  The location on disk where all gems in your bundle will be located regardless
226
227
  of `$GEM_HOME` or `$GEM_PATH` values. Bundle gems not found in this location
@@ -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 2021" "" ""
4
+ .TH "BUNDLE\-DOCTOR" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-EXEC" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-GEM" "1" "April 2021" "" ""
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\-INFO" "1" "January 2021" "" ""
4
+ .TH "BUNDLE\-INFO" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-INIT" "1" "April 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-init\fR \- Generates a Gemfile into the current working 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\-INJECT" "1" "January 2021" "" ""
4
+ .TH "BUNDLE\-INJECT" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-INSTALL" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-LIST" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-LOCK" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-OPEN" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-OUTDATED" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-PLATFORM" "1" "April 2021" "" ""
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\-PRISTINE" "1" "January 2021" "" ""
4
+ .TH "BUNDLE\-PRISTINE" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-REMOVE" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-SHOW" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE\-UPDATE" "1" "April 2021" "" ""
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\-VIZ" "1" "January 2021" "" ""
4
+ .TH "BUNDLE\-VIZ" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "BUNDLE" "1" "April 2021" "" ""
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 2021" "" ""
4
+ .TH "GEMFILE" "5" "April 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
@@ -33,7 +33,6 @@ module Bundler
33
33
  init_gems_rb
34
34
  no_install
35
35
  no_prune
36
- only_update_to_newer_versions
37
36
  path_relative_to_cwd
38
37
  path.system
39
38
  plugins
@@ -11,8 +11,6 @@ jobs:
11
11
  uses: ruby/setup-ruby@v1
12
12
  with:
13
13
  ruby-version: <%= RUBY_VERSION %>
14
+ bundler-cache: true
14
15
  - name: Run the default task
15
- run: |
16
- gem install bundler -v <%= Bundler::VERSION %>
17
- bundle install
18
- bundle exec rake
16
+ run: bundle exec rake
@@ -115,7 +115,7 @@ class Bundler::Dir < Dir
115
115
  Bundler::Dir.tmpdir
116
116
  end
117
117
 
118
- UNUSABLE_CHARS = [File::SEPARATOR, File::ALT_SEPARATOR, File::PATH_SEPARATOR, ":"].uniq.join("").freeze
118
+ UNUSABLE_CHARS = "^,-.0-9A-Z_a-z~"
119
119
 
120
120
  class << (RANDOM = Random.new)
121
121
  MAX = 36**6 # < 0x100000000
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.2.15".freeze
4
+ VERSION = "2.2.16".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
data/lib/rubygems.rb CHANGED
@@ -8,7 +8,7 @@
8
8
  require 'rbconfig'
9
9
 
10
10
  module Gem
11
- VERSION = "3.2.15".freeze
11
+ VERSION = "3.2.16".freeze
12
12
  end
13
13
 
14
14
  # Must be first since it unloads the prelude from 1.9.2
@@ -484,8 +484,11 @@ class Gem::Installer
484
484
  bin_path = File.join gem_dir, spec.bindir, filename
485
485
 
486
486
  unless File.exist? bin_path
487
- # TODO change this to a more useful warning
488
- warn "`#{bin_path}` does not exist, maybe `gem pristine #{spec.name}` will fix it?"
487
+ if File.symlink? bin_path
488
+ alert_warning "`#{bin_path}` is dangling symlink pointing to `#{File.readlink bin_path}`"
489
+ else
490
+ alert_warning "`#{bin_path}` does not exist, maybe `gem pristine #{spec.name}` will fix it?"
491
+ end
489
492
  next
490
493
  end
491
494
 
@@ -252,14 +252,7 @@ class Gem::Package
252
252
  stat = File.lstat file
253
253
 
254
254
  if stat.symlink?
255
- target_path = File.readlink(file)
256
-
257
- unless target_path.start_with? '.'
258
- relative_dir = File.dirname(file).sub("#{Dir.pwd}/", '')
259
- target_path = File.join(relative_dir, target_path)
260
- end
261
-
262
- tar.add_symlink file, target_path, stat.mode
255
+ tar.add_symlink file, File.readlink(file), stat.mode
263
256
  end
264
257
 
265
258
  next unless stat.file?
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "rubygems-update"
5
- s.version = "3.2.15"
5
+ s.version = "3.2.16"
6
6
  s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
7
  s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
8
 
@@ -735,6 +735,26 @@ gem 'other', version
735
735
  assert_match(/#{default_shebang}/, shebang_line)
736
736
  end
737
737
 
738
+ def test_generate_bin_with_dangling_symlink
739
+ gem_with_dangling_symlink = File.expand_path("packages/ascii_binder-0.1.10.1.gem", __dir__)
740
+
741
+ installer = Gem::Installer.at(
742
+ gem_with_dangling_symlink,
743
+ :install_dir => @gem_home,
744
+ :user_install => false,
745
+ :force => true
746
+ )
747
+
748
+ build_rake_in do
749
+ use_ui @ui do
750
+ installer.install
751
+ end
752
+ end
753
+
754
+ assert_match %r{bin/ascii_binder` is dangling symlink pointing to `bin/asciibinder`}, @ui.error
755
+ assert_empty @ui.output
756
+ end
757
+
738
758
  def test_generate_plugins
739
759
  installer = util_setup_installer do |spec|
740
760
  write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
@@ -218,7 +218,7 @@ class TestGemPackage < Gem::Package::TarTestCase
218
218
  end
219
219
 
220
220
  assert_equal %w[lib/code.rb], files
221
- assert_equal [{'lib/code_sym.rb' => 'lib/code.rb'}, {'lib/code_sym2.rb' => '../lib/code.rb'}], symlinks
221
+ assert_equal [{'lib/code_sym.rb' => 'code.rb'}, {'lib/code_sym2.rb' => '../lib/code.rb'}], symlinks
222
222
  end
223
223
 
224
224
  def test_build
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-update
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.15
4
+ version: 3.2.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -16,7 +16,7 @@ authors:
16
16
  autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
- date: 2021-03-19 00:00:00.000000000 Z
19
+ date: 2021-04-09 00:00:00.000000000 Z
20
20
  dependencies: []
21
21
  description: |-
22
22
  A package (also known as a library) contains a set of functionality
@@ -591,6 +591,7 @@ files:
591
591
  - test/rubygems/invalidchild_cert.pem
592
592
  - test/rubygems/invalidchild_cert_32.pem
593
593
  - test/rubygems/invalidchild_key.pem
594
+ - test/rubygems/packages/ascii_binder-0.1.10.1.gem
594
595
  - test/rubygems/plugin/exception/rubygems_plugin.rb
595
596
  - test/rubygems/plugin/load/rubygems_plugin.rb
596
597
  - test/rubygems/plugin/standarderror/rubygems_plugin.rb
@@ -768,7 +769,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
768
769
  - !ruby/object:Gem::Version
769
770
  version: '0'
770
771
  requirements: []
771
- rubygems_version: 3.2.15
772
+ rubygems_version: 3.2.16
772
773
  signing_key:
773
774
  specification_version: 4
774
775
  summary: RubyGems is a package management framework for Ruby.