rubygems-update 1.1.0 → 1.1.1

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.

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