drake 0.8.3.1.0.14 → 0.8.4.1.0.15
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/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.
|