drake 0.8.3.1.0.14 → 0.8.4.1.0.15
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +27 -0
- data/CHANGES.drake +4 -0
- data/README +98 -198
- data/Rakefile +2 -4
- data/Rakefile.drake +0 -4
- data/doc/command_line_usage.rdoc +102 -0
- data/doc/rakefile.rdoc +4 -4
- data/doc/release_notes/rake-0.8.4.rdoc +147 -0
- data/lib/rake.rb +94 -60
- data/lib/rake/alt_system.rb +108 -0
- data/lib/rake/contrib/publisher.rb +1 -1
- data/lib/rake/contrib/sys.rb +1 -1
- data/lib/rake/gempackagetask.rb +0 -6
- data/lib/rake/loaders/makefile.rb +8 -1
- data/lib/rake/packagetask.rb +0 -1
- data/lib/rake/rdoctask.rb +79 -17
- data/lib/rake/testtask.rb +1 -1
- data/lib/rake/win32.rb +11 -10
- data/test/Rakefile.seq +1 -1
- data/test/Rakefile.simple +14 -25
- data/test/check_no_expansion.rb +5 -0
- data/test/data/sample.mf +2 -0
- data/test/rake_test_setup.rb +14 -0
- data/test/session_functional.rb +2 -0
- data/test/test_application.rb +25 -44
- data/test/test_definitions.rb +4 -1
- data/test/test_file_task.rb +20 -16
- data/test/test_filelist.rb +8 -3
- data/test/test_fileutils.rb +45 -44
- data/test/test_invocation_chain.rb +8 -2
- data/test/test_makefile_loader.rb +2 -1
- data/test/test_namespace.rb +30 -11
- data/test/test_package_task.rb +3 -1
- data/test/test_parallel.rb +4 -15
- data/test/test_pathmap.rb +3 -2
- data/test/test_pseudo_status.rb +26 -0
- data/test/test_rdoc_task.rb +88 -0
- data/test/test_require.rb +3 -1
- data/test/test_rules.rb +7 -5
- data/test/test_task_manager.rb +4 -1
- data/test/test_tasks.rb +7 -4
- data/test/test_test_task.rb +2 -0
- data/test/test_top_level_functions.rb +4 -2
- data/test/test_win32.rb +29 -14
- metadata +12 -4
data/CHANGES
CHANGED
@@ -1,6 +1,33 @@
|
|
1
1
|
|
2
2
|
= Rake Changelog
|
3
3
|
|
4
|
+
== Version 0.8.4
|
5
|
+
|
6
|
+
* Preserve case when locating rakefiles (patch from James
|
7
|
+
M. Lawrence/quix)
|
8
|
+
|
9
|
+
* Better support for windows paths in the test task (patch from Simon
|
10
|
+
Chiang/bahuvrihi)
|
11
|
+
|
12
|
+
* Windows system dir search order is now: HOME, HOMEDRIVE + HOMEPATH,
|
13
|
+
APPDATA, USERPROFILE (patch from Luis Lavena)
|
14
|
+
|
15
|
+
* MingGW is now recognized as a windows platform. (patch from Luis
|
16
|
+
Lavena)
|
17
|
+
|
18
|
+
* Numerous fixes to the windows test suite (patch from Luis Lavena).
|
19
|
+
|
20
|
+
* Improved Rakefile case insensitivity testing (patch from Luis
|
21
|
+
Lavena).
|
22
|
+
|
23
|
+
* Fixed stray ARGV option problem that was interfering with
|
24
|
+
Test::Unit::Runner.
|
25
|
+
|
26
|
+
* Fixed default verbose mode (was accidently changed to false).
|
27
|
+
|
28
|
+
* Removed reference to manage_gem to fix the warning produced by the
|
29
|
+
gem package task.
|
30
|
+
|
4
31
|
== Version 0.8.3
|
5
32
|
|
6
33
|
* Enhanced the system directory detection in windows. We now check
|
data/CHANGES.drake
CHANGED
data/README
CHANGED
@@ -23,7 +23,7 @@ or equivalently,
|
|
23
23
|
Drake is 100% compatible with Rake. The code path for
|
24
24
|
<tt>--threads=1</tt> is effectively identical to that of Rake's.
|
25
25
|
Drake passes all of Rake's unit tests, with any number of threads from
|
26
|
-
1 to 1000 (
|
26
|
+
1 to 1000 (the most tested).
|
27
27
|
|
28
28
|
=== Dependencies
|
29
29
|
|
@@ -54,8 +54,8 @@ complete; can't do _z_ until _y_ is complete; can't do _y_ until _x_
|
|
54
54
|
is complete; therefore do _x_." In this fashion the sequence
|
55
55
|
_x_,_y_,_z_ is enforced.
|
56
56
|
|
57
|
-
The problem of insufficient dependencies plagues Makefiles as well
|
58
|
-
|
57
|
+
The problem of insufficient dependencies plagues Makefiles as well,
|
58
|
+
and is sometimes called "not j-safe".
|
59
59
|
|
60
60
|
=== MultiTask
|
61
61
|
|
@@ -85,35 +85,24 @@ If on the other hand your build takes twenty minutes to complete, you
|
|
85
85
|
may be interested in investing some time getting the full dependency
|
86
86
|
tree correct in order to take advantage of multiple CPUs or cores.
|
87
87
|
|
88
|
-
Though
|
89
|
-
|
90
|
-
|
88
|
+
Though Drake cannot fathom what <em>you</em> mean by a correct
|
89
|
+
dependency, there is a tool available which may help you get closer to
|
90
|
+
saying what you mean:
|
91
91
|
|
92
92
|
% drake --rand[=SEED]
|
93
93
|
|
94
94
|
This will randomize the order of sibling prerequisites for each task.
|
95
95
|
When given the optional SEED string, it will call
|
96
|
-
<tt>srand(SEED.hash)</tt> to produce the same permutation each time
|
97
|
-
|
98
|
-
|
99
|
-
+task+.
|
100
|
-
|
101
|
-
Though this option may produce an error due to
|
102
|
-
|
103
|
-
each run
|
96
|
+
<tt>srand(SEED.hash)</tt> to produce the same permutation each time.
|
97
|
+
The randomize option also disables +multitask+, making it a regular
|
98
|
+
+task+. (In multi-threaded mode, +multitask+ is already a regular
|
99
|
+
+task+.)
|
100
|
+
|
101
|
+
Though this option may produce an error due to unspecified
|
102
|
+
dependencies, with SEED at least it will be an error which is exactly
|
103
|
+
the same on each run. In addition you'll have the major debugging
|
104
104
|
advantage of using a single thread.
|
105
105
|
|
106
|
-
This option will also work in multi-threaded mode. After all, once
|
107
|
-
<tt>-jN</tt> is running smoothly there is <em>still</em> no guarantee
|
108
|
-
that you have it right. However with each successful execution of
|
109
|
-
<tt>drake -jN --rand</tt>, the probability of correctness approaches 1
|
110
|
-
(though asymptotically so).
|
111
|
-
|
112
|
-
(The only way to <em>prove</em> correctness is to test <em>all</em>
|
113
|
-
such permutations, which for any non-trivial project would be
|
114
|
-
prohibitively large, especially those which meaningfully benefit from
|
115
|
-
<tt>-j</tt>.)
|
116
|
-
|
117
106
|
== Links
|
118
107
|
|
119
108
|
* Download: http://rubyforge.org/frs/?group_id=6530
|
@@ -152,7 +141,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
152
141
|
|
153
142
|
= RAKE -- Ruby Make -- <em>master branch</em>
|
154
143
|
|
155
|
-
Supporting Rake version: 0.8.
|
144
|
+
Supporting Rake version: 0.8.4
|
156
145
|
|
157
146
|
This package contains Rake, a simple ruby build program with
|
158
147
|
capabilities similar to make.
|
@@ -167,103 +156,126 @@ Rake has the following features:
|
|
167
156
|
|
168
157
|
* Rake supports rule patterns to synthesize implicit tasks.
|
169
158
|
|
170
|
-
*
|
171
|
-
|
159
|
+
* Flexible FileLists that act like arrays but know about manipulating
|
160
|
+
file names and paths.
|
172
161
|
|
173
|
-
* A library of prepackaged tasks to make building rakefiles easier.
|
162
|
+
* A library of prepackaged tasks to make building rakefiles easier. For example,
|
163
|
+
tasks for building tarballs, gems and RDoc output are provided.
|
174
164
|
|
175
|
-
|
165
|
+
* Supports parallel execution of tasks.
|
176
166
|
|
177
|
-
The latest version of rake can be found at
|
178
|
-
|
179
|
-
* http://rubyforge.org/project/showfiles.php?group_id=50
|
180
167
|
|
181
|
-
==
|
168
|
+
== Installation
|
182
169
|
|
183
|
-
|
184
|
-
http://github.com/jimweirich/rake. The public git clone URL is
|
170
|
+
=== Gem Installation
|
185
171
|
|
186
|
-
|
172
|
+
Download and install rake with the following.
|
187
173
|
|
188
|
-
|
174
|
+
gem install rake
|
189
175
|
|
190
176
|
=== Normal Installation
|
191
177
|
|
192
|
-
You can
|
178
|
+
You can download the source tarball of the latest version of Rake from
|
179
|
+
|
180
|
+
* http://rubyforge.org/project/showfiles.php?group_id=50
|
181
|
+
|
182
|
+
Extract the tarball and run
|
193
183
|
|
194
184
|
% ruby install.rb
|
195
185
|
|
196
186
|
from its distribution directory.
|
197
187
|
|
198
|
-
|
188
|
+
== Usage
|
199
189
|
|
200
|
-
|
190
|
+
=== Simple Example
|
201
191
|
|
202
|
-
|
192
|
+
First, you must write a "Rakefile" file which contains the build rules. Here's
|
193
|
+
a simple example:
|
203
194
|
|
204
|
-
|
195
|
+
task :default => [:test]
|
196
|
+
|
197
|
+
task :test do
|
198
|
+
ruby "test/unittest.rb"
|
199
|
+
end
|
205
200
|
|
206
|
-
|
201
|
+
This Rakefile has two tasks:
|
207
202
|
|
208
|
-
*
|
209
|
-
|
210
|
-
*
|
211
|
-
|
203
|
+
* A task named "test", which - upon invocation - will run a unit test file in
|
204
|
+
Ruby.
|
205
|
+
* A task named "default". This task does nothing by itself, but it has exactly
|
206
|
+
one dependency, namely the "test" task. Invoking the "default" task will
|
207
|
+
cause Rake to invoke the "test" task as well.
|
212
208
|
|
213
|
-
|
214
|
-
|
209
|
+
Running the "rake" command without any options will cause it to run the
|
210
|
+
"default" task in the Rakefile:
|
215
211
|
|
216
|
-
|
212
|
+
% ls
|
213
|
+
Rakefile test/
|
214
|
+
% rake
|
215
|
+
(in /home/some_user/Projects/rake)
|
216
|
+
ruby test/unittest.rb
|
217
|
+
....unit test output here...
|
217
218
|
|
218
|
-
|
219
|
+
Type "rake --help" for all available options.
|
219
220
|
|
220
|
-
* Rake Documentation Home: http://docs.rubyrake.org
|
221
|
-
* Rake Project Page: http://rubyforge.org/projects/rake
|
222
|
-
* Rake API Documents: http://rake.rubyforge.org
|
223
|
-
* Rake Source Code Repo: http://github.com/jimweirich/rake
|
224
|
-
* Rake Git Repo Clone URL: git://github.com/jimweirich/rake.git
|
225
|
-
|
226
|
-
== Presentations and Articles about Rake
|
227
221
|
|
228
|
-
|
229
|
-
* Martin Fowler's article on Rake: http://martinfowler.com/articles/rake.html
|
230
|
-
|
231
|
-
=== Road Map
|
222
|
+
=== More Information
|
232
223
|
|
233
|
-
*
|
234
|
-
|
224
|
+
* For details on Rake's command-line invocation, read
|
225
|
+
doc/command_line_usage.rdoc[http://rake.rubyforge.org/files/doc/command_line_usage_rdoc.html]
|
226
|
+
* For details on writing Rakefiles, see
|
235
227
|
doc/rakefile.rdoc[http://rake.rubyforge.org/files/doc/rakefile_rdoc.html].
|
236
|
-
*
|
228
|
+
* For the original announcement of Rake, see
|
237
229
|
doc/rational.rdoc[http://rake.rubyforge.org/files/doc/rational_rdoc.html].
|
238
|
-
*
|
230
|
+
* For a glossary of terms, see
|
239
231
|
doc/glossary.rdoc[http://rake.rubyforge.org/files/doc/glossary_rdoc.html].
|
240
232
|
|
241
|
-
== Simple Example
|
242
233
|
|
243
|
-
|
234
|
+
== Development
|
235
|
+
|
236
|
+
=== Source Repository
|
237
|
+
|
238
|
+
Rake is currently hosted at github. The github web page is
|
239
|
+
http://github.com/jimweirich/rake. The public git clone URL is
|
244
240
|
|
245
|
-
|
241
|
+
* git://github.com/jimweirich/rake.git
|
246
242
|
|
247
|
-
|
243
|
+
=== Running the Rake Test Suite
|
248
244
|
|
249
|
-
|
250
|
-
look for a rakefile and invoke the default task in that rakefile.
|
245
|
+
If you wish to run the unit and functional tests that come with Rake:
|
251
246
|
|
252
|
-
|
247
|
+
* Install the 'session' gem in order to run the functional tests.
|
248
|
+
* CD into the top project directory of rake.
|
249
|
+
* Type one of the following:
|
253
250
|
|
254
|
-
|
251
|
+
rake # If you have a version of rake installed
|
252
|
+
ruby -Ilib bin/rake # If you do not have a version of rake installed.
|
255
253
|
|
256
|
-
|
257
|
-
ruby "test/unittest.rb"
|
258
|
-
end
|
254
|
+
=== Issues and Bug Reports
|
259
255
|
|
260
|
-
|
256
|
+
Bugs, features requests and other issues can be logged at
|
261
257
|
|
262
|
-
|
258
|
+
* http://onestepback.org/redmine/projects/show/rake
|
263
259
|
|
264
|
-
will
|
265
|
-
|
266
|
-
|
260
|
+
You will need an account to before you can post issues. Register at
|
261
|
+
http://onestepback.org/redmine/account/register. Or you can send me
|
262
|
+
an email (at jim dot weirich at gmail dot com)
|
263
|
+
|
264
|
+
|
265
|
+
== Online Resources
|
266
|
+
|
267
|
+
=== Rake References
|
268
|
+
|
269
|
+
* Rake Documentation Home: http://docs.rubyrake.org
|
270
|
+
* Rake Project Page: http://rubyforge.org/projects/rake
|
271
|
+
* Rake API Documents: http://rake.rubyforge.org
|
272
|
+
* Rake Source Code Repo: http://github.com/jimweirich/rake
|
273
|
+
* Rake Git Repo Clone URL: git://github.com/jimweirich/rake.git
|
274
|
+
|
275
|
+
=== Presentations and Articles about Rake
|
276
|
+
|
277
|
+
* Jim Weirich's 2003 RubyConf presentation: http://onestepback.org/articles/buildingwithrake/
|
278
|
+
* Martin Fowler's article on Rake: http://martinfowler.com/articles/rake.html
|
267
279
|
|
268
280
|
== Other Make Reinvisionings ...
|
269
281
|
|
@@ -305,127 +317,15 @@ new feature to be submitted in the form of new unit tests.
|
|
305
317
|
|
306
318
|
For other information, feel free to ask on the ruby-talk mailing list
|
307
319
|
(which is mirrored to comp.lang.ruby) or contact
|
308
|
-
|
309
|
-
|
310
|
-
----
|
311
|
-
|
312
|
-
= Usage
|
313
|
-
|
314
|
-
Rake is invoked from the command line using:
|
315
|
-
|
316
|
-
% rake [<em>options</em> ...] [<em>VAR</em>=<em>VALUE</em>] [<em>targets</em> ...]
|
317
|
-
|
318
|
-
Options are:
|
319
|
-
|
320
|
-
[<tt><em>name</em>=<em>value</em></tt>]
|
321
|
-
Set the environment variable <em>name</em> to <em>value</em>
|
322
|
-
during the execution of the <b>rake</b> command. You can access
|
323
|
-
the value by using ENV['<em>name</em>'].
|
324
|
-
|
325
|
-
[<tt>--classic-namespace</tt> (-n)]
|
326
|
-
Import the Task, FileTask, and FileCreateTask into the top-level
|
327
|
-
scope to be compatible with older versions of Rake. Alternatively
|
328
|
-
you can include the line <code>require
|
329
|
-
'rake/classic_namespace'</code> in your Rakefile to get the
|
330
|
-
classic behavior.
|
331
|
-
|
332
|
-
[<tt>--describe</tt> _pattern_ (-D)]
|
333
|
-
Describe the tasks (matching optional PATTERN), then exit.
|
334
|
-
|
335
|
-
[<tt>--dry-run</tt> (-n)]
|
336
|
-
Do a dry run. Print the tasks invoked and executed, but do not
|
337
|
-
actually execute any of the actions.
|
338
|
-
|
339
|
-
[<tt>--execute</tt> _code_ (-e)]
|
340
|
-
Execute some Ruby code and exit.
|
341
|
-
|
342
|
-
[<tt>--execute-print</tt> _code_ (-p)]
|
343
|
-
Execute some Ruby code, print the result, and exit.
|
344
|
-
|
345
|
-
[<tt>--execute-continue</tt> _code_ (-p)]
|
346
|
-
Execute some Ruby code, then continue with normal task processing.
|
347
|
-
|
348
|
-
[<tt>--help</tt> (-H)]
|
349
|
-
Display some help text and exit.
|
350
|
-
|
351
|
-
[<tt>--libdir</tt> _directory_ (-I)]
|
352
|
-
Add _directory_ to the list of directories searched for require.
|
353
|
-
|
354
|
-
[<tt>--nosearch</tt> (-N)]
|
355
|
-
Do not search for a Rakefile in parent directories.
|
356
|
-
|
357
|
-
[<tt>--prereqs</tt> (-P)]
|
358
|
-
Display a list of all tasks and their immediate prerequisites.
|
359
|
-
|
360
|
-
[<tt>--quiet</tt> (-q)]
|
361
|
-
Do not echo commands from FileUtils.
|
362
|
-
|
363
|
-
[<tt>--rakefile</tt> _filename_ (-f)]
|
364
|
-
Use _filename_ as the name of the rakefile. The default rakefile
|
365
|
-
names are +rakefile+ and +Rakefile+ (with +rakefile+ taking
|
366
|
-
precedence). If the rakefile is not found in the current
|
367
|
-
directory, +rake+ will search parent directories for a match. The
|
368
|
-
directory where the Rakefile is found will become the current
|
369
|
-
directory for the actions executed in the Rakefile.
|
370
|
-
|
371
|
-
[<tt>--rakelibdir</tt> _rakelibdir_ (-R)]
|
372
|
-
Auto-import any .rake files in RAKELIBDIR. (default is 'rakelib')
|
373
|
-
|
374
|
-
[<tt>--require</tt> _name_ (-r)]
|
375
|
-
Require _name_ before executing the Rakefile.
|
376
|
-
|
377
|
-
[<tt>--rules</tt>]
|
378
|
-
Trace the rules resolution.
|
379
|
-
|
380
|
-
[<tt>--silent (-s)]
|
381
|
-
Like --quiet, but also suppresses the 'in directory' announcement.
|
382
|
-
|
383
|
-
[<tt>--system</tt> (-g)]
|
384
|
-
Use the system wide (global) rakefiles. The project Rakefile is
|
385
|
-
ignored. By default, the system wide rakefiles are used only if no
|
386
|
-
project Rakefile is found. On Unix-like system, the system wide
|
387
|
-
rake files are located in $HOME/.rake. On a windows system they
|
388
|
-
are stored in $APPDATA/Rake.
|
389
|
-
|
390
|
-
[<tt>--no-system</tt> (-G)]
|
391
|
-
Use the project level Rakefile, ignoring the system-wide (global)
|
392
|
-
rakefiles.
|
393
|
-
|
394
|
-
[<tt>--tasks</tt> (-T)]
|
395
|
-
Display a list of the major tasks and their comments. Comments
|
396
|
-
are defined using the "desc" command.
|
397
|
-
|
398
|
-
[<tt>--trace</tt> (-t)]
|
399
|
-
Turn on invoke/execute tracing. Also enable full backtrace on
|
400
|
-
errors.
|
401
|
-
|
402
|
-
[<tt>--usage</tt> (-h)]
|
403
|
-
Display a usage message and exit.
|
404
|
-
|
405
|
-
[<tt>--verbose</tt> (-v)]
|
406
|
-
Echo the Sys commands to standard output.
|
407
|
-
|
408
|
-
[<tt>--version</tt> (-V)]
|
409
|
-
Display the program version and exit.
|
410
|
-
|
411
|
-
In addition, any command line option of the form
|
412
|
-
<em>VAR</em>=<em>VALUE</em> will be added to the environment hash
|
413
|
-
<tt>ENV</tt> and may be tested in the Rakefile.
|
414
|
-
|
415
|
-
---
|
416
|
-
|
417
|
-
= Rakefile Format
|
418
|
-
|
419
|
-
See doc/rakefile.rdoc[http://rake.rubyforge.org/files/doc/rakefile_rdoc.html]
|
420
|
-
for details on the Rakefile format.
|
320
|
+
jim dot weirich at gmail.com.
|
421
321
|
|
422
322
|
---
|
423
323
|
|
424
324
|
= Other stuff
|
425
325
|
|
426
|
-
Author:: Jim Weirich <jim@
|
326
|
+
Author:: Jim Weirich <jim.weirich@gmail.com>
|
427
327
|
Requires:: Ruby 1.8.0 or later
|
428
|
-
License:: Copyright 2003
|
328
|
+
License:: Copyright 2003-2008 by Jim Weirich.
|
429
329
|
Released under an MIT-style license. See the LICENSE file
|
430
330
|
included in the distribution.
|
431
331
|
|
data/Rakefile
CHANGED
@@ -148,13 +148,11 @@ end
|
|
148
148
|
|
149
149
|
rd = Rake::RDocTask.new("rdoc") { |rdoc|
|
150
150
|
rdoc.rdoc_dir = 'html'
|
151
|
-
# rdoc.template = 'kilmer'
|
152
|
-
# rdoc.template = 'css2'
|
153
151
|
rdoc.template = 'doc/jamis.rb'
|
154
152
|
rdoc.title = "Drake: Distributed Rake"
|
155
153
|
rdoc.options << '--line-numbers' << '--inline-source' <<
|
156
154
|
'--main' << 'README' <<
|
157
|
-
'--title' <<
|
155
|
+
'--title' << 'Drake: Distributed Rake'
|
158
156
|
rdoc.rdoc_files.include('README', 'MIT-LICENSE', 'TODO', 'CHANGES')
|
159
157
|
rdoc.rdoc_files.include('lib/**/*.rb', 'doc/**/*.rdoc')
|
160
158
|
rdoc.rdoc_files.exclude(/\bcontrib\b/)
|
@@ -189,7 +187,7 @@ else
|
|
189
187
|
|
190
188
|
s.name = 'drake'
|
191
189
|
s.version = $package_version
|
192
|
-
s.summary = "
|
190
|
+
s.summary = "A fork of Rake supporting parallel task execution."
|
193
191
|
s.description = <<-EOF
|
194
192
|
Rake is a Make-like program implemented in Ruby. Tasks
|
195
193
|
and dependencies are specified in standard Ruby syntax.
|