rubygems-update 2.6.9 → 2.6.10

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9d1a4ca66cd03805742065a7bbad9c35422a5a83
4
- data.tar.gz: 38e0d105858401e7ad579a0bf0cd7d35d518ea7e
3
+ metadata.gz: 8c92c832ef9ee468263f9ed601e77a1fe1544df8
4
+ data.tar.gz: e0564deb664a4c72dc115a15bc0eed6af67505fa
5
5
  SHA512:
6
- metadata.gz: 264fa28a5d14c9cc66c27e7d53da86f75285f5d92d50b4d55e61c3e0c3b9b4449c6e76d6a15c072bb0e40e003807edda1c7c3383ae596a3450456151bcf5dc7f
7
- data.tar.gz: c1bbb7c5cb00137913e9ae140c05d6fc430f6ffb5ebb5e88baddeafad58136de417a5457ea57100734c66e9475e51f099c93affbab9eeb2379ebdc684f62702b
6
+ metadata.gz: 5f309ad05bf0c71ec039b0624f4b55a3445bce516219d0bab7919ff3a789ee90bd039c2bbaed973320d80b9b3fd73dbb45995bfd5fee7e92f1ecdd3a34916192
7
+ data.tar.gz: 37c4f20bedf66dd0dd5ad5c0b434dad8cc96c0656362228c081f062a882d46d8c877d34ce0898412056c3143a52ccdcc094f4f9883f31338f3c8409b7b5f618e
@@ -1,5 +1,12 @@
1
1
  # coding: UTF-8
2
2
 
3
+ === 2.6.10 / 2017-01-23
4
+
5
+ Bug fixes:
6
+
7
+ * Fix `require` calling the wrong `gem` method when it is overridden.
8
+ Pull request #1822 by Samuel Giddins.
9
+
3
10
  === 2.6.9 / 2017-01-20
4
11
 
5
12
  Bug fixes:
@@ -607,4 +607,6 @@ util/ci
607
607
  util/create_certs.rb
608
608
  util/create_encrypted_key.rb
609
609
  util/generate_spdx_license_list.rb
610
+ util/patch_with_prs.rb
610
611
  util/update_bundled_ca_certificates.rb
612
+ util/update_changelog.rb
@@ -10,7 +10,7 @@ require 'rbconfig'
10
10
  require 'thread'
11
11
 
12
12
  module Gem
13
- VERSION = "2.6.9"
13
+ VERSION = "2.6.10"
14
14
  end
15
15
 
16
16
  # Must be first since it unloads the prelude from 1.9.2
@@ -47,7 +47,7 @@ class Gem::Commands::SetupCommand < Gem::Command
47
47
  end
48
48
 
49
49
  add_option '--[no-]document [TYPES]', Array,
50
- 'Generate documentation for RubyGems.',
50
+ 'Generate documentation for RubyGems',
51
51
  'List the documentation types you wish to',
52
52
  'generate. For example: rdoc,ri' do |value, options|
53
53
  options[:document] = case value
@@ -44,7 +44,7 @@ module Kernel
44
44
  spec = Gem.find_unresolved_default_spec(path)
45
45
  if spec
46
46
  Gem.remove_unresolved_default_spec(spec)
47
- gem(spec.name)
47
+ Kernel.send(:gem, spec.name)
48
48
  end
49
49
 
50
50
  # If there are no unresolved deps, then we can use just try
@@ -2698,7 +2698,7 @@ class Gem::Specification < Gem::BasicSpecification
2698
2698
 
2699
2699
  unless specification_version.is_a?(Integer)
2700
2700
  raise Gem::InvalidSpecificationException,
2701
- 'specification_version must be a Integer (did you mean version?)'
2701
+ 'specification_version must be an Integer (did you mean version?)'
2702
2702
  end
2703
2703
 
2704
2704
  case platform
@@ -163,7 +163,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
163
163
  fetcher = Gem::RemoteFetcher.new nil
164
164
  @fetcher = fetcher
165
165
  def fetcher.request(uri, request_class, last_modified = nil)
166
- raise SocketError, "tarded"
166
+ raise SocketError, "oops"
167
167
  end
168
168
 
169
169
  uri = 'http://gems.example.com/yaml'
@@ -171,7 +171,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
171
171
  fetcher.fetch_size uri
172
172
  end
173
173
 
174
- assert_equal "SocketError: tarded (#{uri})", e.message
174
+ assert_equal "SocketError: oops (#{uri})", e.message
175
175
  end
176
176
 
177
177
  def test_no_proxy
@@ -3080,7 +3080,7 @@ Did you mean 'Ruby'?
3080
3080
  end
3081
3081
  end
3082
3082
 
3083
- err = 'specification_version must be a Integer (did you mean version?)'
3083
+ err = 'specification_version must be an Integer (did you mean version?)'
3084
3084
  assert_equal err, e.message
3085
3085
  end
3086
3086
  end
@@ -341,6 +341,31 @@ class TestGemRequire < Gem::TestCase
341
341
  Kernel::RUBYGEMS_ACTIVATION_MONITOR.exit
342
342
  end
343
343
 
344
+ def test_require_when_gem_defined
345
+ default_gem_spec = new_default_spec("default", "2.0.0.0",
346
+ nil, "default/gem.rb")
347
+ install_default_specs(default_gem_spec)
348
+ c = Class.new do
349
+ def self.gem(*args)
350
+ raise "received #gem with #{args.inspect}"
351
+ end
352
+ end
353
+ assert c.send(:require, "default/gem")
354
+ assert_equal %w(default-2.0.0.0), loaded_spec_names
355
+ end
356
+
357
+ def test_require_default_when_gem_defined
358
+ a = new_spec("a", "1", nil, "lib/a.rb")
359
+ install_specs a
360
+ c = Class.new do
361
+ def self.gem(*args)
362
+ raise "received #gem with #{args.inspect}"
363
+ end
364
+ end
365
+ assert c.send(:require, "a")
366
+ assert_equal %w(a-1), loaded_spec_names
367
+ end
368
+
344
369
  def silence_warnings
345
370
  old_verbose, $VERBOSE = $VERBOSE, false
346
371
  yield
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift File.expand_path("../../lib", __FILE__)
4
+ require "rubygems"
5
+ require "optparse"
6
+
7
+ def confirm(prompt = "")
8
+ loop do
9
+ print(prompt)
10
+ print(": ") unless prompt.empty?
11
+ break if $stdin.gets.strip == "y"
12
+ end
13
+ rescue Interrupt
14
+ abort
15
+ end
16
+
17
+ def sh(*cmd)
18
+ return if system(*cmd)
19
+ raise "#{cmd} failed"
20
+ end
21
+
22
+ version = nil
23
+ prs = []
24
+
25
+ OptionParser.new do |opts|
26
+ opts.banner = "Usage: #{__FILE__} [options]"
27
+
28
+ opts.on("--version=VERSION", "The version to release") do |v|
29
+ version = v
30
+ end
31
+ end.parse!
32
+
33
+ prs = ARGV.dup
34
+
35
+ version ||= begin
36
+ version = Gem::Version.new(Gem::VERSION)
37
+ segments = version.segments
38
+ if segments.last.is_a?(String)
39
+ segments << "1"
40
+ else
41
+ segments[-1] += 1
42
+ end
43
+ segments.join(".")
44
+ end
45
+
46
+ confirm "You are about to release #{version}, currently #{Gem::VERSION}"
47
+
48
+ branch = version.split(".", 3)[0, 2].join(".")
49
+ sh("git", "checkout", branch)
50
+ sh("git", "submodule", "update", "--init", "--recursive")
51
+
52
+ commits = `git log --oneline origin/master --`.split("\n").map {|l| l.split(/\s/, 2) }.reverse
53
+ commits.select! {|_sha, message| message =~ /(Auto merge of|Merge pull request) ##{Regexp.union(*prs)}/ }
54
+
55
+ unless system("git", "cherry-pick", "-x", "-m", "1", *commits.map(&:first))
56
+ abort unless system("zsh")
57
+ end
58
+
59
+ sh(Gem.ruby, File.expand_path("../update_changelog.rb", __FILE__))
60
+
61
+ version_file = "lib/rubygems.rb"
62
+ version_contents = File.read(version_file)
63
+ unless version_contents.sub!(/^(\s*VERSION = )(["'])#{Gem::Version::VERSION_PATTERN}\2/, "\\1#{version.to_s.dump}")
64
+ abort "failed to update #{version_file}, is it in the expected format?"
65
+ end
66
+ File.open(version_file, "w") {|f| f.write(version_contents) }
67
+
68
+ confirm "Update changelog"
69
+ sh("git", "commit", "-am", "Version #{version} with changelog")
70
+ sh("rake", "release", "VERSION=#{version}")
71
+ sh("git", "checkout", "master")
72
+ sh("git", "pull")
73
+ unless system("git", "merge", "v#{version}", "--no-edit")
74
+ abort unless system("zsh")
75
+ end
76
+ sh("git", "push")
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'json'
4
+ require 'net/http'
5
+
6
+ def access_token_query_string
7
+ @access_token_query_string ||= begin
8
+ token = ENV['GITHUB_API_TOKEN']
9
+ token ? "?access_token=#{token.strip}" : ''
10
+ end
11
+ end
12
+
13
+ def github_api(path)
14
+ base = 'https://api.github.com'
15
+ url = path.start_with?(base) ? path : base + path
16
+ url += access_token_query_string
17
+ uri = URI.parse(url)
18
+ return unless response = Net::HTTP.get_response(uri)
19
+ JSON.load(response.body)
20
+ end
21
+
22
+ def wrap(text, length, indent)
23
+ result = []
24
+ work = text.dup
25
+
26
+ while work.length > length
27
+ if work =~ /^(.{0,#{length}})[ \n]/o
28
+ result << $1
29
+ work.slice!(0, $&.length)
30
+ else
31
+ result << work.slice!(0, length)
32
+ end
33
+ end
34
+
35
+ result << work unless work.empty?
36
+ result = result.reduce(String.new) do |acc, elem|
37
+ acc << "\n" << ' ' * indent unless acc.empty?
38
+ acc << elem
39
+ end
40
+ result += "\n" unless result.end_with?("\n")
41
+ result
42
+ end
43
+
44
+ def sentence(text)
45
+ text = text[0].upcase + text[1..-1]
46
+ text.end_with?('.') ? text : text << '.'
47
+ end
48
+
49
+ branch = ARGV.shift || "HEAD"
50
+
51
+ history = File.read(File.expand_path('../../History.txt', __FILE__))
52
+
53
+ File.open(File.expand_path('../../ChangeLog', __FILE__), 'w') do |changelog|
54
+ commits = `git log --oneline v#{Gem::VERSION}..#{branch}`.split("\n")
55
+ prs = commits.reverse_each.map { |c| c =~ /(Auto merge of|Merge pull request) #(\d+)/ && $2 }.compact
56
+ prs.each do |pr|
57
+ next if history =~ /Pull\srequest\s##{pr}/m
58
+ details = github_api "/repos/rubygems/rubygems/pulls/#{pr}"
59
+ title, user = details.values_at('title', 'user')
60
+ user = github_api(user['url'])
61
+ name = user['name'] || user['login']
62
+ changelog << wrap(
63
+ ['*', sentence(title), sentence("Pull request ##{pr} by #{name}")].join(' '),
64
+ 74, 2
65
+ )
66
+ end
67
+ end
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: 2.6.9
4
+ version: 2.6.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-01-20 00:00:00.000000000 Z
13
+ date: 2017-01-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: builder
@@ -773,7 +773,9 @@ files:
773
773
  - util/create_certs.rb
774
774
  - util/create_encrypted_key.rb
775
775
  - util/generate_spdx_license_list.rb
776
+ - util/patch_with_prs.rb
776
777
  - util/update_bundled_ca_certificates.rb
778
+ - util/update_changelog.rb
777
779
  homepage: https://rubygems.org
778
780
  licenses:
779
781
  - Ruby
@@ -798,7 +800,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
798
800
  version: '0'
799
801
  requirements: []
800
802
  rubyforge_project:
801
- rubygems_version: 2.6.8
803
+ rubygems_version: 2.6.9
802
804
  signing_key:
803
805
  specification_version: 4
804
806
  summary: RubyGems is a package management framework for Ruby