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.
- data.tar.gz.sig +0 -0
- data/ChangeLog +79 -0
- data/README +1 -3
- data/Rakefile +61 -49
- data/doc/release_notes/docs-rubygems-announce.rdoc +29 -0
- data/doc/release_notes/rel_0_2_0.rdoc +4 -0
- data/doc/release_notes/rel_0_3_0.rdoc +21 -0
- data/doc/release_notes/rel_0_4_0.rdoc +4 -0
- data/doc/release_notes/rel_0_5_0.rdoc +26 -0
- data/doc/release_notes/rel_0_6_0.rdoc +16 -0
- data/doc/release_notes/rel_0_7_0.rdoc +4 -0
- data/doc/release_notes/rel_0_8_0.rdoc +23 -0
- data/doc/release_notes/rel_0_8_1.rdoc +4 -0
- data/doc/release_notes/rel_0_8_10.rdoc +70 -0
- data/doc/release_notes/rel_0_8_11.rdoc +102 -0
- data/doc/release_notes/rel_0_8_3.rdoc +113 -0
- data/doc/release_notes/rel_0_8_4.rdoc +51 -0
- data/doc/release_notes/rel_0_8_5.rdoc +117 -0
- data/doc/release_notes/rel_0_8_7.rdoc +135 -0
- data/doc/release_notes/rel_0_9_0.rdoc +109 -0
- data/doc/release_notes/rel_0_9_2.rdoc +69 -0
- data/doc/release_notes/rel_0_9_3.rdoc +66 -0
- data/doc/release_notes/rel_0_9_4.rdoc +67 -0
- data/doc/release_notes/rel_0_9_5.rdoc +108 -0
- data/doc/release_notes/rel_1_0_0.rdoc +67 -0
- data/doc/release_notes/rel_1_0_1.rdoc +56 -0
- data/doc/release_notes/rel_1_1_0.rdoc +85 -0
- data/doc/release_notes/rel_1_1_1.rdoc +64 -0
- data/lib/rubygems.rb +29 -5
- data/lib/rubygems/command_manager.rb +1 -1
- data/lib/rubygems/commands/environment_command.rb +1 -1
- data/lib/rubygems/commands/pristine_command.rb +1 -0
- data/lib/rubygems/commands/query_command.rb +4 -2
- data/lib/rubygems/commands/update_command.rb +7 -4
- data/lib/rubygems/dependency_installer.rb +8 -2
- data/lib/rubygems/doc_manager.rb +6 -0
- data/lib/rubygems/indexer.rb +1 -1
- data/lib/rubygems/remote_fetcher.rb +3 -1
- data/lib/rubygems/rubygems_version.rb +1 -1
- data/lib/rubygems/server.rb +5 -5
- data/lib/rubygems/source_index.rb +7 -14
- data/lib/rubygems/source_info_cache.rb +29 -10
- data/lib/rubygems/version_option.rb +1 -2
- data/setup.rb +33 -19
- data/test/gemutilities.rb +13 -0
- data/test/test_gem.rb +58 -21
- data/test/test_gem_commands_environment_command.rb +1 -1
- data/test/test_gem_commands_query_command.rb +6 -4
- data/test/test_gem_commands_update_command.rb +1 -0
- data/test/test_gem_dependency_installer.rb +2 -0
- data/test/test_gem_remote_fetcher.rb +3 -2
- data/test/test_gem_server.rb +1 -1
- data/test/test_gem_source_index.rb +16 -0
- data/test/test_gem_source_info_cache.rb +22 -1
- metadata +32 -32
- metadata.gz.sig +2 -2
- data/doc/doc.css +0 -73
- data/doc/makedoc.rb +0 -10
- data/examples/application/an-app.gemspec +0 -30
- data/examples/application/bin/myapp +0 -3
- data/examples/application/ext/Makefile +0 -139
- data/examples/application/ext/extconf.rb +0 -3
- data/examples/application/ext/foo.c +0 -1
- data/examples/application/lib/somefunctionality.rb +0 -9
- data/gemspecs/README +0 -4
- data/gemspecs/cgikit-1.1.0.gemspec +0 -17
- data/gemspecs/jabber4r.gemspec +0 -26
- data/gemspecs/linguistics.gemspec +0 -22
- data/gemspecs/ook.gemspec +0 -21
- data/gemspecs/progressbar.gemspec +0 -22
- data/gemspecs/redcloth.gemspec +0 -22
- data/gemspecs/rublog.gemspec +0 -23
- data/gemspecs/ruby-doom.gemspec +0 -21
- data/gemspecs/rubyjdwp.gemspec +0 -21
- data/gemspecs/statistics.gemspec +0 -21
- data/redist/session.gem +0 -433
@@ -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}
|
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
|
@@ -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
|
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,
|
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
|
-
|
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 != ">="
|
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
|
-
|
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,
|
data/lib/rubygems/doc_manager.rb
CHANGED
data/lib/rubygems/indexer.rb
CHANGED
@@ -85,7 +85,7 @@ class Gem::Indexer
|
|
85
85
|
progress.updated spec.original_name
|
86
86
|
|
87
87
|
rescue SignalException => e
|
88
|
-
alert_error "
|
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
|
data/lib/rubygems/server.rb
CHANGED
@@ -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=\"
|
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=\"
|
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
|
-
#
|
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
|
-
#
|
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
|
26
|
-
# @source_index
|
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
|
-
|
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
|
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
|
-
|
354
|
-
io
|
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
|
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
|
-
|
13
|
-
|
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.
|
58
|
+
required_version = Gem::Version::Requirement.create("> 1.8.3")
|
56
59
|
|
57
|
-
unless required_version.satisfied_by? Gem
|
58
|
-
abort "Expected Ruby version #{required_version}, was #{
|
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 =
|
68
|
-
bin_dir =
|
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
|
-
|
85
|
-
|
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
|
-
|
88
|
-
|
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
|
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
|
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
|
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
|