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.
Files changed (45) hide show
  1. data/CHANGES +27 -0
  2. data/CHANGES.drake +4 -0
  3. data/README +98 -198
  4. data/Rakefile +2 -4
  5. data/Rakefile.drake +0 -4
  6. data/doc/command_line_usage.rdoc +102 -0
  7. data/doc/rakefile.rdoc +4 -4
  8. data/doc/release_notes/rake-0.8.4.rdoc +147 -0
  9. data/lib/rake.rb +94 -60
  10. data/lib/rake/alt_system.rb +108 -0
  11. data/lib/rake/contrib/publisher.rb +1 -1
  12. data/lib/rake/contrib/sys.rb +1 -1
  13. data/lib/rake/gempackagetask.rb +0 -6
  14. data/lib/rake/loaders/makefile.rb +8 -1
  15. data/lib/rake/packagetask.rb +0 -1
  16. data/lib/rake/rdoctask.rb +79 -17
  17. data/lib/rake/testtask.rb +1 -1
  18. data/lib/rake/win32.rb +11 -10
  19. data/test/Rakefile.seq +1 -1
  20. data/test/Rakefile.simple +14 -25
  21. data/test/check_no_expansion.rb +5 -0
  22. data/test/data/sample.mf +2 -0
  23. data/test/rake_test_setup.rb +14 -0
  24. data/test/session_functional.rb +2 -0
  25. data/test/test_application.rb +25 -44
  26. data/test/test_definitions.rb +4 -1
  27. data/test/test_file_task.rb +20 -16
  28. data/test/test_filelist.rb +8 -3
  29. data/test/test_fileutils.rb +45 -44
  30. data/test/test_invocation_chain.rb +8 -2
  31. data/test/test_makefile_loader.rb +2 -1
  32. data/test/test_namespace.rb +30 -11
  33. data/test/test_package_task.rb +3 -1
  34. data/test/test_parallel.rb +4 -15
  35. data/test/test_pathmap.rb +3 -2
  36. data/test/test_pseudo_status.rb +26 -0
  37. data/test/test_rdoc_task.rb +88 -0
  38. data/test/test_require.rb +3 -1
  39. data/test/test_rules.rb +7 -5
  40. data/test/test_task_manager.rb +4 -1
  41. data/test/test_tasks.rb +7 -4
  42. data/test/test_test_task.rb +2 -0
  43. data/test/test_top_level_functions.rb +4 -2
  44. data/test/test_win32.rb +29 -14
  45. 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
@@ -1,6 +1,10 @@
1
1
 
2
2
  = Drake Changelog
3
3
 
4
+ == Version 0.8.4.1.0.15
5
+
6
+ * Merge with mainline rake-0.8.4.1.
7
+
4
8
  == Version 0.8.3.1.0.14
5
9
 
6
10
  * Merge with mainline rake-0.8.3.1.
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 (that's the most I tested).
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
- Package maintainers affectionately call it "not j-safe."
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 there is no way for Drake to fathom what <em>you</em> mean by a
89
- correct dependency, there is a tool available which helps you get
90
- closer to saying what you mean.
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
- (String#hash produces the integer which is the seed). The randomize
98
- option also disables +multitask+, making it a regular unthreaded
99
- +task+.
100
-
101
- Though this option may produce an error due to an unspecified
102
- dependency, at least it will be an error which is exactly the same on
103
- each run (with SEED). In addition, you'll have the major debugging
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.2
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
- * Flexible FileLists that act like arrays but know about manipulating
171
- file names and paths.
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
- == Download
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
- == Source Repository
168
+ == Installation
182
169
 
183
- Rake is currently hosted at github. The github web page is
184
- http://github.com/jimweirich/rake. The public git clone URL is
170
+ === Gem Installation
185
171
 
186
- * git://github.com/jimweirich/rake.git
172
+ Download and install rake with the following.
187
173
 
188
- == Installation
174
+ gem install rake
189
175
 
190
176
  === Normal Installation
191
177
 
192
- You can install rake with the following command.
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
- === GEM Installation
188
+ == Usage
199
189
 
200
- Download and install rake with the following.
190
+ === Simple Example
201
191
 
202
- gem install --remote rake
192
+ First, you must write a "Rakefile" file which contains the build rules. Here's
193
+ a simple example:
203
194
 
204
- === Running the Rake Test Suite
195
+ task :default => [:test]
196
+
197
+ task :test do
198
+ ruby "test/unittest.rb"
199
+ end
205
200
 
206
- If you wish to run the unit and functional tests that come with Rake:
201
+ This Rakefile has two tasks:
207
202
 
208
- * Install the 'session' gem in order to run the functional tests. adf
209
- asdf asdf
210
- * CD into the top project directory of rake.
211
- * Type one of the following:
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
- rake # If you have a version of rake installed
214
- ruby -Ilib bin/rake # If you do not have a version of rake installed.
209
+ Running the "rake" command without any options will cause it to run the
210
+ "default" task in the Rakefile:
215
211
 
216
- == Online Resources
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
- == Rake References
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
- * Jim Weirich's 2003 RubyConf presentation: http://onestepback.org/articles/buildingwithrake/
229
- * Martin Fowler's article on Rake: http://martinfowler.com/articles/rake.html
230
-
231
- === Road Map
222
+ === More Information
232
223
 
233
- * If you want to see how to invoke rake to build your projects, read on.
234
- * If you want to see the format of a Rakefile, see
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
- * If you want to see the original announcement of rake, see
228
+ * For the original announcement of Rake, see
237
229
  doc/rational.rdoc[http://rake.rubyforge.org/files/doc/rational_rdoc.html].
238
- * If you want to see a glossary of terms, see
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
- Once installed, you can run rake as follows ...
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
- % rake [options ...] [VAR=VALUE ...] [tasks...]
241
+ * git://github.com/jimweirich/rake.git
246
242
 
247
- Type "rake --help" for an up-to-date option summary.
243
+ === Running the Rake Test Suite
248
244
 
249
- Invoking <tt>rake</tt> without any options or targets causes rake to
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
- For example, given a simple rakefile like this ...
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
- task :default => [:test]
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
- task :test do
257
- ruby "test/unittest.rb"
258
- end
254
+ === Issues and Bug Reports
259
255
 
260
- The command
256
+ Bugs, features requests and other issues can be logged at
261
257
 
262
- $ rake
258
+ * http://onestepback.org/redmine/projects/show/rake
263
259
 
264
- will invoke the +default+ task. As +default+ satisfies its
265
- prerequisites, the +test+ task will run the unit tests for the
266
- package.
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
- mailto:jim@weirichhouse.org.
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@weirichhouse.org>
326
+ Author:: Jim Weirich <jim.weirich@gmail.com>
427
327
  Requires:: Ruby 1.8.0 or later
428
- License:: Copyright 2003, 2004 by Jim Weirich.
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' << 'Drake: Distributed Rake'
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 = "Ruby based make-like utility."
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.