rubygems-update 1.1.0 → 1.1.1

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.

Potentially problematic release.


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

Files changed (76) hide show
  1. data.tar.gz.sig +0 -0
  2. data/ChangeLog +79 -0
  3. data/README +1 -3
  4. data/Rakefile +61 -49
  5. data/doc/release_notes/docs-rubygems-announce.rdoc +29 -0
  6. data/doc/release_notes/rel_0_2_0.rdoc +4 -0
  7. data/doc/release_notes/rel_0_3_0.rdoc +21 -0
  8. data/doc/release_notes/rel_0_4_0.rdoc +4 -0
  9. data/doc/release_notes/rel_0_5_0.rdoc +26 -0
  10. data/doc/release_notes/rel_0_6_0.rdoc +16 -0
  11. data/doc/release_notes/rel_0_7_0.rdoc +4 -0
  12. data/doc/release_notes/rel_0_8_0.rdoc +23 -0
  13. data/doc/release_notes/rel_0_8_1.rdoc +4 -0
  14. data/doc/release_notes/rel_0_8_10.rdoc +70 -0
  15. data/doc/release_notes/rel_0_8_11.rdoc +102 -0
  16. data/doc/release_notes/rel_0_8_3.rdoc +113 -0
  17. data/doc/release_notes/rel_0_8_4.rdoc +51 -0
  18. data/doc/release_notes/rel_0_8_5.rdoc +117 -0
  19. data/doc/release_notes/rel_0_8_7.rdoc +135 -0
  20. data/doc/release_notes/rel_0_9_0.rdoc +109 -0
  21. data/doc/release_notes/rel_0_9_2.rdoc +69 -0
  22. data/doc/release_notes/rel_0_9_3.rdoc +66 -0
  23. data/doc/release_notes/rel_0_9_4.rdoc +67 -0
  24. data/doc/release_notes/rel_0_9_5.rdoc +108 -0
  25. data/doc/release_notes/rel_1_0_0.rdoc +67 -0
  26. data/doc/release_notes/rel_1_0_1.rdoc +56 -0
  27. data/doc/release_notes/rel_1_1_0.rdoc +85 -0
  28. data/doc/release_notes/rel_1_1_1.rdoc +64 -0
  29. data/lib/rubygems.rb +29 -5
  30. data/lib/rubygems/command_manager.rb +1 -1
  31. data/lib/rubygems/commands/environment_command.rb +1 -1
  32. data/lib/rubygems/commands/pristine_command.rb +1 -0
  33. data/lib/rubygems/commands/query_command.rb +4 -2
  34. data/lib/rubygems/commands/update_command.rb +7 -4
  35. data/lib/rubygems/dependency_installer.rb +8 -2
  36. data/lib/rubygems/doc_manager.rb +6 -0
  37. data/lib/rubygems/indexer.rb +1 -1
  38. data/lib/rubygems/remote_fetcher.rb +3 -1
  39. data/lib/rubygems/rubygems_version.rb +1 -1
  40. data/lib/rubygems/server.rb +5 -5
  41. data/lib/rubygems/source_index.rb +7 -14
  42. data/lib/rubygems/source_info_cache.rb +29 -10
  43. data/lib/rubygems/version_option.rb +1 -2
  44. data/setup.rb +33 -19
  45. data/test/gemutilities.rb +13 -0
  46. data/test/test_gem.rb +58 -21
  47. data/test/test_gem_commands_environment_command.rb +1 -1
  48. data/test/test_gem_commands_query_command.rb +6 -4
  49. data/test/test_gem_commands_update_command.rb +1 -0
  50. data/test/test_gem_dependency_installer.rb +2 -0
  51. data/test/test_gem_remote_fetcher.rb +3 -2
  52. data/test/test_gem_server.rb +1 -1
  53. data/test/test_gem_source_index.rb +16 -0
  54. data/test/test_gem_source_info_cache.rb +22 -1
  55. metadata +32 -32
  56. metadata.gz.sig +2 -2
  57. data/doc/doc.css +0 -73
  58. data/doc/makedoc.rb +0 -10
  59. data/examples/application/an-app.gemspec +0 -30
  60. data/examples/application/bin/myapp +0 -3
  61. data/examples/application/ext/Makefile +0 -139
  62. data/examples/application/ext/extconf.rb +0 -3
  63. data/examples/application/ext/foo.c +0 -1
  64. data/examples/application/lib/somefunctionality.rb +0 -9
  65. data/gemspecs/README +0 -4
  66. data/gemspecs/cgikit-1.1.0.gemspec +0 -17
  67. data/gemspecs/jabber4r.gemspec +0 -26
  68. data/gemspecs/linguistics.gemspec +0 -22
  69. data/gemspecs/ook.gemspec +0 -21
  70. data/gemspecs/progressbar.gemspec +0 -22
  71. data/gemspecs/redcloth.gemspec +0 -22
  72. data/gemspecs/rublog.gemspec +0 -23
  73. data/gemspecs/ruby-doom.gemspec +0 -21
  74. data/gemspecs/rubyjdwp.gemspec +0 -21
  75. data/gemspecs/statistics.gemspec +0 -21
  76. data/redist/session.gem +0 -433
@@ -93,7 +93,7 @@ module Gem
93
93
  say Gem::Command::HELP
94
94
  terminate_interaction(0)
95
95
  when '-v', '--version'
96
- say Gem::RubyGemsPackageVersion
96
+ say Gem::RubyGemsVersion
97
97
  terminate_interaction(0)
98
98
  when /^-/
99
99
  alert_error "Invalid option: #{args[0]}. See 'gem --help'."
@@ -39,7 +39,7 @@ class Gem::Commands::EnvironmentCommand < Gem::Command
39
39
  when nil then
40
40
  out = "RubyGems Environment:\n"
41
41
 
42
- out << " - RUBYGEMS VERSION: #{Gem::RubyGemsVersion} (#{Gem::RubyGemsPackageVersion})\n"
42
+ out << " - RUBYGEMS VERSION: #{Gem::RubyGemsVersion}\n"
43
43
 
44
44
  out << " - RUBY VERSION: #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}"
45
45
  out << " patchlevel #{RUBY_PATCHLEVEL}" if defined? RUBY_PATCHLEVEL
@@ -126,6 +126,7 @@ revert the gem.
126
126
  end
127
127
 
128
128
  installer.generate_bin
129
+ installer.build_extensions
129
130
  end
130
131
  end
131
132
 
@@ -82,13 +82,15 @@ class Gem::Commands::QueryCommand < Gem::Command
82
82
  say "*** REMOTE GEMS ***"
83
83
  say
84
84
 
85
+ all = options[:all]
86
+
85
87
  begin
86
- Gem::SourceInfoCache.cache options[:all]
88
+ Gem::SourceInfoCache.cache all
87
89
  rescue Gem::RemoteFetcher::FetchError
88
90
  # no network
89
91
  end
90
92
 
91
- output_query_results Gem::SourceInfoCache.search(name, false, true)
93
+ output_query_results Gem::SourceInfoCache.search(name, false, all)
92
94
  end
93
95
  end
94
96
 
@@ -58,7 +58,7 @@ class Gem::Commands::UpdateCommand < Gem::Command
58
58
  say "Updating installed gems"
59
59
  end
60
60
 
61
- hig = {}
61
+ hig = {} # highest installed gems
62
62
 
63
63
  Gem::SourceIndex.from_installed_gems.each do |name, spec|
64
64
  if hig[spec.name].nil? or hig[spec.name].version < spec.version then
@@ -67,7 +67,7 @@ class Gem::Commands::UpdateCommand < Gem::Command
67
67
  end
68
68
 
69
69
  pattern = if options[:args].empty? then
70
- //
70
+ //
71
71
  else
72
72
  Regexp.union(*options[:args])
73
73
  end
@@ -78,12 +78,14 @@ class Gem::Commands::UpdateCommand < Gem::Command
78
78
 
79
79
  updated = []
80
80
 
81
- # HACK use the real API
81
+ installer = Gem::DependencyInstaller.new options
82
+
82
83
  gems_to_update.uniq.sort.each do |name|
83
84
  next if updated.any? { |spec| spec.name == name }
85
+
84
86
  say "Updating #{name}"
85
- installer = Gem::DependencyInstaller.new options
86
87
  installer.install name
88
+
87
89
  installer.installed_gems.each do |spec|
88
90
  updated << spec
89
91
  say "Successfully installed #{spec.full_name}"
@@ -115,6 +117,7 @@ class Gem::Commands::UpdateCommand < Gem::Command
115
117
  args.push '--prefix', Gem.prefix unless Gem.prefix.nil?
116
118
  args << '--no-rdoc' unless options[:generate_rdoc]
117
119
  args << '--no-ri' unless options[:generate_ri]
120
+ args << '--no-format-executable' if options[:no_format_executable]
118
121
 
119
122
  update_dir = File.join Gem.dir, 'gems', "rubygems-update-#{version}"
120
123
 
@@ -72,7 +72,7 @@ class Gem::DependencyInstaller
72
72
  end
73
73
 
74
74
  all = requirements.length > 1 ||
75
- requirements.first != ">=" || requirements.first != ">"
75
+ (requirements.first != ">=" and requirements.first != ">")
76
76
 
77
77
  found = Gem::SourceInfoCache.search_with_source dep, true, all
78
78
 
@@ -189,7 +189,13 @@ class Gem::DependencyInstaller
189
189
  say "Installing gem #{spec.full_name}" if Gem.configuration.really_verbose
190
190
 
191
191
  _, source_uri = @specs_and_sources.assoc spec
192
- local_gem_path = Gem::RemoteFetcher.fetcher.download spec, source_uri
192
+ begin
193
+ local_gem_path = Gem::RemoteFetcher.fetcher.download spec, source_uri,
194
+ @install_dir
195
+ rescue Gem::RemoteFetcher::FetchError
196
+ next if @force
197
+ raise
198
+ end
193
199
 
194
200
  inst = Gem::Installer.new local_gem_path,
195
201
  :env_shebang => @env_shebang,
@@ -64,6 +64,12 @@ module Gem
64
64
 
65
65
  FileUtils.mkdir_p @doc_dir unless File.exist?(@doc_dir)
66
66
 
67
+ begin
68
+ gem 'rdoc'
69
+ rescue Gem::LoadError
70
+ # use built-in RDoc
71
+ end
72
+
67
73
  begin
68
74
  require 'rdoc/rdoc'
69
75
  rescue LoadError => e
@@ -85,7 +85,7 @@ class Gem::Indexer
85
85
  progress.updated spec.original_name
86
86
 
87
87
  rescue SignalException => e
88
- alert_error "Recieved signal, exiting"
88
+ alert_error "Received signal, exiting"
89
89
  raise
90
90
  rescue Exception => e
91
91
  alert_error "Unable to process #{gemfile}\n#{e.message} (#{e.class})\n\t#{e.backtrace.join "\n\t"}"
@@ -236,11 +236,13 @@ class Gem::RemoteFetcher
236
236
  request.add_field 'Keep-Alive', '30'
237
237
 
238
238
  # HACK work around EOFError bug in Net::HTTP
239
+ # NOTE Errno::ECONNABORTED raised a lot on Windows, and make impossible
240
+ # to install gems.
239
241
  retried = false
240
242
  begin
241
243
  @requests[connection_id] += 1
242
244
  response = connection.request(request)
243
- rescue EOFError
245
+ rescue EOFError, Errno::ECONNABORTED
244
246
  requests = @requests[connection_id]
245
247
  say "connection reset after #{requests} requests, retrying" if
246
248
  Gem.configuration.really_verbose
@@ -2,5 +2,5 @@
2
2
  # This file is auto-generated by build scripts.
3
3
  # See: rake update_version
4
4
  module Gem
5
- RubyGemsVersion = '1.1.0'
5
+ RubyGemsVersion = '1.1.1'
6
6
  end
@@ -29,7 +29,7 @@ class Gem::Server
29
29
 
30
30
  DOC_TEMPLATE = <<-'WEBPAGE'
31
31
  <?xml version="1.0" encoding="iso-8859-1"?>
32
- <!DOCTYPE html
32
+ <!DOCTYPE html
33
33
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
34
34
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
35
35
 
@@ -51,7 +51,7 @@ class Gem::Server
51
51
  <h1>Summary</h1>
52
52
  <p>There are <%=values["gem_count"]%> gems installed:</p>
53
53
  <p>
54
- <%= values["specs"].map { |v| "<a href=\"#{v["name"]}\">#{v["name"]}</a>" }.join ', ' %>.
54
+ <%= values["specs"].map { |v| "<a href=\"##{v["name"]}\">#{v["name"]}</a>" }.join ', ' %>.
55
55
  <h1>Gems</h1>
56
56
 
57
57
  <dl>
@@ -77,7 +77,7 @@ class Gem::Server
77
77
 
78
78
  <% if spec["has_deps"] then %>
79
79
  - depends on
80
- <%= spec["dependencies"].map { |v| "<a href=\"#{v["name"]}\">#{v["name"]}</a>" }.join ', ' %>.
80
+ <%= spec["dependencies"].map { |v| "<a href=\"##{v["name"]}\">#{v["name"]}</a>" }.join ', ' %>.
81
81
  <% end %>
82
82
  </dt>
83
83
  <dd>
@@ -91,8 +91,8 @@ class Gem::Server
91
91
  Executables are
92
92
  <%end%>
93
93
 
94
- <%= spec["executables"].map { |v| "<span class=\"context-item-name\">#{v["executable"]}</span>"}.join ', ' %>.
95
-
94
+ <%= spec["executables"].map { |v| "<span class=\"context-item-name\">#{v["executable"]}</span>"}.join ', ' %>.
95
+
96
96
  <%end%>
97
97
  <br/>
98
98
  <br/>
@@ -25,6 +25,8 @@ class Gem::SourceIndex
25
25
 
26
26
  include Gem::UserInteraction
27
27
 
28
+ attr_reader :gems # :nodoc:
29
+
28
30
  class << self
29
31
  include Gem::UserInteraction
30
32
 
@@ -50,14 +52,10 @@ class Gem::SourceIndex
50
52
  end
51
53
 
52
54
  ##
53
- # Return a list of directories in the current gem path that
54
- # contain specifications.
55
- #
56
- # return::
57
- # List of directory paths (all ending in "../specifications").
55
+ # Returns a list of directories from Gem.path that contain specifications.
58
56
 
59
57
  def installed_spec_directories
60
- Gem.path.collect { |dir| File.join(dir, "specifications") }
58
+ Gem.path.collect { |dir| File.join(dir, "specifications") }
61
59
  end
62
60
 
63
61
  ##
@@ -272,12 +270,11 @@ class Gem::SourceIndex
272
270
  end
273
271
 
274
272
  ##
275
- # Refresh the source index from the local file system.
276
- #
277
- # return:: Returns a pointer to itself.
273
+ # Replaces the gems in the source index from specifications in the
274
+ # installed_spec_directories,
278
275
 
279
276
  def refresh!
280
- load_gems_in(self.class.installed_spec_directories)
277
+ load_gems_in(*self.class.installed_spec_directories)
281
278
  end
282
279
 
283
280
  ##
@@ -347,10 +344,6 @@ class Gem::SourceIndex
347
344
  Marshal.dump(self)
348
345
  end
349
346
 
350
- protected
351
-
352
- attr_reader :gems
353
-
354
347
  private
355
348
 
356
349
  def fetcher
@@ -22,8 +22,8 @@ require 'rubygems/user_interaction'
22
22
  # Gem::SourceInfoCache
23
23
  # @cache_data = {
24
24
  # source_uri => Gem::SourceInfoCacheEntry
25
- # @size => source index size
26
- # @source_index => Gem::SourceIndex
25
+ # @size = source index size
26
+ # @source_index = Gem::SourceIndex
27
27
  # ...
28
28
  # }
29
29
 
@@ -177,13 +177,30 @@ class Gem::SourceInfoCache
177
177
  self.class.latest_user_cache_file
178
178
  end
179
179
 
180
+ ##
181
+ # Merges the complete cache file into this Gem::SourceInfoCache.
182
+
180
183
  def read_all_cache_data
181
184
  if @only_latest then
182
185
  @only_latest = false
183
- @cache_data = read_cache_data cache_file
186
+ all_data = read_cache_data cache_file
187
+
188
+ cache_data.update all_data do |source_uri, latest_sice, all_sice|
189
+ all_sice.source_index.gems.update latest_sice.source_index.gems
190
+
191
+ Gem::SourceInfoCacheEntry.new all_sice.source_index, latest_sice.size
192
+ end
193
+
194
+ begin
195
+ refresh true
196
+ rescue Gem::RemoteFetcher::FetchError
197
+ end
184
198
  end
185
199
  end
186
200
 
201
+ ##
202
+ # Reads cached data from +file+.
203
+
187
204
  def read_cache_data(file)
188
205
  # Marshal loads 30-40% faster from a String, and 2MB on 20061116 is small
189
206
  data = open file, 'rb' do |fp| fp.read end
@@ -205,6 +222,8 @@ class Gem::SourceInfoCache
205
222
  end
206
223
 
207
224
  cache_data
225
+ rescue Errno::ENOENT
226
+ {}
208
227
  rescue => e
209
228
  if Gem.configuration.really_verbose then
210
229
  say "Exception during cache_data handling: #{e.class} - #{e}"
@@ -245,6 +264,7 @@ class Gem::SourceInfoCache
245
264
 
246
265
  def reset_cache_data
247
266
  @cache_data = nil
267
+ @only_latest = true
248
268
  end
249
269
 
250
270
  ##
@@ -324,10 +344,7 @@ class Gem::SourceInfoCache
324
344
  end
325
345
  end
326
346
 
327
- if File.writable? dir then
328
- open path, "wb" do |io| io.write Marshal.dump({}) end
329
- return path
330
- end
347
+ return path if File.writable? dir
331
348
 
332
349
  nil
333
350
  end
@@ -347,11 +364,13 @@ class Gem::SourceInfoCache
347
364
  end
348
365
 
349
366
  ##
350
- # Write data to the proper cache.
367
+ # Write data to the proper cache files.
351
368
 
352
369
  def write_cache
353
- open cache_file, 'wb' do |io|
354
- io.write Marshal.dump(cache_data)
370
+ if not File.exist?(cache_file) or not @only_latest then
371
+ open cache_file, 'wb' do |io|
372
+ io.write Marshal.dump(cache_data)
373
+ end
355
374
  end
356
375
 
357
376
  open latest_cache_file, 'wb' do |io|
@@ -23,8 +23,7 @@ module Gem::VersionOption
23
23
  "Specify the platform of gem to #{task}", *wrap) do
24
24
  |value, options|
25
25
  unless options[:added_platform] then
26
- Gem.platforms.clear
27
- Gem.platforms << Gem::Platform::RUBY
26
+ Gem.platforms = [Gem::Platform::RUBY]
28
27
  options[:added_platform] = true
29
28
  end
30
29
 
data/setup.rb CHANGED
@@ -9,8 +9,11 @@
9
9
  if ENV['RUBYOPT'] and defined? Gem then
10
10
  ENV.delete 'RUBYOPT'
11
11
 
12
- ruby = File.join Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']
13
- ruby << Config::CONFIG['EXEEXT']
12
+ require 'rbconfig'
13
+ config = defined?(RbConfig) ? RbConfig : Config
14
+
15
+ ruby = File.join config::CONFIG['bindir'], config::CONFIG['ruby_install_name']
16
+ ruby << config::CONFIG['EXEEXT']
14
17
 
15
18
  exec(ruby, 'setup.rb', *ARGV)
16
19
  end
@@ -52,10 +55,10 @@ include FileUtils::Verbose
52
55
 
53
56
  # check ruby version
54
57
 
55
- required_version = Gem::Version::Requirement.create("> 1.8.2")
58
+ required_version = Gem::Version::Requirement.create("> 1.8.3")
56
59
 
57
- unless required_version.satisfied_by? Gem::Version.new(RUBY_VERSION) then
58
- abort "Expected Ruby version #{required_version}, was #{RUBY_VERSION}"
60
+ unless required_version.satisfied_by? Gem.ruby_version then
61
+ abort "Expected Ruby version #{required_version}, was #{Gem.ruby_version}"
59
62
  end
60
63
 
61
64
  # install stuff
@@ -64,8 +67,8 @@ lib_dir = nil
64
67
  bin_dir = nil
65
68
 
66
69
  if ARGV.grep(/^--prefix/).empty? then
67
- lib_dir = Config::CONFIG['sitelibdir']
68
- bin_dir = Config::CONFIG['bindir']
70
+ lib_dir = Gem::ConfigMap[:sitelibdir]
71
+ bin_dir = Gem::ConfigMap[:bindir]
69
72
  else
70
73
  prefix = nil
71
74
 
@@ -81,11 +84,22 @@ else
81
84
 
82
85
  raise "invalid --prefix #{prefix.inspect}" if prefix.nil?
83
86
 
84
- lib_dir = File.join prefix, 'lib'
85
- bin_dir = File.join prefix, 'bin'
87
+ # Apple installed RubyGems into libdir, and RubyGems <= 1.1.0 gets confused
88
+ # about installation location, so switch back to sitelibdir.
89
+ if defined?(APPLE_GEM_HOME) and
90
+ # just in case Apple and RubyGems don't get this patched up proper.
91
+ (prefix == Gem::ConfigMap[:libdir] or
92
+ # this one is important
93
+ prefix == File.join(Gem::ConfigMap[:libdir], 'ruby')) then
94
+ lib_dir = Gem::ConfigMap[:sitelibdir]
95
+ bin_dir = Gem::ConfigMap[:bindir]
96
+ else
97
+ lib_dir = File.join prefix, 'lib'
98
+ bin_dir = File.join prefix, 'bin'
86
99
 
87
- mkdir_p lib_dir
88
- mkdir_p bin_dir
100
+ mkdir_p lib_dir
101
+ mkdir_p bin_dir
102
+ end
89
103
  end
90
104
 
91
105
  Dir.chdir 'lib' do
@@ -200,8 +214,12 @@ rm_f system_cache_file if File.writable? File.dirname(system_cache_file)
200
214
  # install RDoc
201
215
 
202
216
  gem_doc_dir = File.join Gem.dir, 'doc'
217
+ rubygems_name = "rubygems-#{Gem::RubyGemsVersion}"
218
+ rubygems_doc_dir = File.join gem_doc_dir, rubygems_name
203
219
 
204
- if File.writable? gem_doc_dir then
220
+ if File.writable? gem_doc_dir and
221
+ (not File.exist? rubygems_doc_dir or
222
+ File.writable? rubygems_doc_dir) then
205
223
  puts "Removing old RubyGems RDoc and ri"
206
224
  Dir[File.join(Gem.dir, 'doc', 'rubygems-[0-9]*')].each do |dir|
207
225
  rm_rf dir
@@ -216,18 +234,14 @@ if File.writable? gem_doc_dir then
216
234
  r.document args
217
235
  end
218
236
 
219
- rubygems_name = "rubygems-#{Gem::RubyGemsVersion}"
220
-
221
- doc_dir = File.join Gem.dir, 'doc', rubygems_name
222
-
223
237
  unless ARGV.include? '--no-ri' then
224
- ri_dir = File.join doc_dir, 'ri'
238
+ ri_dir = File.join rubygems_doc_dir, 'ri'
225
239
  puts "Installing #{rubygems_name} ri into #{ri_dir}"
226
240
  run_rdoc '--ri', '--op', ri_dir
227
241
  end
228
242
 
229
243
  unless ARGV.include? '--no-rdoc' then
230
- rdoc_dir = File.join(doc_dir, 'rdoc')
244
+ rdoc_dir = File.join rubygems_doc_dir, 'rdoc'
231
245
  puts "Installing #{rubygems_name} rdoc into #{rdoc_dir}"
232
246
  run_rdoc '--op', rdoc_dir
233
247
  end
@@ -284,7 +298,7 @@ puts
284
298
  puts "-" * 78
285
299
  puts
286
300
 
287
- release_notes = File.join 'doc', 'release_notes',
301
+ release_notes = File.join File.dirname(__FILE__), 'doc', 'release_notes',
288
302
  "rel_#{Gem::RubyGemsVersion.gsub '.', '_'}.rdoc"
289
303
 
290
304
  if File.exist? release_notes then