rubygems-update 3.2.15 → 3.2.16

Sign up to get free protection for your applications and to get access to all the features.
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.