drake 0.8.7.0.2.4 → 0.9.0.0.3.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/.gemtest +0 -0
- data/CHANGES +77 -9
- data/{CHANGES.drake → CHANGES-drake} +6 -2
- data/MIT-LICENSE +2 -0
- data/{README → README.rdoc} +30 -18
- data/Rakefile +144 -130
- data/Rakefile-drake +67 -0
- data/TODO +1 -1
- data/bin/drake +2 -0
- data/doc/command_line_usage.rdoc +25 -11
- data/doc/glossary.rdoc +2 -2
- data/doc/jamis.rb +2 -2
- data/doc/parallel.rdoc +37 -29
- data/doc/proto_rake.rdoc +22 -22
- data/doc/rake.1.gz +0 -0
- data/doc/rakefile.rdoc +56 -33
- data/doc/rational.rdoc +6 -6
- data/doc/release_notes/rake-0.4.15.rdoc +1 -1
- data/doc/release_notes/rake-0.5.0.rdoc +1 -1
- data/doc/release_notes/rake-0.7.0.rdoc +1 -1
- data/doc/release_notes/rake-0.7.2.rdoc +3 -3
- data/doc/release_notes/rake-0.7.3.rdoc +2 -2
- data/doc/release_notes/rake-0.8.0.rdoc +1 -1
- data/doc/release_notes/rake-0.8.2.rdoc +3 -3
- data/doc/release_notes/rake-0.8.3.rdoc +2 -2
- data/doc/release_notes/rake-0.8.4.rdoc +1 -1
- data/doc/release_notes/rake-0.8.5.rdoc +1 -1
- data/doc/release_notes/rake-0.8.6.rdoc +1 -1
- data/doc/release_notes/rake-0.8.7.rdoc +1 -1
- data/doc/release_notes/rake-0.9.0.rdoc +112 -0
- data/install.rb +14 -12
- data/lib/rake.rb +31 -2527
- data/lib/rake/alt_system.rb +7 -6
- data/lib/rake/application.rb +626 -0
- data/lib/rake/classic_namespace.rb +1 -0
- data/lib/rake/clean.rb +2 -4
- data/lib/rake/cloneable.rb +25 -0
- data/lib/rake/contrib/compositepublisher.rb +2 -5
- data/lib/rake/contrib/ftptools.rb +5 -8
- data/lib/rake/contrib/publisher.rb +2 -8
- data/lib/rake/contrib/rubyforgepublisher.rb +2 -4
- data/lib/rake/contrib/sshpublisher.rb +4 -6
- data/lib/rake/contrib/sys.rb +7 -25
- data/lib/rake/default_loader.rb +10 -0
- data/lib/rake/dsl.rb +2 -0
- data/lib/rake/dsl_definition.rb +143 -0
- data/lib/rake/early_time.rb +18 -0
- data/lib/rake/ext/core.rb +27 -0
- data/lib/rake/ext/module.rb +39 -0
- data/lib/rake/ext/string.rb +167 -0
- data/lib/rake/ext/time.rb +14 -0
- data/lib/rake/file_creation_task.rb +24 -0
- data/lib/rake/file_list.rb +403 -0
- data/lib/rake/file_task.rb +47 -0
- data/lib/rake/file_utils.rb +112 -0
- data/lib/rake/file_utils_ext.rb +142 -0
- data/lib/rake/gempackagetask.rb +6 -90
- data/lib/rake/invocation_chain.rb +51 -0
- data/lib/rake/invocation_exception_mixin.rb +16 -0
- data/lib/rake/loaders/makefile.rb +13 -15
- data/lib/rake/multi_task.rb +16 -0
- data/lib/rake/name_space.rb +25 -0
- data/lib/rake/packagetask.rb +13 -12
- data/lib/rake/parallel.rb +17 -28
- data/lib/rake/pathmap.rb +1 -0
- data/lib/rake/pseudo_status.rb +24 -0
- data/lib/rake/rake_module.rb +29 -0
- data/lib/rake/rake_test_loader.rb +10 -2
- data/lib/rake/rdoctask.rb +211 -190
- data/lib/rake/ruby182_test_unit_fix.rb +9 -7
- data/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/lib/rake/runtest.rb +4 -6
- data/lib/rake/task.rb +351 -0
- data/lib/rake/task_argument_error.rb +7 -0
- data/lib/rake/task_arguments.rb +74 -0
- data/lib/rake/task_manager.rb +307 -0
- data/lib/rake/tasklib.rb +1 -2
- data/lib/rake/testtask.rb +57 -27
- data/lib/rake/version.rb +13 -0
- data/lib/rake/win32.rb +4 -4
- data/test/contrib/test_sys.rb +8 -31
- data/test/data/access/Rakefile +33 -0
- data/test/data/comments/Rakefile +18 -0
- data/test/data/default/Rakefile +1 -1
- data/test/data/deprecated_import/Rakefile +1 -0
- data/test/data/dryrun/Rakefile +1 -1
- data/test/data/file_creation_task/Rakefile +1 -1
- data/test/data/namespace/Rakefile +9 -0
- data/test/data/rakelib/test1.rb +1 -0
- data/test/data/verbose/Rakefile +34 -0
- data/test/{filecreation.rb → file_creation.rb} +11 -7
- data/test/functional/functional_test.rb +25 -0
- data/test/{session_functional.rb → functional/session_based_tests.rb} +141 -23
- data/test/in_environment.rb +7 -5
- data/test/{test_application.rb → lib/application_test.rb} +331 -143
- data/test/{test_clean.rb → lib/clean_test.rb} +1 -0
- data/test/{test_definitions.rb → lib/definitions_test.rb} +4 -4
- data/test/lib/dsl_test.rb +52 -0
- data/test/{test_earlytime.rb → lib/earlytime_test.rb} +1 -2
- data/test/{test_extension.rb → lib/extension_test.rb} +2 -2
- data/test/{test_file_creation_task.rb → lib/file_creation_task_test.rb} +1 -1
- data/test/{test_file_task.rb → lib/file_task_test.rb} +9 -5
- data/test/{test_filelist.rb → lib/filelist_test.rb} +38 -24
- data/test/{test_fileutils.rb → lib/fileutils_test.rb} +27 -22
- data/test/{test_ftp.rb → lib/ftp_test.rb} +0 -0
- data/test/{test_invocation_chain.rb → lib/invocation_chain_test.rb} +0 -0
- data/test/{test_makefile_loader.rb → lib/makefile_loader_test.rb} +0 -0
- data/test/{test_multitask.rb → lib/multitask_test.rb} +3 -2
- data/test/{test_namespace.rb → lib/namespace_test.rb} +0 -0
- data/test/lib/package_task_test.rb +82 -0
- data/test/{test_parallel.rb → lib/parallel_test.rb} +5 -5
- data/test/{test_pathmap.rb → lib/pathmap_test.rb} +3 -2
- data/test/{test_pseudo_status.rb → lib/pseudo_status_test.rb} +0 -0
- data/test/{test_rake.rb → lib/rake_test.rb} +1 -1
- data/test/{test_rdoc_task.rb → lib/rdoc_task_test.rb} +19 -23
- data/test/{test_require.rb → lib/require_test.rb} +8 -2
- data/test/{test_rules.rb → lib/rules_test.rb} +4 -5
- data/test/{test_task_arguments.rb → lib/task_arguments_test.rb} +5 -5
- data/test/{test_task_manager.rb → lib/task_manager_test.rb} +15 -5
- data/test/{test_tasks.rb → lib/task_test.rb} +91 -28
- data/test/{test_tasklib.rb → lib/tasklib_test.rb} +0 -0
- data/test/{test_test_task.rb → lib/test_task_test.rb} +3 -3
- data/test/lib/testtask_test.rb +49 -0
- data/test/{test_top_level_functions.rb → lib/top_level_functions_test.rb} +5 -3
- data/test/{test_win32.rb → lib/win32_test.rb} +19 -0
- data/test/rake_test_setup.rb +6 -10
- data/test/ruby_version_test.rb +3 -0
- data/test/test_helper.rb +19 -0
- metadata +108 -66
- data/Rakefile.drake +0 -73
- data/test/functional.rb +0 -15
- data/test/test_package_task.rb +0 -118
data/.gemtest
ADDED
|
File without changes
|
data/CHANGES
CHANGED
|
@@ -1,6 +1,70 @@
|
|
|
1
|
-
|
|
2
1
|
= Rake Changelog
|
|
3
2
|
|
|
3
|
+
== Version 0.9.0
|
|
4
|
+
|
|
5
|
+
* Rake now warns when the deprecated :needs syntax used.
|
|
6
|
+
|
|
7
|
+
* Moved Rake DSL commands to top level ruby object 'main'. Rake DSL
|
|
8
|
+
commands are no longer private methods in Object. (Suggested by
|
|
9
|
+
James M. Lawrence/quix)
|
|
10
|
+
|
|
11
|
+
* Rake history is now UTF-8 encoded.
|
|
12
|
+
|
|
13
|
+
* Rake now uses case-insensitive comparisons to find the Rakefile on Windows.
|
|
14
|
+
Based on patch by Roger Pack.
|
|
15
|
+
|
|
16
|
+
* Rake now requires (instead of loads) files in the test task. Patch by Cezary
|
|
17
|
+
Baginski.
|
|
18
|
+
|
|
19
|
+
* Fixed typos. Patches by Sean Scot August Moon and R.T. Lechow.
|
|
20
|
+
|
|
21
|
+
* Rake now prints the Rakefile directory only when it's different from the
|
|
22
|
+
current directory. Patch by Alex Chaffee.
|
|
23
|
+
|
|
24
|
+
* Improved rakefile_location discovery on Windows. Patch by James Tucker.
|
|
25
|
+
|
|
26
|
+
* Rake now recognizes "Windows Server" as a windows system. Patch by Matthias
|
|
27
|
+
Lüdtke
|
|
28
|
+
|
|
29
|
+
* Rake::RDocTask is deprecated. Use RDoc::Task from RDoc 2.4.2+ (require
|
|
30
|
+
'rdoc/task')
|
|
31
|
+
|
|
32
|
+
* Rake::GemPackageTask is deprecated. Use Gem::PackageTask (require
|
|
33
|
+
'rubygems/package_task')
|
|
34
|
+
|
|
35
|
+
* Rake now outputs various messages to $stderr instead of $stdout.
|
|
36
|
+
|
|
37
|
+
* Rake no longer emits warnings for Config. Patch by Santiago Pastorino.
|
|
38
|
+
|
|
39
|
+
* Removed Rake's DSL methods from the top level scope. If you need to
|
|
40
|
+
call 'task :xzy' in your code, include Rake::DSL into your class, or
|
|
41
|
+
put the code in a Rake::DSL.environment do ... end block.
|
|
42
|
+
|
|
43
|
+
* Split rake.rb into individual files.
|
|
44
|
+
|
|
45
|
+
* Support for the --where (-W) flag for showing where a task is defined.
|
|
46
|
+
|
|
47
|
+
* Fixed quoting in test task.
|
|
48
|
+
(http://onestepback.org/redmine/issues/show/44,
|
|
49
|
+
http://www.pivotaltracker.com/story/show/1223138)
|
|
50
|
+
|
|
51
|
+
* Fixed the silent option parsing problem.
|
|
52
|
+
(http://onestepback.org/redmine/issues/show/47)
|
|
53
|
+
|
|
54
|
+
* Fixed :verbose=>false flag on sh and ruby commands.
|
|
55
|
+
|
|
56
|
+
* Rake command line options may be given by default in a RAKEOPT
|
|
57
|
+
environment variable.
|
|
58
|
+
|
|
59
|
+
* Errors in Rake will now display the task invocation chain in effect
|
|
60
|
+
at the time of the error.
|
|
61
|
+
|
|
62
|
+
* Accepted change by warnickr to not expand test patterns in shell
|
|
63
|
+
(allowing more files in the test suite).
|
|
64
|
+
|
|
65
|
+
* Fixed that file tasks did not perform prereq lookups in scope
|
|
66
|
+
(Redmine #57).
|
|
67
|
+
|
|
4
68
|
== Version 0.8.7
|
|
5
69
|
|
|
6
70
|
* Fixed EXEEXT for JRuby on windows.
|
|
@@ -10,6 +74,10 @@
|
|
|
10
74
|
* Minor fixes to the RDoc generation (removed dependency on darkfish
|
|
11
75
|
and removed inline source option).
|
|
12
76
|
|
|
77
|
+
== PreVersion 0.8.6
|
|
78
|
+
|
|
79
|
+
* Now allow # comments to comment a task definition.
|
|
80
|
+
|
|
13
81
|
== Version 0.8.5
|
|
14
82
|
|
|
15
83
|
* Better support for the system command on Windows.
|
|
@@ -36,7 +104,7 @@
|
|
|
36
104
|
* Fixed stray ARGV option problem that was interfering with
|
|
37
105
|
Test::Unit::Runner.
|
|
38
106
|
|
|
39
|
-
* Fixed default verbose mode (was accidently changed to false).
|
|
107
|
+
* Fixed default verbose mode (was accidently changed to false).
|
|
40
108
|
|
|
41
109
|
* Removed reference to manage_gem to fix the warning produced by the
|
|
42
110
|
gem package task.
|
|
@@ -49,7 +117,7 @@
|
|
|
49
117
|
directory.
|
|
50
118
|
|
|
51
119
|
* Added fix to handle ruby installations in directories with spaces in
|
|
52
|
-
their name.
|
|
120
|
+
their name.
|
|
53
121
|
|
|
54
122
|
== Version 0.8.2
|
|
55
123
|
|
|
@@ -66,7 +134,7 @@
|
|
|
66
134
|
symbol/string differences. (Patch supplied by Edwin Pratomo)
|
|
67
135
|
|
|
68
136
|
* Fixed bug with rules involving multiple source (Patch supplied by
|
|
69
|
-
Emanuel
|
|
137
|
+
Emanuel Indermühle)
|
|
70
138
|
|
|
71
139
|
* Switched from getoptlong to optparse (patches supplied by Edwin
|
|
72
140
|
Pratomo)
|
|
@@ -87,7 +155,7 @@
|
|
|
87
155
|
|
|
88
156
|
* Changed from using Mutex to Monitor. Evidently Mutex causes thread
|
|
89
157
|
join errors when Ruby is compiled with -disable-pthreads. (Patch
|
|
90
|
-
supplied by Ittay Dror)
|
|
158
|
+
supplied by Ittay Dror)
|
|
91
159
|
|
|
92
160
|
* Fixed bug in makefile parser that had problems with extra spaces in
|
|
93
161
|
file task names. (Patch supplied by Ittay Dror)
|
|
@@ -142,14 +210,14 @@
|
|
|
142
210
|
* Fixed some bugs where the application object was going to the global
|
|
143
211
|
appliation instead of using its own data.
|
|
144
212
|
* Added square and curly bracket patterns to FileList#include (Tilman
|
|
145
|
-
Sauerbeck).
|
|
213
|
+
Sauerbeck).
|
|
146
214
|
* Added plain filename support to rule dependents (suggested by Nobu
|
|
147
|
-
Nakada).
|
|
215
|
+
Nakada).
|
|
148
216
|
* Added pathmap support to rule dependents.
|
|
149
217
|
* Added a 'tasks' method to a namespace to get a list of tasks
|
|
150
218
|
associated with the namespace.
|
|
151
219
|
* Fixed the method name leak from FileUtils (bug found by Glenn
|
|
152
|
-
Vanderburg).
|
|
220
|
+
Vanderburg).
|
|
153
221
|
* Added rake_extension to handle detection of extension collisions.
|
|
154
222
|
* Added test for noop, bad_option and verbose flags to sh command.
|
|
155
223
|
* Removed dependency on internal fu_xxx functions from FileUtils.
|
|
@@ -270,7 +338,7 @@
|
|
|
270
338
|
* Fixed a bug that prevented the TESTOPTS flag from working with the
|
|
271
339
|
revised for 1.8.2 test task.
|
|
272
340
|
* Updated the docs on --trace to indicate that it also enables a full
|
|
273
|
-
backtrace on errors.
|
|
341
|
+
backtrace on errors.
|
|
274
342
|
|
|
275
343
|
== Version 0.4.14
|
|
276
344
|
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
|
|
2
2
|
= Drake Changelog
|
|
3
3
|
|
|
4
|
-
== Version 0.
|
|
4
|
+
== Version 0.9.0.0.3.0
|
|
5
5
|
|
|
6
|
-
*
|
|
6
|
+
* option -j without a value now allowed == no limit on number of threads
|
|
7
|
+
* improved --randomize[=SEED] option: auto-generates SEED if none given
|
|
8
|
+
(mirrors the randomizing functionality of minitest).
|
|
9
|
+
* --version now reports 'drake'
|
|
10
|
+
* update from mainline branch
|
|
7
11
|
|
|
8
12
|
== Version 0.8.7.0.2.3
|
|
9
13
|
|
data/MIT-LICENSE
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
Copyright (c) 2003, 2004 Jim Weirich
|
|
2
2
|
|
|
3
|
+
Copyright (c) 2008-2011 James M. Lawrence
|
|
4
|
+
|
|
3
5
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
6
|
a copy of this software and associated documentation files (the
|
|
5
7
|
"Software"), to deal in the Software without restriction, including
|
data/{README → README.rdoc}
RENAMED
|
@@ -8,9 +8,9 @@ Run up to three tasks in parallel:
|
|
|
8
8
|
|
|
9
9
|
% drake -j3
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Run as many tasks in parallel as the dependencies allow:
|
|
12
12
|
|
|
13
|
-
% drake
|
|
13
|
+
% drake -j
|
|
14
14
|
|
|
15
15
|
== Installation
|
|
16
16
|
|
|
@@ -18,13 +18,21 @@ or equivalently,
|
|
|
18
18
|
|
|
19
19
|
== Notes
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Drake is fully compatible with Rake. The code base is identical to
|
|
22
|
+
that of Rake except for the addition of the -j option.
|
|
23
|
+
|
|
24
|
+
For the purposes of this documentation, the 'rake' and 'drake'
|
|
25
|
+
commands are interchangeable. The drake gem will install the drake
|
|
26
|
+
executable. On your system you may alias or link drake to rake if
|
|
27
|
+
desired.
|
|
28
|
+
|
|
29
|
+
For more on parallelization with -j, see
|
|
30
|
+
parallel.rdoc[http://quix.github.com/rake/files/doc/parallel_rdoc.html].
|
|
22
31
|
|
|
23
32
|
== Links
|
|
24
33
|
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* Rubyforge home: http://rubyforge.org/projects/drake
|
|
34
|
+
* Home: http://quix.github.com/rake
|
|
35
|
+
* Feature Requests, Bug Reports: http://github.com/quix/rake/issues
|
|
28
36
|
* Repository: http://github.com/quix/rake
|
|
29
37
|
|
|
30
38
|
== Author
|
|
@@ -33,9 +41,9 @@ See parallel.rdoc.
|
|
|
33
41
|
|
|
34
42
|
== License
|
|
35
43
|
|
|
36
|
-
Copyright (c) 2003
|
|
44
|
+
Copyright (c) 2003-2010 Jim Weirich
|
|
37
45
|
|
|
38
|
-
Copyright (c) 2008 James M. Lawrence
|
|
46
|
+
Copyright (c) 2008-2011 James M. Lawrence
|
|
39
47
|
|
|
40
48
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
41
49
|
a copy of this software and associated documentation files (the
|
|
@@ -56,9 +64,9 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
|
56
64
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
57
65
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
58
66
|
|
|
59
|
-
= RAKE -- Ruby Make -- <em>
|
|
67
|
+
= RAKE -- Ruby Make -- <em>mainline branch</em>
|
|
60
68
|
|
|
61
|
-
Supporting Rake version: 0.8.
|
|
69
|
+
Supporting Rake version: 0.8.7.
|
|
62
70
|
|
|
63
71
|
This package contains Rake, a simple ruby build program with
|
|
64
72
|
capabilities similar to make.
|
|
@@ -110,7 +118,7 @@ First, you must write a "Rakefile" file which contains the build rules. Here's
|
|
|
110
118
|
a simple example:
|
|
111
119
|
|
|
112
120
|
task :default => [:test]
|
|
113
|
-
|
|
121
|
+
|
|
114
122
|
task :test do
|
|
115
123
|
ruby "test/unittest.rb"
|
|
116
124
|
end
|
|
@@ -147,7 +155,6 @@ Type "rake --help" for all available options.
|
|
|
147
155
|
* For a glossary of terms, see
|
|
148
156
|
doc/glossary.rdoc[http://rake.rubyforge.org/files/doc/glossary_rdoc.html].
|
|
149
157
|
|
|
150
|
-
|
|
151
158
|
== Development
|
|
152
159
|
|
|
153
160
|
=== Source Repository
|
|
@@ -161,6 +168,7 @@ http://github.com/jimweirich/rake. The public git clone URL is
|
|
|
161
168
|
|
|
162
169
|
If you wish to run the unit and functional tests that come with Rake:
|
|
163
170
|
|
|
171
|
+
* Install the 'flexmock' gem
|
|
164
172
|
* Install the 'session' gem in order to run the functional tests.
|
|
165
173
|
* CD into the top project directory of rake.
|
|
166
174
|
* Type one of the following:
|
|
@@ -170,14 +178,16 @@ If you wish to run the unit and functional tests that come with Rake:
|
|
|
170
178
|
|
|
171
179
|
=== Issues and Bug Reports
|
|
172
180
|
|
|
173
|
-
|
|
181
|
+
Feature requests and bug reports can be made here
|
|
182
|
+
|
|
183
|
+
* http://onestepback.org/cgi-bin/bugs.cgi?project=rake
|
|
174
184
|
|
|
175
|
-
|
|
185
|
+
No account is needed for posting requests. Or you can send me an
|
|
186
|
+
email (at jim dot weirich at gmail dot com)
|
|
176
187
|
|
|
177
|
-
|
|
178
|
-
http://onestepback.org/redmine/account/register. Or you can send me
|
|
179
|
-
an email (at jim dot weirich at gmail dot com)
|
|
188
|
+
Issues and bug reports can be tracked here:
|
|
180
189
|
|
|
190
|
+
* http://www.pivotaltracker.com/projects/28469
|
|
181
191
|
|
|
182
192
|
== Online Resources
|
|
183
193
|
|
|
@@ -188,6 +198,8 @@ an email (at jim dot weirich at gmail dot com)
|
|
|
188
198
|
* Rake API Documents: http://rake.rubyforge.org
|
|
189
199
|
* Rake Source Code Repo: http://github.com/jimweirich/rake
|
|
190
200
|
* Rake Git Repo Clone URL: git://github.com/jimweirich/rake.git
|
|
201
|
+
* Rake Issue Tracking: http://www.pivotaltracker.com/projects/28469
|
|
202
|
+
* Rake Bug Reports: http://onestepback.org/cgi-bin/bugs.cgi?project=rake
|
|
191
203
|
|
|
192
204
|
=== Presentations and Articles about Rake
|
|
193
205
|
|
|
@@ -229,7 +241,7 @@ The Rake homepage is http://rake.rubyforge.org. You can find the Rake
|
|
|
229
241
|
RubyForge page at http://rubyforge.org/projects/rake.
|
|
230
242
|
|
|
231
243
|
Feel free to submit commits or feature requests. If you send a patch,
|
|
232
|
-
remember to update the corresponding unit tests.
|
|
244
|
+
remember to update the corresponding unit tests. In fact, I prefer
|
|
233
245
|
new feature to be submitted in the form of new unit tests.
|
|
234
246
|
|
|
235
247
|
For other information, feel free to ask on the ruby-talk mailing list
|
data/Rakefile
CHANGED
|
@@ -1,22 +1,34 @@
|
|
|
1
1
|
# Rakefile for rake -*- ruby -*-
|
|
2
2
|
|
|
3
3
|
# Copyright 2003, 2004, 2005 by Jim Weirich (jim@weirichhouse.org)
|
|
4
|
+
# Copyright 2008-2011 by James M. Lawrence (quixoticsycophant@gmail.com)
|
|
4
5
|
# All rights reserved.
|
|
5
6
|
|
|
6
7
|
# This file may be distributed under an MIT style license. See
|
|
7
8
|
# MIT-LICENSE for details.
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
require 'rbconfig'
|
|
11
|
+
require 'rubygems'
|
|
12
|
+
|
|
13
|
+
system_rake = File.join RbConfig::CONFIG['rubylibdir'], 'rake.rb'
|
|
14
|
+
|
|
15
|
+
# Use our rake, not the installed rake from system
|
|
16
|
+
if $".include? system_rake then
|
|
17
|
+
exec Gem.ruby, '-Ilib', 'bin/rake', *ARGV
|
|
14
18
|
end
|
|
19
|
+
|
|
20
|
+
require 'rubygems/package_task'
|
|
21
|
+
|
|
15
22
|
require 'rake/clean'
|
|
16
23
|
require 'rake/testtask'
|
|
17
|
-
require 'rake/rdoctask'
|
|
18
24
|
|
|
19
|
-
|
|
25
|
+
begin
|
|
26
|
+
gem 'rdoc'
|
|
27
|
+
require 'rdoc/task'
|
|
28
|
+
rescue Gem::LoadError
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
CLEAN.include('**/*.o', '*.dot', '**/*.rbc')
|
|
20
32
|
CLOBBER.include('doc/example/main', 'testdata')
|
|
21
33
|
CLOBBER.include('test/data/**/temp_*')
|
|
22
34
|
CLOBBER.include('test/data/chains/play.*')
|
|
@@ -34,7 +46,7 @@ end
|
|
|
34
46
|
|
|
35
47
|
# Determine the current version of the software
|
|
36
48
|
|
|
37
|
-
if `ruby -Ilib ./bin/drake --version` =~ /rake, version ([0-
|
|
49
|
+
if `ruby -Ilib ./bin/drake --version` =~ /rake, version ([0-9a-z.]+)$/
|
|
38
50
|
CURRENT_VERSION = $1
|
|
39
51
|
else
|
|
40
52
|
CURRENT_VERSION = "0.0.0"
|
|
@@ -47,84 +59,100 @@ SRC_RB = FileList['lib/**/*.rb']
|
|
|
47
59
|
# The default task is run if rake is given no explicit arguments.
|
|
48
60
|
|
|
49
61
|
desc "Default Task"
|
|
50
|
-
task :default => :
|
|
51
|
-
|
|
52
|
-
load 'Rakefile.drake'
|
|
62
|
+
task :default => "test:all"
|
|
53
63
|
|
|
54
64
|
# Test Tasks ---------------------------------------------------------
|
|
55
|
-
task :dbg do |t|
|
|
56
|
-
puts "Arguments are: #{t.args.join(', ')}"
|
|
57
|
-
end
|
|
58
65
|
|
|
59
66
|
# Common Abbreviations ...
|
|
60
67
|
|
|
61
|
-
task :ta => :
|
|
62
|
-
task :tf => :
|
|
63
|
-
task :tu => :
|
|
64
|
-
task :tc => :
|
|
65
|
-
task :test => :
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
'test/
|
|
70
|
-
'test/contrib/test*.rb'
|
|
71
|
-
'test
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
Rake::TestTask.new(:test_serial) do |t|
|
|
75
|
-
t.test_files = ['test/serial_setup.rb'] + test_files
|
|
76
|
-
t.warning = true
|
|
77
|
-
t.verbose = false
|
|
68
|
+
task :ta => "test:all"
|
|
69
|
+
task :tf => "test:functional"
|
|
70
|
+
task :tu => "test:units"
|
|
71
|
+
task :tc => "test:contribs"
|
|
72
|
+
task :test => "test:units"
|
|
73
|
+
|
|
74
|
+
module TestFiles
|
|
75
|
+
UNIT = FileList['test/lib/*_test.rb']
|
|
76
|
+
FUNCTIONAL = FileList['test/functional/*_test.rb']
|
|
77
|
+
CONTRIB = FileList['test/contrib/test*.rb']
|
|
78
|
+
TOP = FileList['test/*_test.rb']
|
|
79
|
+
ALL = TOP + UNIT + FUNCTIONAL + CONTRIB
|
|
78
80
|
end
|
|
79
81
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
t.warning = true
|
|
83
|
-
t.verbose = false
|
|
84
|
-
end
|
|
82
|
+
namespace :test do
|
|
83
|
+
task :all => [:serial, :parallel]
|
|
85
84
|
|
|
86
|
-
Rake::TestTask.new(:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
end
|
|
85
|
+
Rake::TestTask.new(:serial) do |t|
|
|
86
|
+
t.test_files = ['test/serial_setup.rb'] + TestFiles::ALL
|
|
87
|
+
t.libs << "."
|
|
88
|
+
t.warning = true
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
Rake::TestTask.new(:parallel) do |t|
|
|
92
|
+
t.test_files = ['test/parallel_setup.rb'] + TestFiles::ALL
|
|
93
|
+
t.libs << "."
|
|
94
|
+
t.warning = true
|
|
95
|
+
end
|
|
91
96
|
|
|
92
|
-
Rake::TestTask.new(:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
end
|
|
97
|
+
Rake::TestTask.new(:units) do |t|
|
|
98
|
+
t.test_files = TestFiles::UNIT
|
|
99
|
+
t.libs << "."
|
|
100
|
+
t.warning = true
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
Rake::TestTask.new(:functional) do |t|
|
|
104
|
+
t.test_files = TestFiles::FUNCTIONAL
|
|
105
|
+
t.libs << "."
|
|
106
|
+
t.warning = true
|
|
107
|
+
end
|
|
97
108
|
|
|
98
|
-
Rake::TestTask.new(:
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
109
|
+
Rake::TestTask.new(:contribs) do |t|
|
|
110
|
+
t.test_files = TestFiles::CONTRIB
|
|
111
|
+
t.libs << "."
|
|
112
|
+
t.warning = true
|
|
113
|
+
end
|
|
102
114
|
end
|
|
103
115
|
|
|
104
116
|
begin
|
|
105
117
|
require 'rcov/rcovtask'
|
|
118
|
+
IGNORE_COVERAGE_IN = FileList[
|
|
119
|
+
'lib/rake/rdoctask.rb',
|
|
120
|
+
'lib/rake/testtask.rb',
|
|
121
|
+
'lib/rake/packagetask.rb',
|
|
122
|
+
'lib/rake/clean.rb',
|
|
123
|
+
]
|
|
124
|
+
|
|
125
|
+
unless File::ALT_SEPARATOR
|
|
126
|
+
IGNORE_COVERAGE_IN.include(
|
|
127
|
+
'lib/rake/alt_system.rb',
|
|
128
|
+
'lib/rake/win32.rb')
|
|
129
|
+
end
|
|
106
130
|
|
|
107
131
|
Rcov::RcovTask.new do |t|
|
|
108
132
|
t.libs << "test"
|
|
109
|
-
dot_rakes =
|
|
110
133
|
t.rcov_opts = [
|
|
111
134
|
'-xRakefile', '-xrakefile', '-xpublish.rf',
|
|
112
|
-
'-xlib/rake/contrib', '-x/Library',
|
|
135
|
+
'-xlib/rake/contrib', '-x/Library', '-x.rvm',
|
|
113
136
|
'--text-report',
|
|
114
137
|
'--sort coverage'
|
|
115
|
-
] + FileList['rakelib/*.rake'].pathmap("-x%p")
|
|
138
|
+
] + FileList['rakelib/*.rake'].pathmap("-x%p") +
|
|
139
|
+
IGNORE_COVERAGE_IN.map { |fn| "-x#{fn}" }
|
|
116
140
|
t.test_files = FileList[
|
|
117
|
-
'test/
|
|
141
|
+
'test/lib/*_test.rb',
|
|
142
|
+
'test/contrib/*_test.rb',
|
|
143
|
+
'test/functional/*_test.rb'
|
|
118
144
|
]
|
|
119
145
|
t.output_dir = 'coverage'
|
|
120
146
|
t.verbose = true
|
|
121
147
|
end
|
|
122
148
|
rescue LoadError
|
|
123
|
-
|
|
149
|
+
task :rcov do
|
|
150
|
+
puts "RCov is not available"
|
|
151
|
+
end
|
|
124
152
|
end
|
|
125
153
|
|
|
126
154
|
directory 'testdata'
|
|
127
|
-
[:
|
|
155
|
+
["test:all", :test_units, :test_contribs, :test_functional].each do |t|
|
|
128
156
|
task t => ['testdata']
|
|
129
157
|
end
|
|
130
158
|
|
|
@@ -139,28 +167,24 @@ end
|
|
|
139
167
|
|
|
140
168
|
# Create a task to build the RDOC documentation tree.
|
|
141
169
|
|
|
142
|
-
begin
|
|
143
|
-
require 'darkfish-rdoc'
|
|
144
|
-
DARKFISH_ENABLED = true
|
|
145
|
-
rescue LoadError => ex
|
|
146
|
-
DARKFISH_ENABLED = false
|
|
147
|
-
end
|
|
148
|
-
|
|
149
170
|
BASE_RDOC_OPTIONS = [
|
|
150
|
-
'--line-numbers',
|
|
151
|
-
'--main', 'README',
|
|
152
|
-
'--title', 'Drake: Distributed Rake'
|
|
171
|
+
'--line-numbers', '--show-hash',
|
|
172
|
+
'--main', 'README.rdoc',
|
|
173
|
+
'--title', 'Drake: Distributed Rake'
|
|
153
174
|
]
|
|
154
175
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
176
|
+
if defined?(RDoc::Task) then
|
|
177
|
+
RDoc::Task.new do |rdoc|
|
|
178
|
+
rdoc.rdoc_dir = 'html'
|
|
179
|
+
rdoc.title = "Drake -- Distributed Rake"
|
|
180
|
+
rdoc.options = BASE_RDOC_OPTIONS.dup
|
|
181
|
+
|
|
182
|
+
rdoc.rdoc_files.include('README.rdoc', 'MIT-LICENSE', 'TODO', 'CHANGES', 'CHANGES-drake')
|
|
183
|
+
rdoc.rdoc_files.include('lib/**/*.rb', 'doc/**/*.rdoc')
|
|
184
|
+
rdoc.rdoc_files.exclude(/\bcontrib\b/)
|
|
185
|
+
end
|
|
186
|
+
else
|
|
187
|
+
warn "RDoc 2.4.2+ is required to build documentation"
|
|
164
188
|
end
|
|
165
189
|
|
|
166
190
|
# ====================================================================
|
|
@@ -168,14 +192,15 @@ end
|
|
|
168
192
|
# tar, zip and gem files.
|
|
169
193
|
|
|
170
194
|
PKG_FILES = FileList[
|
|
195
|
+
'.gemtest',
|
|
171
196
|
'install.rb',
|
|
172
197
|
'[A-Z]*',
|
|
173
198
|
'bin/drake',
|
|
174
|
-
'lib/**/*.rb',
|
|
199
|
+
'lib/**/*.rb',
|
|
175
200
|
'test/**/*.rb',
|
|
176
201
|
'test/**/*.rf',
|
|
177
202
|
'test/**/*.mf',
|
|
178
|
-
'test/**/Rakefile
|
|
203
|
+
'test/**/Rakefile',
|
|
179
204
|
'test/**/subdir',
|
|
180
205
|
'doc/**/*'
|
|
181
206
|
]
|
|
@@ -187,22 +212,24 @@ if ! defined?(Gem)
|
|
|
187
212
|
puts "Package Target requires RubyGEMs"
|
|
188
213
|
else
|
|
189
214
|
SPEC = Gem::Specification.new do |s|
|
|
190
|
-
|
|
215
|
+
|
|
191
216
|
#### Basic information.
|
|
192
217
|
|
|
193
218
|
s.name = 'drake'
|
|
194
219
|
s.version = $package_version
|
|
195
220
|
s.summary = "A branch of Rake supporting automatic parallelizing of tasks."
|
|
196
221
|
s.description = <<-EOF
|
|
197
|
-
|
|
198
|
-
and dependencies are specified in standard
|
|
222
|
+
Drake is an auto-parallelizing branch of Rake, a Make-like program
|
|
223
|
+
implemented in Ruby. Tasks and dependencies are specified in standard
|
|
224
|
+
Ruby syntax.
|
|
199
225
|
EOF
|
|
200
226
|
|
|
201
227
|
#### Dependencies and requirements.
|
|
228
|
+
s.add_dependency('comp_tree', '>= 1.1.3')
|
|
202
229
|
|
|
203
|
-
s.
|
|
204
|
-
|
|
205
|
-
|
|
230
|
+
s.required_rubygems_version = '>= 1.3.2'
|
|
231
|
+
s.add_development_dependency 'session', '~> 2.4'
|
|
232
|
+
s.add_development_dependency 'flexmock', '~> 0.8.11'
|
|
206
233
|
|
|
207
234
|
#### Which files are to be included in this gem? Everything! (Except CVS directories.)
|
|
208
235
|
|
|
@@ -218,19 +245,25 @@ else
|
|
|
218
245
|
|
|
219
246
|
s.bindir = "bin" # Use these for applications.
|
|
220
247
|
s.executables = ["drake"]
|
|
221
|
-
s.default_executable = "drake"
|
|
222
248
|
|
|
223
249
|
#### Documentation and testing.
|
|
224
250
|
|
|
225
|
-
s.
|
|
226
|
-
|
|
251
|
+
s.extra_rdoc_files = FileList[
|
|
252
|
+
'README.rdoc',
|
|
253
|
+
'MIT-LICENSE',
|
|
254
|
+
'TODO',
|
|
255
|
+
'CHANGES',
|
|
256
|
+
'CHANGES-drake',
|
|
257
|
+
'doc/**/*.rdoc'
|
|
258
|
+
]
|
|
259
|
+
|
|
227
260
|
s.rdoc_options = BASE_RDOC_OPTIONS
|
|
228
261
|
|
|
229
262
|
#### Author and project details.
|
|
230
263
|
|
|
231
264
|
s.author = "James M. Lawrence"
|
|
232
265
|
s.email = "quixoticsycophant@gmail.com"
|
|
233
|
-
s.homepage = "http://
|
|
266
|
+
s.homepage = "http://quix.github.com/rake"
|
|
234
267
|
s.rubyforge_project = "drake"
|
|
235
268
|
# if ENV['CERT_DIR']
|
|
236
269
|
# s.signing_key = File.join(ENV['CERT_DIR'], 'gem-private_key.pem')
|
|
@@ -238,7 +271,7 @@ else
|
|
|
238
271
|
# end
|
|
239
272
|
end
|
|
240
273
|
|
|
241
|
-
|
|
274
|
+
Gem::PackageTask.new(SPEC) do |pkg|
|
|
242
275
|
pkg.need_zip = true
|
|
243
276
|
pkg.need_tar = true
|
|
244
277
|
end
|
|
@@ -254,6 +287,8 @@ end
|
|
|
254
287
|
|
|
255
288
|
# Misc tasks =========================================================
|
|
256
289
|
|
|
290
|
+
load 'Rakefile-drake'
|
|
291
|
+
|
|
257
292
|
def count_lines(filename)
|
|
258
293
|
lines = 0
|
|
259
294
|
codelines = 0
|
|
@@ -300,28 +335,13 @@ task :todo do
|
|
|
300
335
|
RUBY_FILES.egrep(/#.*(FIXME|TODO|TBD)/)
|
|
301
336
|
end
|
|
302
337
|
|
|
303
|
-
desc "Look for Debugging print lines"
|
|
304
|
-
task :dbg do
|
|
305
|
-
RUBY_FILES.egrep(/\bDBG|\bbreakpoint\b/)
|
|
306
|
-
end
|
|
307
|
-
|
|
308
338
|
desc "List all ruby files"
|
|
309
|
-
task :rubyfiles do
|
|
339
|
+
task :rubyfiles do
|
|
310
340
|
puts RUBY_FILES
|
|
311
341
|
puts FileList['bin/*'].exclude('bin/*.rb')
|
|
312
342
|
end
|
|
313
343
|
task :rf => :rubyfiles
|
|
314
344
|
|
|
315
|
-
desc "Create a TAGS file"
|
|
316
|
-
task :tags => "TAGS"
|
|
317
|
-
|
|
318
|
-
TAGS = 'xctags -e'
|
|
319
|
-
|
|
320
|
-
file "TAGS" => RUBY_FILES do
|
|
321
|
-
puts "Makings TAGS"
|
|
322
|
-
sh "#{TAGS} #{RUBY_FILES}", :verbose => false
|
|
323
|
-
end
|
|
324
|
-
|
|
325
345
|
# --------------------------------------------------------------------
|
|
326
346
|
# Creating a release
|
|
327
347
|
|
|
@@ -333,32 +353,31 @@ task :noop
|
|
|
333
353
|
#plugin "release_manager"
|
|
334
354
|
|
|
335
355
|
desc "Make a new release"
|
|
336
|
-
task :release, :rel, :reuse, :reltest
|
|
337
|
-
:needs => [
|
|
356
|
+
task :release, [:rel, :reuse, :reltest] => [
|
|
338
357
|
:prerelease,
|
|
339
358
|
:clobber,
|
|
340
|
-
:
|
|
359
|
+
"test:all",
|
|
341
360
|
:update_version,
|
|
342
361
|
:package,
|
|
343
362
|
:tag
|
|
344
363
|
] do
|
|
345
|
-
announce
|
|
364
|
+
announce
|
|
346
365
|
announce "**************************************************************"
|
|
347
366
|
announce "* Release #{$package_version} Complete."
|
|
348
367
|
announce "* Packages ready to upload."
|
|
349
368
|
announce "**************************************************************"
|
|
350
|
-
announce
|
|
369
|
+
announce
|
|
351
370
|
end
|
|
352
371
|
|
|
353
372
|
# Validate that everything is ready to go for a release.
|
|
354
373
|
task :prerelease, :rel, :reuse, :reltest do |t, args|
|
|
355
374
|
$package_version = args.rel
|
|
356
|
-
announce
|
|
375
|
+
announce
|
|
357
376
|
announce "**************************************************************"
|
|
358
377
|
announce "* Making RubyGem Release #{$package_version}"
|
|
359
378
|
announce "* (current version #{CURRENT_VERSION})"
|
|
360
379
|
announce "**************************************************************"
|
|
361
|
-
announce
|
|
380
|
+
announce
|
|
362
381
|
|
|
363
382
|
# Is a release number supplied?
|
|
364
383
|
unless args.rel
|
|
@@ -384,21 +403,20 @@ task :prerelease, :rel, :reuse, :reltest do |t, args|
|
|
|
384
403
|
end
|
|
385
404
|
end
|
|
386
405
|
|
|
387
|
-
task :update_version, :rel, :reuse, :reltest,
|
|
388
|
-
:needs => [:prerelease] do |t, args|
|
|
406
|
+
task :update_version, [:rel, :reuse, :reltest] => [:prerelease] do |t, args|
|
|
389
407
|
if args.rel == CURRENT_VERSION
|
|
390
408
|
announce "No version change ... skipping version update"
|
|
391
409
|
else
|
|
392
410
|
announce "Updating Rake version to #{args.rel}"
|
|
393
411
|
open("lib/rake.rb") do |rakein|
|
|
394
412
|
open("lib/rake.rb.new", "w") do |rakeout|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
413
|
+
rakein.each do |line|
|
|
414
|
+
if line =~ /^RAKEVERSION\s*=\s*/
|
|
415
|
+
rakeout.puts "RAKEVERSION = '#{args.rel}'"
|
|
416
|
+
else
|
|
417
|
+
rakeout.puts line
|
|
418
|
+
end
|
|
419
|
+
end
|
|
402
420
|
end
|
|
403
421
|
end
|
|
404
422
|
mv "lib/rake.rb.new", "lib/rake.rb"
|
|
@@ -411,8 +429,7 @@ task :update_version, :rel, :reuse, :reltest,
|
|
|
411
429
|
end
|
|
412
430
|
|
|
413
431
|
desc "Tag all the CVS files with the latest release number (REL=x.y.z)"
|
|
414
|
-
task :tag, :rel, :reuse, :reltest,
|
|
415
|
-
:needs => [:prerelease] do |t, args|
|
|
432
|
+
task :tag, [:rel, :reuse, :reltest] => [:prerelease] do |t, args|
|
|
416
433
|
reltag = "REL_#{args.rel.gsub(/\./, '_')}"
|
|
417
434
|
reltag << args.reuse.gsub(/\./, '_') if args.reuse
|
|
418
435
|
announce "Tagging Repository with [#{reltag}]"
|
|
@@ -423,14 +440,6 @@ task :tag, :rel, :reuse, :reltest,
|
|
|
423
440
|
end
|
|
424
441
|
end
|
|
425
442
|
|
|
426
|
-
desc "Install the jamis RDoc template"
|
|
427
|
-
task :install_jamis_template do
|
|
428
|
-
require 'rbconfig'
|
|
429
|
-
dest_dir = File.join(Config::CONFIG['rubylibdir'], "rdoc/generators/template/html")
|
|
430
|
-
fail "Unabled to write to #{dest_dir}" unless File.writable?(dest_dir)
|
|
431
|
-
install "doc/jamis.rb", dest_dir, :verbose => true
|
|
432
|
-
end
|
|
433
|
-
|
|
434
443
|
# Require experimental XForge/Metaproject support.
|
|
435
444
|
|
|
436
445
|
load 'xforge.rf' if File.exist?('xforge.rf')
|
|
@@ -439,3 +448,8 @@ desc "Where is the current directory. This task displays\nthe current rake dire
|
|
|
439
448
|
task :where_am_i do
|
|
440
449
|
puts Rake.original_dir
|
|
441
450
|
end
|
|
451
|
+
|
|
452
|
+
task :failure => :really_fail
|
|
453
|
+
task :really_fail do
|
|
454
|
+
fail "oops"
|
|
455
|
+
end
|