rubygems-update 0.8.11 → 0.9.0
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.
- data/ChangeLog +199 -1
- data/README +6 -4
- data/Rakefile +46 -14
- data/bin/gem +6 -0
- data/bin/gem_mirror +7 -1
- data/bin/gem_server +3 -5
- data/bin/gemlock +127 -0
- data/bin/gemri +24 -0
- data/bin/gemwhich +39 -11
- data/bin/index_gem_repository.rb +280 -0
- data/bin/update_rubygems +6 -0
- data/doc/makedoc.rb +7 -1
- data/examples/application/lib/somefunctionality.rb +6 -0
- data/lib/gemconfigure.rb +6 -0
- data/lib/rbconfig/datadir.rb +24 -0
- data/lib/rubygems.rb +90 -24
- data/lib/rubygems/builder.rb +6 -0
- data/lib/rubygems/cmd_manager.rb +36 -30
- data/lib/rubygems/command.rb +90 -29
- data/lib/rubygems/config_file.rb +45 -2
- data/lib/rubygems/custom_require.rb +12 -6
- data/lib/rubygems/dependency_list.rb +6 -0
- data/lib/rubygems/doc_manager.rb +79 -34
- data/lib/rubygems/format.rb +6 -0
- data/lib/rubygems/gem_commands.rb +209 -88
- data/lib/rubygems/gem_openssl.rb +12 -0
- data/lib/rubygems/gem_runner.rb +25 -10
- data/lib/rubygems/incremental_fetcher.rb +136 -0
- data/lib/rubygems/installer.rb +103 -28
- data/lib/rubygems/loadpath_manager.rb +6 -0
- data/lib/rubygems/old_format.rb +6 -0
- data/lib/rubygems/open-uri.rb +231 -79
- data/lib/rubygems/package.rb +5 -3
- data/lib/rubygems/remote_installer.rb +89 -52
- data/lib/rubygems/rubygems_version.rb +1 -1
- data/lib/rubygems/security.rb +6 -0
- data/lib/rubygems/source_index.rb +115 -52
- data/lib/rubygems/specification.rb +92 -76
- data/lib/rubygems/timer.rb +6 -0
- data/lib/rubygems/user_interaction.rb +88 -4
- data/lib/rubygems/validator.rb +6 -0
- data/lib/rubygems/version.rb +6 -0
- data/lib/ubygems.rb +6 -0
- data/post-install.rb +6 -0
- data/scripts/buildtests.rb +6 -0
- data/scripts/gemdoc.rb +6 -0
- data/scripts/runtest.rb +6 -0
- data/scripts/specdoc.rb +6 -0
- data/scripts/upload_gemdoc.rb +6 -0
- data/test/bogussources.rb +6 -2
- data/test/data/PostMessage-0.0.1.gem +0 -0
- data/test/data/a-0.0.1.gem +0 -0
- data/test/data/a-0.0.2.gem +0 -0
- data/test/data/b-0.0.2.gem +0 -0
- data/test/data/c-1.2.gem +0 -0
- data/test/data/gemhome/cache/a-0.0.1.gem +0 -0
- data/test/data/gemhome/cache/a-0.0.2.gem +0 -0
- data/test/data/gemhome/cache/b-0.0.2.gem +0 -0
- data/test/data/gemhome/cache/c-1.2.gem +0 -0
- data/test/data/gemhome/gems/a-0.0.1/lib/code.rb +6 -0
- data/test/data/gemhome/gems/a-0.0.2/lib/code.rb +6 -0
- data/test/data/gemhome/gems/b-0.0.2/lib/code.rb +6 -0
- data/test/data/gemhome/gems/c-1.2/lib/code.rb +6 -0
- data/test/data/gemhome/specifications/a-0.0.1.gemspec +1 -1
- data/test/data/gemhome/specifications/a-0.0.2.gemspec +1 -1
- data/test/data/gemhome/specifications/b-0.0.2.gemspec +1 -1
- data/test/data/gemhome/specifications/c-1.2.gemspec +1 -1
- data/test/data/lib/code.rb +6 -0
- data/test/data/one/lib/one.rb +6 -0
- data/test/data/one/one-0.0.1.gem +0 -0
- data/test/data/post_install.gemspec +19 -0
- data/test/fake_certlib/openssl.rb +6 -0
- data/test/functional.rb +15 -1
- data/test/functional_generate_yaml_index.rb +101 -0
- data/test/gemenvironment.rb +8 -0
- data/test/gemutilities.rb +18 -2
- data/test/insure_session.rb +6 -0
- data/test/mock/gems/gems/sources-0.0.1/lib/sources.rb +6 -0
- data/test/mockgemui.rb +6 -0
- data/test/onegem.rb +12 -0
- data/test/simple_gem.rb +6 -0
- data/test/test_builder.rb +6 -0
- data/test/test_cached_fetcher.rb +6 -0
- data/test/test_check_command.rb +6 -0
- data/test/test_command.rb +6 -0
- data/test/test_configfile.rb +6 -0
- data/test/test_datadir.rb +32 -0
- data/test/test_dependency_list.rb +6 -0
- data/test/test_file_list.rb +6 -0
- data/test/test_format.rb +6 -0
- data/test/test_gemloadpaths.rb +6 -0
- data/test/test_gempaths.rb +11 -1
- data/test/test_incremental_fetcher.rb +175 -0
- data/test/test_installer.rb +30 -3
- data/test/test_loadmanager.rb +6 -0
- data/test/test_local_cache.rb +8 -2
- data/test/test_package.rb +6 -0
- data/test/test_parse_commands.rb +8 -2
- data/test/test_process_commands.rb +31 -0
- data/test/test_remote_fetcher.rb +47 -5
- data/test/test_remote_installer.rb +6 -0
- data/test/test_require_gem.rb +6 -0
- data/test/test_source_index.rb +27 -0
- data/test/test_specific_extras.rb +6 -0
- data/test/test_specification.rb +30 -0
- data/test/test_validator.rb +6 -0
- data/test/test_version_comparison.rb +6 -0
- data/test/testgem.rc +1 -0
- data/test/user_capture.rb +6 -0
- data/test/yaml_data.rb +8 -4
- metadata +187 -173
- data/bin/generate_yaml_index.rb +0 -78
- data/lib/rubygems/deployment.rb +0 -267
- data/test/test_deployment.rb +0 -93
data/ChangeLog
CHANGED
|
@@ -1,3 +1,201 @@
|
|
|
1
|
+
2006-06-14 Jim Weirich <jim@weirichhouse.org>
|
|
2
|
+
|
|
3
|
+
* Rakefile (announce): Added 1.9 hack for ENV['CERT_DIR']. Remove
|
|
4
|
+
this in the future if 1.9 behavior changes.
|
|
5
|
+
|
|
6
|
+
2006-06-13 Jim Weirich <jim@weirichhouse.org>
|
|
7
|
+
|
|
8
|
+
* Rakefile: ENV['CERT_DIR'] is now '' rather than nil.
|
|
9
|
+
|
|
10
|
+
* lib/rubygems/specification.rb (Gem::Specification::initialize):
|
|
11
|
+
Eric added some 1.9 compatibility code (funcall vs send).
|
|
12
|
+
|
|
13
|
+
* lib/rubygems/package.rb (TarOutput::self): Eric added some 1.9
|
|
14
|
+
compatibility code (funcall vs send).
|
|
15
|
+
|
|
16
|
+
* experimental/deployment.rb (Gem::Deployment): Moved the
|
|
17
|
+
deployment code out of the live code base into the experimental
|
|
18
|
+
directory. The code wasn't used and the tests were not all
|
|
19
|
+
passing.
|
|
20
|
+
|
|
21
|
+
2006-06-11 Jim Weirich <jim@weirichhouse.org>
|
|
22
|
+
|
|
23
|
+
* bin/gemri: Added gemri to bin directory.
|
|
24
|
+
|
|
25
|
+
* lib/rubygems/custom_require.rb (Gem::GemPathSearcher::find):
|
|
26
|
+
Added .rbw to suffix pattern in custom_require.
|
|
27
|
+
|
|
28
|
+
2006-06-07 Jim Weirich <jim@weirichhouse.org>
|
|
29
|
+
|
|
30
|
+
* lib/rubygems.rb: Added copyright notices to all Ruby files.
|
|
31
|
+
|
|
32
|
+
2006-04-07 Jim Weirich <jim@weirichhouse.org>
|
|
33
|
+
|
|
34
|
+
* lib/rubygems/gem_commands.rb (Gem::RDocCommand::execute): Added
|
|
35
|
+
RI option to the rdoc subcommand.
|
|
36
|
+
|
|
37
|
+
2006-04-05 Jim Weirich <jim@weirichhouse.org>
|
|
38
|
+
|
|
39
|
+
* test/test_parse_commands.rb
|
|
40
|
+
(TestParseCommands::test_parsing_update_options): Fixed unit tests
|
|
41
|
+
to assert that the install dir is expanded.
|
|
42
|
+
|
|
43
|
+
* lib/rubygems/doc_manager.rb (Gem::DocManager::generate_ri):
|
|
44
|
+
Break out from generate_rdoc to support installing all RI docs
|
|
45
|
+
first.
|
|
46
|
+
|
|
47
|
+
* lib/rubygems/gem_commands.rb
|
|
48
|
+
(Gem::InstallUpdateOptions::add_install_update_options): Expanded
|
|
49
|
+
repository directory to absolute path.
|
|
50
|
+
(Gem::InstallCommand::execute): Make sure that *all* of the RI
|
|
51
|
+
documents are generated before generating any RDocs (due to a bug
|
|
52
|
+
in the RDoc library).
|
|
53
|
+
|
|
54
|
+
* lib/rubygems/installer.rb (Gem::ExtExtConfBuilder::self): Fixed
|
|
55
|
+
typo in ExtExtConfBuilder that prevented C based gems to install.
|
|
56
|
+
(Gem::ExtExtConfBuilder::self): Installed patch to prevent the
|
|
57
|
+
overriding of target_prefix in native extensions (thanks to Aaron
|
|
58
|
+
Patterson for the patch).
|
|
59
|
+
|
|
60
|
+
2006-04-04 Jim Weirich <jim@weirichhouse.org>
|
|
61
|
+
|
|
62
|
+
* lib/rubygems/rubygems_version.rb (Gem): Bumped to version
|
|
63
|
+
0.8.11.10.
|
|
64
|
+
|
|
65
|
+
* lib/rubygems/incremental_fetcher.rb
|
|
66
|
+
(Gem::IncrementalFetcher::update_cache): Now falls back to bulk
|
|
67
|
+
updates if the number of gems if over 50.
|
|
68
|
+
|
|
69
|
+
* lib/rubygems/remote_installer.rb
|
|
70
|
+
(Gem::RemoteSourceFetcher::source_index): Added "bulk" to the
|
|
71
|
+
update message to differentiate it from the incremental message.
|
|
72
|
+
|
|
73
|
+
* lib/rubygems/specification.rb
|
|
74
|
+
(Gem::Specification::Specification): Modified to add dashes to
|
|
75
|
+
gemspecs generated under Ruby 1.8.3. This makes it easier to run
|
|
76
|
+
RubyGems on a 1.8.2 system.
|
|
77
|
+
|
|
78
|
+
2006-04-01 Jim Weirich <jim@weirichhouse.org>
|
|
79
|
+
|
|
80
|
+
* lib/rubygems/doc_manager.rb (Gem::DocManager::run_rdoc): Changed
|
|
81
|
+
exception handler to print error message if document generation
|
|
82
|
+
fails, but then to continue with the rest of the installation.
|
|
83
|
+
Permission errors still terminate the install because if one
|
|
84
|
+
install fails because of permission problems, chances are that all
|
|
85
|
+
will fail.
|
|
86
|
+
(Gem::DocManager::install_ri): Removed wrapping of exceptions with
|
|
87
|
+
DocumentError. Most exceptions now don't propagate out of
|
|
88
|
+
run_rdoc.
|
|
89
|
+
(Gem::DocManager::install_rdoc): Removed wrapping of exceptions
|
|
90
|
+
with DocumentError. Most exceptions now don't propagate out of
|
|
91
|
+
run_rdoc.
|
|
92
|
+
|
|
93
|
+
2006-02-23 Jim Weirich <jim@weirichhouse.org>
|
|
94
|
+
|
|
95
|
+
* bin/index_gem_repository.rb (MasterIndexBuilder::cleanup): Fixed
|
|
96
|
+
bug where we were trying to read the index file (to compress it)
|
|
97
|
+
before it was closed, often leading to a truncated index file.
|
|
98
|
+
|
|
99
|
+
Tue Jan 24 16:26:13 2006 Chad Fowler <chad@chadfowler.com>
|
|
100
|
+
* lib/rubygems/config_file.rb
|
|
101
|
+
Luca Pireddu reported a fatal error when permissions on
|
|
102
|
+
.gemrc were too restrictive. Fixed.
|
|
103
|
+
|
|
104
|
+
Tue Dec 6 14:51:13 2005 Jim Weirich <jim@tardis>
|
|
105
|
+
|
|
106
|
+
* lib/rubygems/source_index.rb
|
|
107
|
+
(Gem::SourceIndex::load_specification): Added an untaint call to
|
|
108
|
+
make the code run in SAFE=1 mode under 1.8.3.
|
|
109
|
+
(Gem::SourceIndex::load_gems_in): Untaint here too.
|
|
110
|
+
|
|
111
|
+
* lib/rubygems/installer.rb (Gem::Installer::install): Untaint
|
|
112
|
+
here too.
|
|
113
|
+
(Gem::Installer::extract_files): Untaint here too.
|
|
114
|
+
|
|
115
|
+
* lib/rubygems/custom_require.rb
|
|
116
|
+
(Gem::GemPathSearcher::matching_file): Untaint here too.
|
|
117
|
+
|
|
118
|
+
* test/gemenvironment.rb: Added $SAFE=1 to the test environment to
|
|
119
|
+
make sure we can run in $SAFE mode.
|
|
120
|
+
|
|
121
|
+
2005-12-03 Jim Weirich <jim@tardis>
|
|
122
|
+
|
|
123
|
+
* lib/rubygems/rubygems_version.rb (Gem): Bumped version to
|
|
124
|
+
0.8.11.6'
|
|
125
|
+
|
|
126
|
+
* lib/rubygems/user_interaction.rb
|
|
127
|
+
(Gem::StreamUI::SimpleProgressReporter::done): Added several new
|
|
128
|
+
progress reporters.
|
|
129
|
+
|
|
130
|
+
* lib/rubygems/command.rb
|
|
131
|
+
(Gem::Command::specific_extra_args_hash): Added --verbose
|
|
132
|
+
processing.
|
|
133
|
+
|
|
134
|
+
* lib/rubygems/config_file.rb (Gem::ConfigFile::handle_arguments):
|
|
135
|
+
Added --traceback as alias for --backtrace (I always get them
|
|
136
|
+
confused).
|
|
137
|
+
(Gem::ConfigFile::initialize): Added a verbose option.
|
|
138
|
+
|
|
139
|
+
2005-11-28 Jim Weirich <jim@tardis>
|
|
140
|
+
|
|
141
|
+
* lib/rubygems/remote_installer.rb
|
|
142
|
+
(Gem::SourceInfoCacheEntry::replace_source_index): Fixed the
|
|
143
|
+
SourceIndexCacheEntry so that it will manufacture an empty source
|
|
144
|
+
index if given a nil value for the +si+ value.
|
|
145
|
+
|
|
146
|
+
2005-11-08 Chad Fowler <chad@chadfowler.com>
|
|
147
|
+
* lib/rubygems.rb: Ara Howard's fix to allow 0.0.0 to be a valid gem
|
|
148
|
+
version.
|
|
149
|
+
|
|
150
|
+
2005-11-08 Chad Fowler <chad@chadfowler.com>
|
|
151
|
+
* lib/rubygems/gem_commands.rb: Fixed bug in gem unpack. It was
|
|
152
|
+
sorting incorrectly, resulting in the wrong version being unpacked in
|
|
153
|
+
some edge cases. Thanks to Jakob Skjerning for the detailed bug report.
|
|
154
|
+
|
|
155
|
+
2005-11-03 Chad Fowler <chad@chadfowler.com>
|
|
156
|
+
* lib/rubygems/installer.rb: Fixed bug that would cause the executables
|
|
157
|
+
from the wrong gem to be uninstalled if the names matched the same
|
|
158
|
+
regex. Thanks Eric Hodel.
|
|
159
|
+
|
|
160
|
+
2005-11-01 Jim Weirich <jim@tardis>
|
|
161
|
+
* lib/rubygems/gem_commands.rb (Gem::UpdateCommand::initialize):
|
|
162
|
+
Upgrade => Update change.
|
|
163
|
+
(Gem::UpdateCommand::execute): Upgrade => Update change.
|
|
164
|
+
(Gem::UpdateCommand::execute): Upgrade => Update change.
|
|
165
|
+
|
|
166
|
+
2005-11-01 Chad Fowler <chad@chadfowler.com>
|
|
167
|
+
* lib/rubygems/gem_commands.rb: Allow gem unpack to accept a gem file
|
|
168
|
+
path instead of gem name: gem unpack mygem-1.0.0.gem.
|
|
169
|
+
|
|
170
|
+
2005-10-31 Chad Fowler <chad@chadfowler.com>
|
|
171
|
+
* lib/rubygems/installer.rb: Tilman Sauerbeck's patch to support
|
|
172
|
+
extensions built with Rake!
|
|
173
|
+
|
|
174
|
+
2005-09-13 Jim Weirich <jim@weirichhouse.org>
|
|
175
|
+
|
|
176
|
+
* lib/rubygems/package.rb (TarInput::initialize): Removed
|
|
177
|
+
requirement for SSL when signatures are found in a gem. Only
|
|
178
|
+
require SSL if the security policy requires checking the
|
|
179
|
+
signatures.
|
|
180
|
+
|
|
181
|
+
* lib/rubygems/custom_require.rb (Kernel::require): Disabled
|
|
182
|
+
autorequire during custom require.
|
|
183
|
+
|
|
184
|
+
2005-09-07 Jim Weirich <jim@weirichhouse.org>
|
|
185
|
+
|
|
186
|
+
* lib/rubygems/gem_openssl.rb (Gem::ensure_ssl_available): Added a
|
|
187
|
+
test in gem_openssl to make sure the ruby portion of ssl is also
|
|
188
|
+
loaded.
|
|
189
|
+
|
|
190
|
+
2005-08-31 Jim Weirich <jim@weirichhouse.org>
|
|
191
|
+
|
|
192
|
+
* Rakefile (install): Changed the rake install task to use setup.rb.
|
|
193
|
+
|
|
194
|
+
2005-07-08 Chad Fowler <chad@chadfowler.com>
|
|
195
|
+
|
|
196
|
+
* lib/rubygems/remote_installer.rb: Applied Daniel Roux's patch
|
|
197
|
+
to make RubyGems work with authenticating proxies.
|
|
198
|
+
|
|
1
199
|
2005-07-08 Jim Weirich <jim@weirichhouse.org>
|
|
2
200
|
|
|
3
201
|
* Preparing for release 0.8.11.
|
|
@@ -68,7 +266,7 @@
|
|
|
68
266
|
|
|
69
267
|
* lib/rubygems/gem_commands.rb
|
|
70
268
|
(Gem::UpdateCommand::do_rubygems_update): Update --system now runs
|
|
71
|
-
the ruby command directly rather than trying to load
|
|
269
|
+
the ruby command directly rather than trying to load the
|
|
72
270
|
update-rubygems command. There were too many things to go wrong
|
|
73
271
|
with the old way.
|
|
74
272
|
|
data/README
CHANGED
|
@@ -15,14 +15,14 @@ For more details and other options, see:
|
|
|
15
15
|
== For User Documentation, see
|
|
16
16
|
|
|
17
17
|
* {RubyGems User Guide}[http://docs.rubygems.org/read/book/1]
|
|
18
|
+
* {Frequently Asked Questions}[http://docs.rubygems.org/read/book/3]
|
|
18
19
|
|
|
19
20
|
== For developer docs see
|
|
20
21
|
|
|
21
|
-
* {
|
|
22
|
-
* {
|
|
23
|
-
* {GEM Specification}[http://rubygems.rubyforge.org/wiki/wiki.pl?GemSpecification]
|
|
22
|
+
* {Creating Gems}[http://docs.rubygems.org/read/chapter/5]
|
|
23
|
+
* {GEM Specification}[http://docs.rubygems.org/read/chapter/20]
|
|
24
24
|
|
|
25
|
-
== The home page of the RubyGems
|
|
25
|
+
== The home page of the RubyGems Documentation
|
|
26
26
|
|
|
27
27
|
* {RubyGems Home}[http://rubygems.rubyforge.org]
|
|
28
28
|
|
|
@@ -55,6 +55,8 @@ RubyGems was originally developed at RubyConf 2003 by:
|
|
|
55
55
|
* Dave Glasser -- glasser(at)mit.edu
|
|
56
56
|
* Paul Duncan -- pabs(at)pablotron.org
|
|
57
57
|
* Ville Aine -- vaine(at)cs.helsinki.fi
|
|
58
|
+
* Ryan Davis --
|
|
59
|
+
* Eric Hodel -- drbrain(at)segment7.net
|
|
58
60
|
|
|
59
61
|
|
|
60
62
|
(If your name is missing, PLEASE let us know!)
|
data/Rakefile
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Rakefile for RubyGems -*- ruby -*-
|
|
2
2
|
|
|
3
|
+
#--
|
|
4
|
+
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
|
|
5
|
+
# All rights reserved.
|
|
6
|
+
# See LICENSE.txt for permissions.
|
|
7
|
+
#++
|
|
8
|
+
|
|
3
9
|
require 'rubygems'
|
|
4
10
|
require 'rake/clean'
|
|
5
11
|
require 'rake/testtask'
|
|
@@ -11,6 +17,9 @@ def announce(msg='')
|
|
|
11
17
|
STDERR.puts msg
|
|
12
18
|
end
|
|
13
19
|
|
|
20
|
+
# Disable certs for now.
|
|
21
|
+
ENV.delete('CERT_DIR')
|
|
22
|
+
|
|
14
23
|
PKG_NAME = 'rubygems'
|
|
15
24
|
def package_version
|
|
16
25
|
`ruby -Ilib bin/gem environment packageversion`.chomp
|
|
@@ -29,7 +38,7 @@ CLOBBER.include(
|
|
|
29
38
|
"test/data/one/one-*0.0.1.gem",
|
|
30
39
|
"test/temp",
|
|
31
40
|
'test/data/gemhome',
|
|
32
|
-
'test/data
|
|
41
|
+
'test/data/[a-z]*.gem',
|
|
33
42
|
'scripts/*.hieraki',
|
|
34
43
|
'data__',
|
|
35
44
|
'html',
|
|
@@ -40,16 +49,17 @@ CLOBBER.include(
|
|
|
40
49
|
)
|
|
41
50
|
|
|
42
51
|
task :default => [:test]
|
|
52
|
+
task :test => [:test_units]
|
|
43
53
|
|
|
44
|
-
Rake::TestTask.new(:
|
|
54
|
+
Rake::TestTask.new(:test_units) do |t|
|
|
45
55
|
t.test_files = FileList['test/test*.rb']
|
|
46
56
|
end
|
|
47
57
|
|
|
48
|
-
Rake::TestTask.new(:
|
|
58
|
+
Rake::TestTask.new(:test_functional) do |t|
|
|
49
59
|
t.test_files = FileList['test/functional*.rb']
|
|
50
60
|
end
|
|
51
61
|
|
|
52
|
-
Rake::TestTask.new(:
|
|
62
|
+
Rake::TestTask.new(:test_all) do |t|
|
|
53
63
|
t.test_files = FileList['test/{test,functional}*.rb']
|
|
54
64
|
end
|
|
55
65
|
|
|
@@ -72,9 +82,9 @@ task :build_tests do
|
|
|
72
82
|
end
|
|
73
83
|
|
|
74
84
|
# Shortcuts for test targets
|
|
75
|
-
task :tf => [:
|
|
76
|
-
task :tu => [:
|
|
77
|
-
task :ta => [:
|
|
85
|
+
task :tf => [:test_functional]
|
|
86
|
+
task :tu => [:test_units]
|
|
87
|
+
task :ta => [:test_all]
|
|
78
88
|
|
|
79
89
|
task :gemtest do
|
|
80
90
|
ruby %{-Ilib -rscripts/runtest -e 'run_tests("test/test_gempaths.rb", true)'}
|
|
@@ -87,7 +97,7 @@ desc "Make a new release"
|
|
|
87
97
|
task :release => [
|
|
88
98
|
:prerelease,
|
|
89
99
|
:clobber,
|
|
90
|
-
:
|
|
100
|
+
:test_all,
|
|
91
101
|
:update_version,
|
|
92
102
|
:package,
|
|
93
103
|
:tag] do
|
|
@@ -149,7 +159,7 @@ task :update_version => [:prerelease] do
|
|
|
149
159
|
if ENV['RELTEST']
|
|
150
160
|
announce "Release Task Testing, skipping commiting of new version"
|
|
151
161
|
else
|
|
152
|
-
sh %{cvs commit -m "Updated to version #{PKG_VERSION}" lib/rubygems/rubygems_version.rb}
|
|
162
|
+
sh %{cvs commit -m "Updated to version #{PKG_VERSION}" lib/rubygems/rubygems_version.rb} # "
|
|
153
163
|
end
|
|
154
164
|
end
|
|
155
165
|
end
|
|
@@ -165,6 +175,26 @@ task :tag => [:prerelease] do
|
|
|
165
175
|
end
|
|
166
176
|
end
|
|
167
177
|
|
|
178
|
+
# --------------------------------------------------------------------
|
|
179
|
+
|
|
180
|
+
begin
|
|
181
|
+
require 'rcov/rcovtask'
|
|
182
|
+
HAVE_RCOV = true
|
|
183
|
+
rescue LoadError
|
|
184
|
+
HAVE_RCOV = false
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
if HAVE_RCOV
|
|
188
|
+
Rcov::RcovTask.new do |t|
|
|
189
|
+
t.libs << "test"
|
|
190
|
+
t.rcov_opts = ['-xRakefile', '-xrakefile', '-xpublish.rf', '--text-report']
|
|
191
|
+
t.test_files = FileList[
|
|
192
|
+
'test/test*.rb'
|
|
193
|
+
]
|
|
194
|
+
t.verbose = true
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
|
|
168
198
|
# --------------------------------------------------------------------
|
|
169
199
|
# Create a task to build the RDOC documentation tree.
|
|
170
200
|
|
|
@@ -173,13 +203,11 @@ rd = Rake::RDocTask.new("rdoc") { |rdoc|
|
|
|
173
203
|
rdoc.rdoc_dir = 'html'
|
|
174
204
|
rdoc.title = "RubyGems"
|
|
175
205
|
rdoc.options << '--line-numbers' << '--inline-source' << '--main' << 'README'
|
|
176
|
-
rdoc.rdoc_files.include('README', 'TODO', 'Releases')
|
|
206
|
+
rdoc.rdoc_files.include('README', 'TODO', 'Releases', 'LICENSE.txt', 'GPL.txt')
|
|
177
207
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
178
208
|
# rdoc.rdoc_files.include('test/**/*.rb')
|
|
179
209
|
}
|
|
180
210
|
|
|
181
|
-
file "html/index.html" => [:rdoc]
|
|
182
|
-
|
|
183
211
|
desc "Publish the RDOCs on RubyForge"
|
|
184
212
|
task :publish_rdoc => ["html/index.html"] do
|
|
185
213
|
# NOTE: This task assumes that you have an SSH alias setup for rubyforge.
|
|
@@ -250,7 +278,7 @@ installation of RubyGems before this update can be applied.
|
|
|
250
278
|
}
|
|
251
279
|
s.files = PKG_FILES.to_a
|
|
252
280
|
s.require_path = 'lib'
|
|
253
|
-
s.
|
|
281
|
+
s.authors = ['Jim Weirich', 'Chad Fowler']
|
|
254
282
|
s.email = "rubygems-developers@rubyforge.org"
|
|
255
283
|
s.homepage = "http://rubygems.rubyforge.org"
|
|
256
284
|
s.rubyforge_project = "rubygems"
|
|
@@ -280,7 +308,9 @@ end
|
|
|
280
308
|
|
|
281
309
|
desc "Install RubyGems"
|
|
282
310
|
task :install do
|
|
283
|
-
ruby '
|
|
311
|
+
ruby 'setup.rb config'
|
|
312
|
+
ruby 'setup.rb setup'
|
|
313
|
+
ruby 'setup.rb install'
|
|
284
314
|
end
|
|
285
315
|
|
|
286
316
|
# Run 'gem' (using local bin and lib directories).
|
|
@@ -324,3 +354,5 @@ task :rubyfiles do
|
|
|
324
354
|
puts Dir['**/*.rb'].reject { |fn| fn =~ /^pkg/ }
|
|
325
355
|
puts Dir['bin/*'].reject { |fn| fn =~ /CVS|(~$)|(\.rb$)/ }
|
|
326
356
|
end
|
|
357
|
+
|
|
358
|
+
task :rf => :rubyfiles
|
data/bin/gem
CHANGED
data/bin/gem_mirror
CHANGED
data/bin/gem_server
CHANGED
|
@@ -122,7 +122,7 @@ h2,h3,h4 { margin-top: 1em; }
|
|
|
122
122
|
a { background: #eef; color: #039; text-decoration: none; }
|
|
123
123
|
a:hover { background: #039; color: #eef; }
|
|
124
124
|
|
|
125
|
-
/* Override the base
|
|
125
|
+
/* Override the base stylesheets Anchor inside a table cell */
|
|
126
126
|
td > a {
|
|
127
127
|
background: transparent;
|
|
128
128
|
color: #039;
|
|
@@ -316,8 +316,6 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
|
|
316
316
|
RDOCCSS
|
|
317
317
|
|
|
318
318
|
|
|
319
|
-
|
|
320
|
-
##
|
|
321
319
|
# gem_server and gem_server.cgi are equivalent programs that allow
|
|
322
320
|
# users to serve gems for consumption by `gem --remote-install`.
|
|
323
321
|
#
|
|
@@ -355,7 +353,7 @@ if __FILE__ == $0
|
|
|
355
353
|
fn = File.join(options[:gemdir] || Gem.dir, "specifications")
|
|
356
354
|
res['content-type'] = 'text/plain'
|
|
357
355
|
res['date'] = File.stat(fn).mtime
|
|
358
|
-
res.body << Gem::SourceIndex.
|
|
356
|
+
res.body << Gem::SourceIndex.from_gems_in(fn).to_yaml
|
|
359
357
|
}
|
|
360
358
|
|
|
361
359
|
s.mount_proc("/rdoc-style.css") { |req, res|
|
|
@@ -369,7 +367,7 @@ if __FILE__ == $0
|
|
|
369
367
|
specs = []
|
|
370
368
|
specifications_dir = File.join(options[:gemdir] || Gem.dir, "specifications")
|
|
371
369
|
total_file_count = 0
|
|
372
|
-
Gem::SourceIndex.
|
|
370
|
+
Gem::SourceIndex.from_gems_in(specifications_dir).each do |path, spec|
|
|
373
371
|
total_file_count += spec.files.size
|
|
374
372
|
deps = spec.dependencies.collect { |dep|
|
|
375
373
|
{
|
data/bin/gemlock
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# -*- ruby -*-
|
|
3
|
+
#--
|
|
4
|
+
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
|
|
5
|
+
# All rights reserved.
|
|
6
|
+
# See LICENSE.txt for permissions.
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# gemlock -- Generate a lockdown list of a set of gems
|
|
11
|
+
#
|
|
12
|
+
# Usage: gemlock gem_name-version...
|
|
13
|
+
#
|
|
14
|
+
# gemlock will generate a list of require_gem statements that will
|
|
15
|
+
# lock down the versions for the gem given in the command line. It
|
|
16
|
+
# will specify exact versions in the requirements list to ensure that
|
|
17
|
+
# the gems loaded will always be consistent. A full recursive search
|
|
18
|
+
# of all effected gems will be generated.
|
|
19
|
+
#
|
|
20
|
+
# Example:
|
|
21
|
+
#
|
|
22
|
+
# gemlock rails-1.0.0 >lockdown.rb
|
|
23
|
+
#
|
|
24
|
+
# will produce in lockdown.rb:
|
|
25
|
+
#
|
|
26
|
+
# require "rubygems"
|
|
27
|
+
# gem 'rails', '= 1.0.0'
|
|
28
|
+
# gem 'rake', '= 0.7.0.1'
|
|
29
|
+
# gem 'activesupport', '= 1.2.5'
|
|
30
|
+
# gem 'activerecord', '= 1.13.2'
|
|
31
|
+
# gem 'actionpack', '= 1.11.2'
|
|
32
|
+
# gem 'actionmailer', '= 1.1.5'
|
|
33
|
+
# gem 'actionwebservice', '= 1.0.0'
|
|
34
|
+
#
|
|
35
|
+
# Just load lockdown.rb from your application to ensure that the
|
|
36
|
+
# current versions are loaded. Make sure that lockdown.rb is loaded
|
|
37
|
+
# *before* any other require statements.
|
|
38
|
+
#
|
|
39
|
+
# Notice that rails 1.0.0 only requires that rake 0.6.2 or better be
|
|
40
|
+
# used. Rake-0.7.0.1 is the most recent version installed that
|
|
41
|
+
# satisfies that, so we lock it down to the exact version.
|
|
42
|
+
|
|
43
|
+
require 'rubygems'
|
|
44
|
+
require 'ostruct'
|
|
45
|
+
require 'optparse'
|
|
46
|
+
require 'yaml'
|
|
47
|
+
|
|
48
|
+
Gem.manage_gems
|
|
49
|
+
|
|
50
|
+
def handle_options(args)
|
|
51
|
+
options = OpenStruct.new
|
|
52
|
+
options.verbose = false
|
|
53
|
+
options.strict = false
|
|
54
|
+
opts = OptionParser.new do |opts|
|
|
55
|
+
opts.banner = "Usage: #$0 [options] GEM_NAME-VERSION..."
|
|
56
|
+
opts.separator ""
|
|
57
|
+
opts.separator "Where options are:"
|
|
58
|
+
|
|
59
|
+
opts.on('--verbose', '-v', 'Verbose output') do |value|
|
|
60
|
+
options.verbose = value
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
opts.on('--[no-]strict', '-s',
|
|
64
|
+
'Fail if unable to satisfy a dependency') do |value|
|
|
65
|
+
options.strict = value
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
opts.on_tail('--help', '-h', 'Show this message') do
|
|
69
|
+
puts opts
|
|
70
|
+
exit
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
opts.on_tail('--version', '-V', 'Show version') do
|
|
74
|
+
puts "gemlock (#{Gem::RubyGemsVersion})"
|
|
75
|
+
exit
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
options.usage = opts
|
|
79
|
+
|
|
80
|
+
opts.parse!(args)
|
|
81
|
+
options
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def spec_path(gem_full_name)
|
|
85
|
+
File.join(Gem.path, "specifications", gem_full_name + ".gemspec")
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def complain(message, options)
|
|
89
|
+
if options.strict
|
|
90
|
+
fail message
|
|
91
|
+
else
|
|
92
|
+
puts "# #{message}"
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def lock_down(pending, options)
|
|
97
|
+
puts 'require "rubygems"'
|
|
98
|
+
locked = {}
|
|
99
|
+
while ! pending.empty?
|
|
100
|
+
full_name = pending.shift
|
|
101
|
+
spec = Gem::SourceIndex.load_specification(spec_path(full_name))
|
|
102
|
+
puts "gem '#{spec.name}', '= #{spec.version}'" unless locked[spec.name]
|
|
103
|
+
locked[spec.name] = true
|
|
104
|
+
spec.dependencies.each do |dep|
|
|
105
|
+
next if locked[dep.name]
|
|
106
|
+
candidates = Gem.source_index.search(dep.name, dep.requirement_list)
|
|
107
|
+
if candidates.empty?
|
|
108
|
+
complain(
|
|
109
|
+
"Unable to satisfy '#{dep}' from currently installed gems.",
|
|
110
|
+
options)
|
|
111
|
+
else
|
|
112
|
+
pending << candidates.last.full_name
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
if __FILE__ == $0 then
|
|
119
|
+
options = handle_options(ARGV)
|
|
120
|
+
if ARGV.empty?
|
|
121
|
+
puts options.usage
|
|
122
|
+
exit(1)
|
|
123
|
+
else
|
|
124
|
+
lock_down(ARGV, options)
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|