rake 10.5.0 → 13.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. checksums.yaml +5 -5
  2. data/History.rdoc +2032 -288
  3. data/README.rdoc +40 -24
  4. data/doc/jamis.rb +1 -0
  5. data/doc/rake.1 +139 -124
  6. data/doc/rakefile.rdoc +2 -4
  7. data/{bin → exe}/rake +1 -7
  8. data/lib/rake/application.rb +164 -93
  9. data/lib/rake/backtrace.rb +4 -2
  10. data/lib/rake/clean.rb +7 -5
  11. data/lib/rake/cloneable.rb +1 -0
  12. data/lib/rake/cpu_counter.rb +10 -28
  13. data/lib/rake/default_loader.rb +1 -0
  14. data/lib/rake/dsl_definition.rb +8 -13
  15. data/lib/rake/early_time.rb +1 -0
  16. data/lib/rake/ext/core.rb +1 -0
  17. data/lib/rake/ext/string.rb +22 -21
  18. data/lib/rake/file_creation_task.rb +4 -3
  19. data/lib/rake/file_list.rb +34 -27
  20. data/lib/rake/file_task.rb +19 -7
  21. data/lib/rake/file_utils.rb +37 -33
  22. data/lib/rake/file_utils_ext.rb +8 -18
  23. data/lib/rake/invocation_chain.rb +1 -0
  24. data/lib/rake/invocation_exception_mixin.rb +1 -0
  25. data/lib/rake/late_time.rb +2 -1
  26. data/lib/rake/linked_list.rb +24 -15
  27. data/lib/rake/loaders/makefile.rb +5 -4
  28. data/lib/rake/multi_task.rb +2 -1
  29. data/lib/rake/name_space.rb +1 -1
  30. data/lib/rake/packagetask.rb +40 -17
  31. data/lib/rake/phony.rb +2 -1
  32. data/lib/rake/private_reader.rb +1 -0
  33. data/lib/rake/promise.rb +13 -12
  34. data/lib/rake/pseudo_status.rb +1 -0
  35. data/lib/rake/rake_module.rb +30 -1
  36. data/lib/rake/rake_test_loader.rb +9 -4
  37. data/lib/rake/rule_recursion_overflow_error.rb +2 -2
  38. data/lib/rake/scope.rb +3 -2
  39. data/lib/rake/task.rb +82 -31
  40. data/lib/rake/task_argument_error.rb +1 -0
  41. data/lib/rake/task_arguments.rb +15 -4
  42. data/lib/rake/task_manager.rb +56 -32
  43. data/lib/rake/tasklib.rb +2 -14
  44. data/lib/rake/testtask.rb +37 -61
  45. data/lib/rake/thread_history_display.rb +4 -3
  46. data/lib/rake/thread_pool.rb +16 -17
  47. data/lib/rake/trace_output.rb +2 -1
  48. data/lib/rake/version.rb +4 -1
  49. data/lib/rake/win32.rb +10 -15
  50. data/lib/rake.rb +34 -43
  51. data/rake.gemspec +101 -0
  52. metadata +24 -223
  53. data/.autotest +0 -7
  54. data/.rubocop.yml +0 -27
  55. data/.togglerc +0 -7
  56. data/CONTRIBUTING.rdoc +0 -38
  57. data/Manifest.txt +0 -166
  58. data/Rakefile +0 -81
  59. data/doc/release_notes/rake-0.4.14.rdoc +0 -23
  60. data/doc/release_notes/rake-0.4.15.rdoc +0 -35
  61. data/doc/release_notes/rake-0.5.0.rdoc +0 -53
  62. data/doc/release_notes/rake-0.5.3.rdoc +0 -78
  63. data/doc/release_notes/rake-0.5.4.rdoc +0 -46
  64. data/doc/release_notes/rake-0.6.0.rdoc +0 -141
  65. data/doc/release_notes/rake-0.7.0.rdoc +0 -119
  66. data/doc/release_notes/rake-0.7.1.rdoc +0 -59
  67. data/doc/release_notes/rake-0.7.2.rdoc +0 -121
  68. data/doc/release_notes/rake-0.7.3.rdoc +0 -47
  69. data/doc/release_notes/rake-0.8.0.rdoc +0 -114
  70. data/doc/release_notes/rake-0.8.2.rdoc +0 -165
  71. data/doc/release_notes/rake-0.8.3.rdoc +0 -112
  72. data/doc/release_notes/rake-0.8.4.rdoc +0 -147
  73. data/doc/release_notes/rake-0.8.5.rdoc +0 -53
  74. data/doc/release_notes/rake-0.8.6.rdoc +0 -37
  75. data/doc/release_notes/rake-0.8.7.rdoc +0 -55
  76. data/doc/release_notes/rake-0.9.0.rdoc +0 -112
  77. data/doc/release_notes/rake-0.9.1.rdoc +0 -52
  78. data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
  79. data/doc/release_notes/rake-0.9.2.rdoc +0 -49
  80. data/doc/release_notes/rake-0.9.3.rdoc +0 -102
  81. data/doc/release_notes/rake-0.9.4.rdoc +0 -60
  82. data/doc/release_notes/rake-0.9.5.rdoc +0 -55
  83. data/doc/release_notes/rake-0.9.6.rdoc +0 -64
  84. data/doc/release_notes/rake-10.0.0.rdoc +0 -178
  85. data/doc/release_notes/rake-10.0.1.rdoc +0 -58
  86. data/doc/release_notes/rake-10.0.2.rdoc +0 -53
  87. data/doc/release_notes/rake-10.0.3.rdoc +0 -191
  88. data/doc/release_notes/rake-10.1.0.rdoc +0 -61
  89. data/lib/rake/alt_system.rb +0 -110
  90. data/lib/rake/contrib/.document +0 -1
  91. data/lib/rake/contrib/compositepublisher.rb +0 -21
  92. data/lib/rake/contrib/ftptools.rb +0 -137
  93. data/lib/rake/contrib/publisher.rb +0 -81
  94. data/lib/rake/contrib/rubyforgepublisher.rb +0 -18
  95. data/lib/rake/contrib/sshpublisher.rb +0 -61
  96. data/lib/rake/contrib/sys.rb +0 -4
  97. data/lib/rake/ext/module.rb +0 -2
  98. data/lib/rake/ext/pathname.rb +0 -25
  99. data/lib/rake/ext/time.rb +0 -18
  100. data/lib/rake/gempackagetask.rb +0 -4
  101. data/lib/rake/pathmap.rb +0 -3
  102. data/lib/rake/rdoctask.rb +0 -4
  103. data/lib/rake/ruby182_test_unit_fix.rb +0 -29
  104. data/lib/rake/runtest.rb +0 -27
  105. data/rakelib/publish.rake +0 -20
  106. data/rakelib/test_times.rake +0 -25
  107. data/test/file_creation.rb +0 -34
  108. data/test/helper.rb +0 -129
  109. data/test/support/rakefile_definitions.rb +0 -478
  110. data/test/support/ruby_runner.rb +0 -34
  111. data/test/test_private_reader.rb +0 -42
  112. data/test/test_rake.rb +0 -40
  113. data/test/test_rake_application.rb +0 -643
  114. data/test/test_rake_application_options.rb +0 -468
  115. data/test/test_rake_backtrace.rb +0 -119
  116. data/test/test_rake_clean.rb +0 -61
  117. data/test/test_rake_cpu_counter.rb +0 -68
  118. data/test/test_rake_definitions.rb +0 -84
  119. data/test/test_rake_directory_task.rb +0 -76
  120. data/test/test_rake_dsl.rb +0 -40
  121. data/test/test_rake_early_time.rb +0 -31
  122. data/test/test_rake_extension.rb +0 -59
  123. data/test/test_rake_file_creation_task.rb +0 -56
  124. data/test/test_rake_file_list.rb +0 -670
  125. data/test/test_rake_file_list_path_map.rb +0 -8
  126. data/test/test_rake_file_task.rb +0 -197
  127. data/test/test_rake_file_utils.rb +0 -314
  128. data/test/test_rake_ftp_file.rb +0 -74
  129. data/test/test_rake_functional.rb +0 -482
  130. data/test/test_rake_invocation_chain.rb +0 -64
  131. data/test/test_rake_late_time.rb +0 -18
  132. data/test/test_rake_linked_list.rb +0 -84
  133. data/test/test_rake_makefile_loader.rb +0 -46
  134. data/test/test_rake_multi_task.rb +0 -64
  135. data/test/test_rake_name_space.rb +0 -57
  136. data/test/test_rake_package_task.rb +0 -79
  137. data/test/test_rake_path_map.rb +0 -168
  138. data/test/test_rake_path_map_explode.rb +0 -34
  139. data/test/test_rake_path_map_partial.rb +0 -18
  140. data/test/test_rake_pathname_extensions.rb +0 -15
  141. data/test/test_rake_pseudo_status.rb +0 -21
  142. data/test/test_rake_rake_test_loader.rb +0 -20
  143. data/test/test_rake_reduce_compat.rb +0 -26
  144. data/test/test_rake_require.rb +0 -40
  145. data/test/test_rake_rules.rb +0 -388
  146. data/test/test_rake_scope.rb +0 -44
  147. data/test/test_rake_task.rb +0 -393
  148. data/test/test_rake_task_argument_parsing.rb +0 -119
  149. data/test/test_rake_task_arguments.rb +0 -127
  150. data/test/test_rake_task_lib.rb +0 -9
  151. data/test/test_rake_task_manager.rb +0 -178
  152. data/test/test_rake_task_manager_argument_resolution.rb +0 -19
  153. data/test/test_rake_task_with_arguments.rb +0 -172
  154. data/test/test_rake_test_task.rb +0 -146
  155. data/test/test_rake_thread_pool.rb +0 -145
  156. data/test/test_rake_top_level_functions.rb +0 -71
  157. data/test/test_rake_win32.rb +0 -72
  158. data/test/test_thread_history_display.rb +0 -101
  159. data/test/test_trace_output.rb +0 -52
data/History.rdoc CHANGED
@@ -1,6 +1,274 @@
1
+ === 13.0.6
2
+
3
+ * Additional fix for #389
4
+ Pull request #390 by hsbt
5
+
6
+ === 13.0.5
7
+
8
+ * Fixed the regression of #388
9
+ Pull request #389 by hsbt
10
+
11
+ === 13.0.4
12
+
13
+ * Fix rake test loader swallowing useful error information.
14
+ Pull request #367 by deivid-rodriguez
15
+ * Add -C/--directory option the same as GNU make.
16
+ Pull request #376 by nobu
17
+
18
+ === 13.0.3
19
+
20
+ * Fix breaking change of execution order on TestTask.
21
+ Pull request #368 by ysakasin
22
+
23
+ === 13.0.2
24
+
25
+ ==== Enhancements
26
+
27
+ * Fix tests to work with current FileUtils
28
+ Pull Request #358 by jeremyevans
29
+ * Simplify default rake test loader
30
+ Pull Request #357 by deivid-rodriguez
31
+ * Update rdoc
32
+ Pull Request #366 by bahasalien
33
+ * Update broken links to rake articles from Avdi in README
34
+ Pull Request #360 by svl7
35
+
36
+ === 13.0.1
37
+
38
+ ==== Bug fixes
39
+
40
+ * Fixed bug: Reenabled task raises previous exception on second invokation
41
+ Pull Request #271 by thorsteneckel
42
+ * Fix an incorrectly resolved arg pattern
43
+ Pull Request #327 by mjbellantoni
44
+
45
+ === 13.0.0
46
+
47
+ ==== Enhancements
48
+
49
+ * Follows recent changes on keyword arguments in ruby 2.7.
50
+ Pull Request #326 by nobu
51
+ * Make `PackageTask` be able to omit parent directory while packing files
52
+ Pull Request #310 by tonytonyjan
53
+ * Add order only dependency
54
+ Pull Request #269 by take-cheeze
55
+
56
+ ==== Compatibility changes
57
+
58
+ * Drop old ruby versions(< 2.2)
59
+
60
+ === 12.3.3
61
+
62
+ ==== Bug fixes
63
+
64
+ * Use the application's name in error message if a task is not found.
65
+ Pull Request #303 by tmatilai
66
+
67
+ ==== Enhancements:
68
+
69
+ * Use File.open explicitly.
70
+
71
+ === 12.3.2
72
+
73
+ ==== Bug fixes
74
+
75
+ * Fixed test fails caused by 2.6 warnings.
76
+ Pull Request #297 by hsbt
77
+
78
+ ==== Enhancements:
79
+
80
+ * Rdoc improvements.
81
+ Pull Request #293 by colby-swandale
82
+ * Improve multitask performance.
83
+ Pull Request #273 by jsm
84
+ * Add alias `prereqs`.
85
+ Pull Request #268 by take-cheeze
86
+
87
+ === 12.3.1
88
+
89
+ ==== Bug fixes
90
+
91
+ * Support did_you_mean >= v1.2.0 which has a breaking change on formatters.
92
+ Pull request #262 by FUJI Goro.
93
+
94
+ ==== Enhancements:
95
+
96
+ * Don't run task if it depends on already invoked but failed task.
97
+ Pull request #252 by Gonzalo Rodriguez.
98
+ * Make space trimming consistent for all task arguments.
99
+ Pull request #259 by Gonzalo Rodriguez.
100
+ * Removes duplicated inclusion of Rake::DSL in tests.
101
+ Pull request #254 by Gonzalo Rodriguez.
102
+ * Re-raise a LoadError that didn't come from require in the test loader.
103
+ Pull request #250 by Dylan Thacker-Smith.
104
+
105
+ === 12.3.0
106
+
107
+ ==== Compatibility Changes
108
+
109
+ * Bump `required_ruby_version` to Ruby 2.0.0. Rake has already
110
+ removed support for Ruby 1.9.x.
111
+
112
+ ==== Enhancements:
113
+
114
+ * Support `test-bundled-gems` task on ruby core.
115
+
116
+ === 12.2.1
117
+
118
+ ==== Bug fixes
119
+
120
+ * Fixed to break Capistrano::Application on capistrano3.
121
+
122
+ === 12.2.0
123
+
124
+ ==== Enhancements:
125
+
126
+ * Make rake easier to use as a library
127
+ Pull request #211 by @drbrain
128
+ * Fix quadratic performance in FileTask#out_of_date?
129
+ Pull request #224 by @doudou
130
+ * Clarify output when printing nested exception traces
131
+ Pull request #232 by @urbanautomaton
132
+
133
+ ==== Bug fixes
134
+
135
+ * Account for a file that match 2 or more patterns.
136
+ Pull request #231 by @styd
137
+
138
+ === 12.1.0
139
+
140
+ ==== Enhancements:
141
+
142
+ * Added did_you_mean feature for invalid rake task.
143
+ Pull request #221 by @xtina-starr
144
+ * Enabled to dependency chained by extensions. Pull request #39 by Petr Skocik.
145
+ * Make all of string literals to frozen objects on Ruby 2.4 or later.
146
+
147
+ ==== Bug fixes
148
+
149
+ * Typo fixes in rakefile.rdoc. Pull request #180 by Yuta Kurotaki.
150
+ * Fix unexpected behavior of file task with dryrun option.
151
+ Pull request #183 by @aycabta.
152
+ * Make LoadError from running tests more obvious. Pull request #195
153
+ by Eric Hodel.
154
+ * Fix unexpected TypeError with hash style option. Pull request #202
155
+ by Kuniaki IGARASHI.
156
+
157
+ === 12.0.0
158
+
159
+ ==== Compatibility Changes
160
+
161
+ * Removed arguments on clear #157 by Jesse Bowes
162
+ * Removed `rake/contrib` packages. These are extracted to `rake-contrib` gem.
163
+ * Removed deprecated method named `last\_comment`.
164
+
165
+ ==== Enhancements:
166
+
167
+ * Re-use trace option on `cleanup` task. #164 by Brian Henderson
168
+ * Actions adore keyword arguments #174 by Josh Cheek
169
+ * Rake::TaskArguments#key? alias of #has_key? #175 by Paul Annesley
170
+
171
+ === 11.3.0 / 2016-09-20
172
+
173
+ ==== Enhancements:
174
+
175
+ * Remove to reference `Fixnum` constant. Pull request #160 by nobu
176
+
177
+ === 11.2.2 / 2016-06-12
178
+
179
+ ==== Bug fixes
180
+
181
+ * Fix unexpected behavior with multiple dependencies on Rake::TestTask
182
+
183
+ === 11.2.1 / 2016-06-12
184
+
185
+ ==== Bug fixes
186
+
187
+ * Fix regression of dependencies handling on Rake::TestTask. Report #139
188
+
189
+ === 11.2.0 / 2016-06-11
190
+
191
+ ==== Bug fixes
192
+
193
+ * Fix unexpected cut-out behavior on task description using triple dots
194
+ and exclamation. Report #106 from Stephan Kämper and Pull request #134 by Lee
195
+ * Fix empty argument assignment with `with_defaults` option. Pull request #135
196
+ by bakunyo
197
+ * Ignore to use `hwprefs` on Darwin platform. Use sysctl now. Report #128
198
+
199
+ ==== Enhancements
200
+
201
+ * Spawn options for sh Pull equest #138 by Eric Hodel.
202
+ * Allow to specify dependencies(prerequisites) for Rake::TestTask
203
+ Pull request #117 by Tim Maslyuchenko
204
+ * Use Bundler task instead of hoe for gem release.
205
+ * Remove explicitly load to rubygems for Ruby 1.8.
206
+ * Unify to declare `Rake::VERSION`.
207
+ * Support xz format for PackageTask.
208
+
209
+ === 11.1.2 / 2016-03-28
210
+
211
+ ==== Bug fixes
212
+
213
+ * Remove `-W` option when Rake::TestTask#verbose enabled. It's misunderstanding
214
+ specification change with Rake 11. Partly revert #67
215
+
216
+ === 11.1.1 / 2016-03-14
217
+
218
+ ==== Bug fixes
219
+
220
+ * Use `-W` instead of `--verbose` when Rake::TestTask#verbose enabled.
221
+ JRuby doesn't have `--verbose` option.
222
+
223
+ === 11.1.0 / 2016-03-11
224
+
225
+ ==== Compatibility Changes
226
+
227
+ * Revert to remove `last\_comment`. It will remove Rake 12.
228
+
229
+ === 11.0.1 / 2016-03-09
230
+
231
+ ==== Bug fixes
232
+
233
+ * Fixed packaging manifest.
234
+
235
+ === 11.0.0 / 2016-03-09
236
+
237
+ ==== Bug fixes
238
+
239
+ * Correctly handle bad encoding in exception messages. Pull request #113
240
+ by Tomer Brisker
241
+ * Fix verbose option at TestTask. Pull request #67 by Mike Blumtritt
242
+
243
+ ==== Enhancements
244
+
245
+ * Make FileList#exclude more analogous to FileList#include.
246
+ * Use IO.open instead of Open3.popen3 for CPU counter.
247
+ * Make Rake::Task#already_invoked publicly accessible.
248
+ Pull request #93 by Joe Rafaniello
249
+ * Lookup prerequisites with same name outside of scope instead of
250
+ matching self. Pull request #96 by Sandy Vanderbleek
251
+ * Make FileList#pathmap behave like String#pathmap.
252
+ Pull request #61 by Daniel Tamai
253
+ * Add fetch method to task arguments.
254
+ Pull request #12 by Chris Keathley
255
+ * Use ruby warnings by default. Pull request #97 by Harold Giménez
256
+
257
+ ==== Compatibility Changes
258
+
259
+ * Removed to support Ruby 1.8.x
260
+ * Removed constant named `RAKEVERSION`
261
+ * Removed Rake::AltSystem
262
+ * Removed Rake::RubyForgePublisher
263
+ * Removed Rake::TaskManager#last\_comment. Use last\_description.
264
+ * Removed Rake::TaskLib#paste
265
+ * Removed Top-level SshDirPublisher, SshFreshDirPublisher, SshFilePublisher
266
+ and CompositePublisher from lib/rake/contrib/publisher.rb
267
+ * Removed "rake/runtest.rb"
268
+
1
269
  === 10.5.0 / 2016-01-13
2
270
 
3
- Enhancements:
271
+ ==== Enhancements
4
272
 
5
273
  * Removed monkey patching for Ruby 1.8. Pull request #46 by Pablo Herrero.
6
274
  * Inheritance class of Rake::FileList returns always self class.
@@ -8,7 +276,7 @@ Enhancements:
8
276
 
9
277
  === 10.4.2 / 2014-12-02
10
278
 
11
- Bug fixes:
279
+ ==== Bug fixes
12
280
 
13
281
  * Rake no longer edits ARGV. This allows you to re-exec rake from a rake
14
282
  task. Pull requset #9 by Matt Palmer.
@@ -19,14 +287,14 @@ Bug fixes:
19
287
 
20
288
  === 10.4.1 / 2014-12-01
21
289
 
22
- Bug fixes:
290
+ ==== Bug fixes
23
291
 
24
292
  * Reverted fix for #277 as it caused numerous issues for rake users.
25
293
  rails/spring issue #366 by Gustavo Dutra.
26
294
 
27
295
  === 10.4.0 / 2014-11-22
28
296
 
29
- Enhancements:
297
+ ==== Enhancements
30
298
 
31
299
  * Upgraded to minitest 5. Pull request #292 by Teo Ljungberg.
32
300
  * Added support for Pathname in rake tasks. Pull request #271 by Randy
@@ -37,7 +305,7 @@ Enhancements:
37
305
  task. Issue #277 by Matt Palmer.
38
306
  * Etc.nprocessors is used for counting the number of CPUs.
39
307
 
40
- Bug fixes:
308
+ ==== Bug fixes
41
309
 
42
310
  * Updated rake manpage. Issue #283 by Nathan Long, pull request #291 by
43
311
  skittleys.
@@ -50,7 +318,7 @@ Bug fixes:
50
318
 
51
319
  === 10.3.2 / 2014-05-15
52
320
 
53
- Bug fixes:
321
+ ==== Bug fixes
54
322
 
55
323
  * Rake no longer infinitely loops when showing exception causes that refer to
56
324
  each other. Bug #272 by Chris Bandy.
@@ -58,7 +326,7 @@ Bug fixes:
58
326
 
59
327
  === 10.3.1 / 2014-04-17
60
328
 
61
- Bug fixes:
329
+ ==== Bug fixes
62
330
 
63
331
  * Really stop reporting an error when cleaning already-deleted files. Pull
64
332
  request #269 by Randy Coulman
@@ -66,13 +334,13 @@ Bug fixes:
66
334
 
67
335
  === 10.3 / 2014-04-15
68
336
 
69
- Enhancements:
337
+ ==== Enhancements
70
338
 
71
339
  * Added --build-all option to rake which treats all file prerequisites as
72
340
  out-of-date. Pull request #254 by Andrew Gilbert.
73
341
  * Added Rake::NameSpace#scope. Issue #263 by Jon San Miguel.
74
342
 
75
- Bug fixes:
343
+ ==== Bug fixes
76
344
 
77
345
  * Suppress org.jruby package files in rake error messages for JRuby users.
78
346
  Issue #213 by Charles Nutter.
@@ -84,13 +352,13 @@ Bug fixes:
84
352
 
85
353
  === 10.2.2 / 2014-03-27
86
354
 
87
- Bug fixes:
355
+ ==== Bug fixes
88
356
 
89
357
  * Restored Ruby 1.8.7 compatibility
90
358
 
91
359
  === 10.2.1 / 2014-03-25
92
360
 
93
- Bug fixes:
361
+ ==== Bug fixes
94
362
 
95
363
  * File tasks including a ':' are now top-level tasks again. Issue #262 by
96
364
  Josh Holtrop.
@@ -99,7 +367,7 @@ Bug fixes:
99
367
 
100
368
  === 10.2.0 / 2014-03-24
101
369
 
102
- Enhancements:
370
+ ==== Enhancements
103
371
 
104
372
  * Rake now requires Ruby 1.9 or newer. For me, this is a breaking change, but
105
373
  it seems that Jim planned to release it with Rake 10.2. See also pull
@@ -117,7 +385,7 @@ Enhancements:
117
385
  Filip Hrbek.
118
386
  * Rake now prints the exception class on errors. Patch #251 by David Cornu.
119
387
 
120
- Bug fixes:
388
+ ==== Bug fixes
121
389
 
122
390
  * Fixed typos. Pull request #256 by Valera Rozuvan, #250 via Jake Worth, #260
123
391
  by Zachary Scott.
@@ -126,375 +394,1851 @@ Bug fixes:
126
394
  * Clarified `rake -f` usage message. Pull request #252 by Marco Pfatschbacher.
127
395
  * Fixed a test failure on windows. Pull request #231 by Hiroshi Shirosaki.
128
396
  * Fixed corrupted rake.1.gz. Pull request #225 by Michel Boaventura.
129
- * Fixed bug in can_detect_signals? in test. Patch from #243 by Alexey
397
+ * Fixed bug in can\_detect\_signals? in test. Patch from #243 by Alexey
130
398
  Borzenkov.
131
399
 
132
- === 10.1.1 and earlier
400
+ === 10.1.1
133
401
 
134
- Additions to the old CHANGES file were not made consistently so some
135
- versions are missing from this file. These changes are usually described in
136
- the individual release notes files.
402
+ * Use http://github.com/jimweirich/rake instead of http://rake.rubyforge.org for
403
+ canonical project url.
137
404
 
138
- === 0.9.3
405
+ === 10.1.0
139
406
 
140
- * The rake test loader now removes arguments it has processed. Issue #51
141
- * Rake::TaskArguments now responds to #values_at
142
- * RakeFileUtils.verbose_flag = nil silences output the same as 0.8.7
143
- * Rake tests are now directory-independent
144
- * Rake tests are no longer require flexmock
145
- * Commands constant is no longer polluting top level namespace.
146
- * Show only the interesting portion of the backtrace by default (James M. Lawrence).
147
- * Added --reduce-compat optiont to remove backward compatible DSL hacks (James M. Lawrence).
148
- * lib/rake/file_list.rb (Rake::FileList#egrep): there is no need to
149
- open files in binary mode. (NAKAMURA Usaku)
407
+ ==== Changes
150
408
 
151
- === 0.9.2
409
+ ===== New Features
152
410
 
153
- * Unknown
411
+ * Add support for variable length task argument lists. If more actual
412
+ arguments are supplied than named arguments, then the extra
413
+ arguments values will be in args.extras.
154
414
 
155
- === 0.9.1
415
+ * Application name is not displayed in the help banner. (Previously
416
+ "rake" was hardcoded, now rake-based applications can display their
417
+ own names).
156
418
 
157
- * Added deprecation warnings to the Rake DSL methods.
419
+ ===== Bug Fixes
158
420
 
159
- === 0.9.0
421
+ Bug fixes include:
160
422
 
161
- * *Incompatible* *change*: Rake DSL commands ('task', 'file', etc.) are
162
- no longer private methods in Object. If you need to call 'task :xzy' inside
163
- your class, include Rake::DSL into the class. The DSL is still available at
164
- the top level scope (via the top level object which extends Rake::DSL).
423
+ * Fix backtrace suppression issues.
165
424
 
166
- * Rake now warns when the deprecated :needs syntax used.
425
+ * Rules now explicit get task arguments passed to them.
167
426
 
168
- * Rake history is now UTF-8 encoded.
427
+ * Rename FileList#exclude? to FileList#exclude\_from\_list? to avoid
428
+ conflict with new Rails method.
169
429
 
170
- * Rake now uses case-insensitive comparisons to find the Rakefile on Windows.
171
- Based on patch by Roger Pack.
430
+ * Clean / Clobber tasks now report failure to remove files.
172
431
 
173
- * Rake now requires (instead of loads) files in the test task. Patch by Cezary
174
- Baginski.
432
+ * Plus heaps of internal code cleanup.
175
433
 
176
- * Fixed typos. Patches by Sean Scot August Moon and R.T. Lechow.
434
+ ==== Thanks
177
435
 
178
- * Rake now prints the Rakefile directory only when it's different from the
179
- current directory. Patch by Alex Chaffee.
436
+ As usual, it was input from users that drove a lot of these changes.
437
+ The following people contributed patches, made suggestions or made
438
+ otherwise helpful comments. Thanks to ...
180
439
 
181
- * Improved rakefile_location discovery on Windows. Patch by James Tucker.
440
+ * Michael Nikitochkin (general code cleanup)
441
+ * Vipul A M (general code cleanup)
442
+ * Dennis Bell (variable length task argument lists)
443
+ * Jacob Swanner (rules arguments)
444
+ * Rafael Rosa Fu (documentation typo)
445
+ * Stuart Nelson (install.rb fixes)
446
+ * Lee Hambley (application name in help banner)
182
447
 
183
- * Rake now recognizes "Windows Server" as a windows system. Patch by Matthias
184
- Lüdtke
448
+ -- Jim Weirich
185
449
 
186
- * Rake::RDocTask is deprecated. Use RDoc::Task from RDoc 2.4.2+ (require
187
- 'rdoc/task')
450
+ === 10.0.3
188
451
 
189
- * Rake::GemPackageTask is deprecated. Use Gem::PackageTask (require
190
- 'rubygems/package_task')
452
+ "Jim, when will Rake reach version 1.0?"
191
453
 
192
- * Rake now outputs various messages to $stderr instead of $stdout.
454
+ Over the past several years I've been asked that question at
455
+ conferences, panels and over twitter. Due to historical reasons (or
456
+ maybe just plain laziness) Rake has (incorrectly) been treating the
457
+ second digit of the version as the major release number. So in my head
458
+ Rake was already at version 9.
193
459
 
194
- * Rake no longer emits warnings for Config. Patch by Santiago Pastorino.
460
+ Well, it's time to fix things. This next version of Rake drops old,
461
+ crufty, backwards compatibility hacks such as top level constants, DSL
462
+ methods defined in Object and numerous other features that are just no
463
+ longer desired. It's also time to drop the leading zero from the
464
+ version number as well and call this new version of rake what it
465
+ really is: Version 10.
195
466
 
196
- * Split rake.rb into individual files.
467
+ So, welcome to Rake 10.0!
197
468
 
198
- * Support for the --where (-W) flag for showing where a task is defined.
469
+ Rake 10 is actually feature identical to the latest version of Rake 9
470
+ (that would be the version spelled 0.9.3), *except* that Rake 10 drops
471
+ all the sundry deprecated features that have accumulated over the years.
199
472
 
200
- * Fixed quoting in test task.
201
- (http://onestepback.org/redmine/issues/show/44,
202
- http://www.pivotaltracker.com/story/show/1223138)
473
+ If your Rakefile is up to date and current with all the new features
474
+ of Rake 10, you are ready to go. If your Rakefile still uses a few
475
+ deprecated feeatures, feel free to use Rake 9 (0.9.3) with the same
476
+ feature set. Just be aware that future features will be in Rake 10
477
+ family line.
203
478
 
204
- * Fixed the silent option parsing problem.
205
- (http://onestepback.org/redmine/issues/show/47)
479
+ ==== Changes
206
480
 
207
- * Fixed :verbose=>false flag on sh and ruby commands.
481
+ As mentioned above, there are no new features in Rake 10. However,
482
+ there are a number of features missing:
208
483
 
209
- * Rake command line options may be given by default in a RAKEOPT
210
- environment variable.
484
+ * Classic namespaces are now gone. Rake is no longer able to reflect
485
+ the options settings in the global variables ($rakefile, $show\_tasks,
486
+ $show\_prereqs, $trace, $dryrun and $silent). The
487
+ <tt>--classic-namespace</tt> option is no longer supported.
211
488
 
212
- * Errors in Rake will now display the task invocation chain in effect
213
- at the time of the error.
489
+ * Global constants are no longer supported. This includes
490
+ <tt>Task</tt>, <tt>FileTask</tt>, <tt>FileCreationTask</tt> and
491
+ <tt>RakeApp</tt>). The constant missing hook to warn about using
492
+ global rake constants has been removed.
214
493
 
215
- * Accepted change by warnickr to not expand test patterns in shell
216
- (allowing more files in the test suite).
494
+ * The Rake DSL methods (task, file, directory, etc) are in their own
495
+ module (Rake::DSL). The stub versions of these methods (that printed
496
+ warnings) in Object have been removed. However, the DSL methods are
497
+ added to the top-level <tt>main</tt> object. Since <tt>main</tt> is
498
+ not in the inheritance tree, the presence of the DSL methods in main
499
+ should be low impact on other libraries.
217
500
 
218
- * Fixed that file tasks did not perform prereq lookups in scope
219
- (Redmine #57).
501
+ If you want to use the Rake DSL commands from your own code, just
502
+ include <tt>Rake::DSL</tt> into your own classes and modules.
220
503
 
221
- === 0.8.7
504
+ * The deprecated syntax for task arguments (the one using
505
+ <tt>:needs</tt>) has been removed.
222
506
 
223
- * Fixed EXEEXT for JRuby on windows.
507
+ * The <tt>--reduce-compat</tt> flag has been removed (it's not needed
508
+ anymore).
224
509
 
225
- === 0.8.6
510
+ * The deprecated <tt>rake/sys.rb</tt> library has been removed.
226
511
 
227
- * Minor fixes to the RDoc generation (removed dependency on darkfish
228
- and removed inline source option).
512
+ * The deprecated <tt>rake/rdoctask.rb</tt> library has been removed.
513
+ RDoc supplies its own rake task now.
229
514
 
230
- * Now allow # comments to comment a task definition.
515
+ * The deprecated <tt>rake/gempackagetask.rb</tt> library has been
516
+ removed. Gem supplies its own package task now.
231
517
 
232
- === 0.8.5
518
+ There is one small behavioral change:
233
519
 
234
- * Better support for the system command on Windows.
520
+ * Non-file tasks now always report the current time as their time
521
+ stamp. This is different from the previous behavior where non-file
522
+ tasks reported current time only if there were no prerequisites, and
523
+ the max prerequisite timestamp otherwise. This lead to inconsistent
524
+ and surprising behavior when adding prerequisites to tasks that in
525
+ turn were prequisites to file tasks. The new behavior is more
526
+ consistent and predictable.
235
527
 
236
- === 0.8.4
528
+ ==== Changes (from 0.9.3, 0.9.4, 0.9.5)
237
529
 
238
- * Preserve case when locating rakefiles (patch from James
239
- M. Lawrence/quix)
530
+ Since Rake 10 includes the changes from the last version of Rake 9,
531
+ we'll repeat the changes for versions 0.9.3 through 0.9.5 here.
240
532
 
241
- * Better support for windows paths in the test task (patch from Simon
242
- Chiang/bahuvrihi)
533
+ ===== New Features (in 0.9.3)
243
534
 
244
- * Windows system dir search order is now: HOME, HOMEDRIVE + HOMEPATH,
245
- APPDATA, USERPROFILE (patch from Luis Lavena)
535
+ * Multitask tasks now use a thread pool. Use -j to limit the number of
536
+ available threads.
246
537
 
247
- * MingGW is now recognized as a windows platform. (patch from Luis
248
- Lavena)
538
+ * Use -m to turn regular tasks into multitasks (use at your own risk).
249
539
 
250
- * Numerous fixes to the windows test suite (patch from Luis Lavena).
540
+ * You can now do "Rake.add_rakelib 'dir'" in your Rakefile to
541
+ programatically add rake task libraries.
251
542
 
252
- * Improved Rakefile case insensitivity testing (patch from Luis
253
- Lavena).
543
+ * You can specific backtrace suppression patterns (see
544
+ --suppress-backtrace)
254
545
 
255
- * Fixed stray ARGV option problem that was interfering with
256
- Test::Unit::Runner.
546
+ * Directory tasks can now take prerequisites and actions
257
547
 
258
- * Fixed default verbose mode (was accidently changed to false).
548
+ * Use --backtrace to request a full backtrace without the task trace.
259
549
 
260
- * Removed reference to manage_gem to fix the warning produced by the
261
- gem package task.
550
+ * You can say "--backtrace=stdout" and "--trace=stdout" to route trace
551
+ output to standard output rather than standard error.
262
552
 
263
- === 0.8.3
553
+ * Optional 'phony' target (enable with 'require 'rake/phony'") for
554
+ special purpose builds.
264
555
 
265
- * Enhanced the system directory detection in windows. We now check
266
- HOMEDRIVE/HOMEPATH and USERPROFILE if APPDATA isn't found. (Patch
267
- supplied by James Tucker). Rake no long aborts if it can't find the
268
- directory.
556
+ * Task#clear now clears task comments as well as actions and
557
+ prerequisites. Task#clear_comment will specifically target comments.
269
558
 
270
- * Added fix to handle ruby installations in directories with spaces in
271
- their name.
559
+ * The --all option will force -T and -D to consider all the tasks,
560
+ with and without descriptions.
272
561
 
273
- === 0.8.2
562
+ ===== Bug Fixes (in 0.9.3)
274
563
 
275
- * Fixed bug in package task so that it will include the subdir
276
- directory in the package for testing. (Bug found by Adam Majer)
564
+ * Semi-colons in windows rakefile paths now work.
277
565
 
278
- * Added ENV var to rakefile to prevent OS X from including extended
279
- attribute junk in a tar file. (Bug found by Adam Majer)
566
+ * Improved Control-C support when invoking multiple test suites.
280
567
 
281
- * Fixed filename dependency order bug in test_inspect_pending and
282
- test_to_s_pending. (Bug found by Adam Majer)
568
+ * egrep method now reads files in text mode (better support for
569
+ Windows)
283
570
 
284
- * Fixed check for file utils options to make them immune to the
285
- symbol/string differences. (Patch supplied by Edwin Pratomo)
571
+ * Better deprecation line number reporting.
286
572
 
287
- * Fixed bug with rules involving multiple source (Patch supplied by
288
- Emanuel Indermühle)
573
+ * The -W option now works with all tasks, whether they have a
574
+ description or not.
289
575
 
290
- * Switched from getoptlong to optparse (patches supplied by Edwin
291
- Pratomo)
576
+ * File globs in rake should not be sorted alphabetically, independent
577
+ of file system and platform.
292
578
 
293
- * The -T option will now attempt to dynamically sense the size of the
294
- terminal. RAKE_COLUMNS will override any dynamic sensing.
579
+ * Numerous internal improvements.
295
580
 
296
- * FileList#clone and FileList#dup have better sematics w.r.t. taint
297
- and freeze.
581
+ * Documentation typos and fixes.
298
582
 
299
- * Added ability clear prerequisites, and/or actions from an existing
300
- task.
583
+ ===== Bug Fixes (in 0.9.4)
301
584
 
302
- * Added the ability to reenable a task to be invoked a second time.
585
+ * Exit status with failing tests is not correctly set to non-zero.
303
586
 
304
- * Changed RDoc test task to have no default template. This makes it
305
- easier for the tempate to pick up the template from the environment.
587
+ * Simplified syntax for phony task (for older versions of RDoc).
306
588
 
307
- * Changed from using Mutex to Monitor. Evidently Mutex causes thread
308
- join errors when Ruby is compiled with -disable-pthreads. (Patch
309
- supplied by Ittay Dror)
589
+ * Stand alone FileList usage gets glob function (without loading in
590
+ extra dependencies)
310
591
 
311
- * Fixed bug in makefile parser that had problems with extra spaces in
312
- file task names. (Patch supplied by Ittay Dror)
592
+ ===== Bug Fixes (in 0.9.5)
313
593
 
314
- * Added a performance patch for reading large makefile dependency
315
- files. (Patch supplied by Ittay Dror)
594
+ * --trace and --backtrace no longer swallow following task names.
316
595
 
317
- * Default values for task arguments can easily be specified with the
318
- :with_defaults method. (Idea for default argument merging supplied
319
- by (Adam Q. Salter)
596
+ ==== Thanks
320
597
 
321
- * The -T output will only self-truncate if the output is a tty.
322
- However, if RAKE_COLUMNS is explicitly set, it will be honored in
323
- any case. (Patch provided by Gavin Stark).
598
+ As usual, it was input from users that drove a lot of these changes. The
599
+ following people contributed patches, made suggestions or made
600
+ otherwise helpful comments. Thanks to ...
324
601
 
325
- * Numerous fixes for running under windows. A big thanks to Bheeshmar
326
- Redheendran for spending a good part of the afternoon at the
327
- Lonestar Ruby Conference to help me work out these issues.
602
+ * Aaron Patterson
603
+ * Dylan Smith
604
+ * Jo Liss
605
+ * Jonas Pfenniger
606
+ * Kazuki Tsujimoto
607
+ * Michael Bishop
608
+ * Michael Elufimov
609
+ * NAKAMURA Usaku
610
+ * Ryan Davis
611
+ * Sam Grönblom
612
+ * Sam Phippen
613
+ * Sergio Wong
614
+ * Tay Ray Chuan
615
+ * grosser
616
+ * quix
328
617
 
329
- === 0.8.1
618
+ Also, many thanks to Eric Hodel for assisting with getting this release
619
+ out the door.
330
620
 
331
- * Removed requires on parsedate.rb (in Ftptools)
332
- * Removed ftools from rake.rb. Made it options in sys.rb
621
+ -- Jim Weirich
333
622
 
334
- === 0.8.0
623
+ === 10.0.2
335
624
 
336
- * Added task parameters (e.g. "rake build[version7]")
337
- * Made task parameters passable to prerequisites.
338
- * Comments are limited to 80 columns or so (suggested by Jamis Buck).
339
- * Added -D to display full comments (suggested by Jamis Buck).
340
- * The rake program will set the status value used in any explicit
341
- exit(n) calls. (patch provided by Stephen Touset)
342
- * Fixed error in functional tests that were not including session (and
343
- silently skipping the functionl tests.
344
- * Removed --usage and make -h the same as -H.
345
- * Make a prettier inspect for tasks.
625
+ ==== Changes
346
626
 
347
- === 0.7.3
627
+ ===== Bug Fixes
348
628
 
349
- * Added existing and existing! methods to FileList
350
- * FileLists now claim to be Arrays (via is_a?) to get better support
351
- from the FileUtil module.
352
- * Added init and top_level for custom rake applications.
629
+ * --trace and --backtrace no longer swallow following task names.
353
630
 
354
- === 0.7.2
631
+ ==== Thanks
355
632
 
356
- * Error messages are now send to stderr rather than stdout (from
357
- Payton Quackenbush).
358
- * Better error handling on invalid command line arguments (from Payton
359
- Quackenbush).
360
- * Added rcov task and updated unit testing for better code coverage.
361
- * Fixed some bugs where the application object was going to the global
362
- appliation instead of using its own data.
363
- * Added square and curly bracket patterns to FileList#include (Tilman
364
- Sauerbeck).
365
- * Added plain filename support to rule dependents (suggested by Nobu
366
- Nakada).
367
- * Added pathmap support to rule dependents.
368
- * Added a 'tasks' method to a namespace to get a list of tasks
369
- associated with the namespace.
370
- * Fixed the method name leak from FileUtils (bug found by Glenn
371
- Vanderburg).
372
- * Added rake_extension to handle detection of extension collisions.
373
- * Added test for noop, bad_option and verbose flags to sh command.
374
- * Removed dependency on internal fu_xxx functions from FileUtils.
375
- * Added a 'shame' task to the Rakefile.
376
- * Added tar_command and zip_command options to the Package task.
377
- * Added a description to the gem task in GemPackageTask.
378
- * Fixed a bug when rules have multiple prerequisites (patch by Joel
379
- VanderWerf)
380
- * Added a protected 'require "rubygems"' to test/test_application to
381
- unbreak cruisecontrol.rb.
382
- * Added the handful of RakeFileUtils to the private method as well.
383
- * Added block based exclusion.
384
- * The clean task will no longer delete 'core' if it is a directory.
385
- * Removed rake_dup. Now we just simply rescue a bad dup.
386
- * Refactored the FileList reject logic to remove duplication.
387
- * Removed if __FILE__ at the end of the rake.rb file.
633
+ As usual, it was input from users that drove a lot of these changes. The
634
+ following people contributed patches, made suggestions or made
635
+ otherwise helpful comments. Thanks to ...
388
636
 
389
- === 0.7.1
637
+ * Aaron Patterson
638
+ * Dylan Smith
639
+ * Jo Liss
640
+ * Jonas Pfenniger
641
+ * Kazuki Tsujimoto
642
+ * Michael Bishop
643
+ * Michael Elufimov
644
+ * NAKAMURA Usaku
645
+ * Ryan Davis
646
+ * Sam Grönblom
647
+ * Sam Phippen
648
+ * Sergio Wong
649
+ * Tay Ray Chuan
650
+ * grosser
651
+ * quix
390
652
 
391
- * Added optional filter parameter to the --tasks command line option.
392
- * Added flatten to allow rule transform procs to return lists of
393
- prereqs (Joel VanderWerf provided patch).
394
- * Added pathmap to String and FileList.
395
- * The -r option will now load .rake files (but a straight require
396
- doesn't yet). NOTE: This is experimental ... it may be
397
- discontinued.
398
- * The -f option without a value will disable the search for a
399
- Rakefile. The assumption is that the -r files are adequate.
400
- * Fixed the safe_ln function to fall back to cp in more error
401
- scenarios.
653
+ Also, many thanks to Eric Hodel for assisting with getting this release
654
+ out the door.
402
655
 
403
- === 0.7.0
656
+ -- Jim Weirich
404
657
 
405
- * Added Rake.original_dir to return the original starting directory of
406
- the rake application.
407
- * Added safe_ln support for openAFS (from Ludvig Omholt).
408
- * Added --trace reminder on short exception messages (David Heinemeier
409
- Hansson suggestion).
410
- * Added multitask declaration that executes prerequisites in
411
- parallel. (Doug Young providied an initial implementation).
412
- * Fixed missing_const hack to be compatible with Rails. (Jamis Buck
413
- supplied test case).
414
- * Made the RDoc task default to internal (in-process) RDoc formatting.
415
- The old behavior is still available by setting the +external+ flag
416
- to true.
417
- * Rakefiles are now loaded with the expanded path to prevent
418
- accidental polution from the Ruby load path.
419
- * The +namespace+ command now returns a NameSpace object that can be
420
- used to lookup tasks defined in that namespace. This allows for
421
- better anonymous namespace behavior.
422
- * Task objects my now be used in prerequisite lists directly.
658
+ === 10.0.1
423
659
 
424
- === 0.6.1
660
+ ==== Changes
425
661
 
426
- * Rebuilt 0.6.0 gem without signing.
662
+ ===== Bug Fixes
427
663
 
428
- === 0.6.0
664
+ * Exit status with failing tests is not correctly set to non-zero.
429
665
 
430
- * Fixed file creation bug in the unit tests (caused infinite loop on
431
- windows).
432
- * Fixed bug where session based functional tests were run under
433
- windows.
434
- * Fixed bug in directory tasks so that updating a directory will not
435
- retrigger file tasks depending on the directory (see
436
- FileCreationTask and EarlyTime).
437
- * Added egrep to FileList
438
- * ruby command now runs same ruby version as rake.
439
- * Added investigation to task object. (suggested by Martin Fowler)
440
- * Added ruby_opts to the test task to allow arbitrary ruby options to
441
- be passed to the test script. (Greg Fast)
442
- * Fixed the test loader to ignore options. (Greg Fast)
443
- * Moved Task, FileTask, FileCreationTask and RakeApp into the Rake
444
- module namespace. Old style namespace behavior can be invoked via
445
- the --classic-namespace option. (requested by Kelly Felkins).
446
- * GemTask is now sensitive to the gem platform (Masao Mutoh).
447
- * A non-existing file prerequisite will no longer cause an exception
448
- (Philipp Neubeck).
449
- * Multiple prerequisites on Rake rules now allowed (initial patch
450
- supplied by Stuart Jansen).
666
+ * Simplified syntax for phony task (for older versions of RDoc).
451
667
 
452
- === 0.5.4
668
+ * Stand alone FileList usage gets glob function (without loading in
669
+ extra dependencies)
453
670
 
454
- * Added double quotes to the test runner.
455
- * Added .svn to default ignore list.
456
- * Updated FileList#include to support nested arrays and filelists.
671
+ ==== Thanks
457
672
 
458
- === 0.5.3
673
+ As usual, it was input from users that drove a lot of these changes. The
674
+ following people contributed patches, made suggestions or made
675
+ otherwise helpful comments. Thanks to ...
459
676
 
460
- * Added support for importing Rakefile and other dependencies.
461
- * Fixed bug so that now rules can chain off of existing tasks as well
462
- as existing files.
463
- * Fixed verbose flag bug in the testing task. Shortened some failure
464
- messages.
465
- * Make FileUtils methods private at the top level module to avoid
466
- accidental method leaking into other objects.
467
- * Added test loader option to test task. "testrb" is no longer the
468
- default test loader. It is now eating syntax errors that should
469
- halt the unit tests.
470
- * Revamped FileList so that it works more like and array (addressed
471
- flatten bug). Added many tests around file list.
472
- * Added +ext+ method to both String and FileList.
677
+ * Aaron Patterson
678
+ * Dylan Smith
679
+ * Jo Liss
680
+ * Jonas Pfenniger
681
+ * Kazuki Tsujimoto
682
+ * Michael Bishop
683
+ * Michael Elufimov
684
+ * NAKAMURA Usaku
685
+ * Ryan Davis
686
+ * Sam Grönblom
687
+ * Sam Phippen
688
+ * Sergio Wong
689
+ * Tay Ray Chuan
690
+ * grosser
691
+ * quix
473
692
 
474
- === 0.5.0
693
+ Also, many thanks to Eric Hodel for assisting with getting this release
694
+ out the door.
475
695
 
476
- * Fixed documentation that was lacking the Rake module name (Tilman
477
- Sauerbeck).
478
- * Added tar.gz and tar.bz2 support to package task (Tilman Sauerbeck).
479
- * Recursive rules are now supported (Tilman Sauerbeck).
480
- * Added warning option for the Test Task (requested by Eric Hodel).
481
- * The jamis rdoc template is only used if it exists.
482
- * Added fix for Ruby 1.8.2 test/unit and rails problem.
483
- * Added contributed rake man file (Jani Monoses).
484
- * Added Brian Candler's fix for problems in --trace and --dry-run
485
- mode.
696
+ -- Jim Weirich
486
697
 
487
- === 0.4.15
698
+ === 10.0.0
488
699
 
489
- * Fixed a bug that prevented the TESTOPTS flag from working with the
490
- revised for 1.8.2 test task.
491
- * Updated the docs on --trace to indicate that it also enables a full
492
- backtrace on errors.
700
+ "Jim, when will Rake reach version 1.0?"
493
701
 
494
- === 0.4.14
702
+ Over the past several years I've been asked that question at
703
+ conferences, panels and over twitter. Due to historical reasons (or
704
+ maybe just plain laziness) Rake has (incorrectly) been treating the
705
+ second digit of the version as the major release number. So in my head
706
+ Rake was already at version 9.
707
+
708
+ Well, it's time to fix things. This next version of Rake drops old,
709
+ crufty, backwards compatibility hacks such as top level constants, DSL
710
+ methods defined in Object and numerous other features that are just no
711
+ longer desired. It's also time to drop the leading zero from the
712
+ version number as well and call this new version of rake what it
713
+ really is: Version 10.
714
+
715
+ So, welcome to Rake 10.0!
716
+
717
+ Rake 10 is actually feature identical to the latest version of Rake 9
718
+ (that would be the version spelled 0.9.3), *except* that Rake 10 drops
719
+ all the sundry deprecated features that have accumulated over the years.
720
+
721
+ If your Rakefile is up to date and current with all the new features
722
+ of Rake 10, you are ready to go. If your Rakefile still uses a few
723
+ deprecated feeatures, feel free to use Rake 9 (0.9.3) with the same
724
+ feature set. Just be aware that future features will be in Rake 10
725
+ family line.
726
+
727
+ ==== Changes in 10.0
728
+
729
+ As mentioned above, there are no new features in Rake 10. However,
730
+ there are a number of features missing:
731
+
732
+ * Classic namespaces are now gone. Rake is no longer able to reflect
733
+ the options settings in the global variables ($rakefile, $show\_tasks,
734
+ $show\_prereqs, $trace, $dryrun and $silent). The
735
+ <tt>--classic-namespace</tt> option is no longer supported.
736
+
737
+ * Global constants are no longer supported. This includes
738
+ <tt>Task</tt>, <tt>FileTask</tt>, <tt>FileCreationTask</tt> and
739
+ <tt>RakeApp</tt>). The constant missing hook to warn about using
740
+ global rake constants has been removed.
741
+
742
+ * The Rake DSL methods (task, file, directory, etc) are in their own
743
+ module (Rake::DSL). The stub versions of these methods (that printed
744
+ warnings) in Object have been removed. However, the DSL methods are
745
+ added to the top-level <tt>main</tt> object. Since <tt>main</tt> is
746
+ not in the inheritance tree, the presence of the DSL methods in main
747
+ should be low impact on other libraries.
748
+
749
+ If you want to use the Rake DSL commands from your own code, just
750
+ include <tt>Rake::DSL</tt> into your own classes and modules.
751
+
752
+ * The deprecated syntax for task arguments (the one using
753
+ <tt>:needs</tt>) has been removed.
754
+
755
+ * The <tt>--reduce-compat</tt> flag has been removed (it's not needed
756
+ anymore).
757
+
758
+ * The deprecated <tt>rake/sys.rb</tt> library has been removed.
759
+
760
+ * The deprecated <tt>rake/rdoctask.rb</tt> library has been removed.
761
+ RDoc supplies its own rake task now.
762
+
763
+ * The deprecated <tt>rake/gempackagetask.rb</tt> library has been
764
+ removed. Gem supplies its own package task now.
765
+
766
+ There is one small behavioral change:
767
+
768
+ * Non-file tasks now always report the current time as their time
769
+ stamp. This is different from the previous behavior where non-file
770
+ tasks reported current time only if there were no prerequisites, and
771
+ the max prerequisite timestamp otherwise. This lead to inconsistent
772
+ and surprising behavior when adding prerequisites to tasks that in
773
+ turn were prequisites to file tasks. The new behavior is more
774
+ consistent and predictable.
775
+
776
+ ==== Changes (from 0.9.3)
777
+
778
+ Since Rake 10 includes the changes from the last version of Rake 9,
779
+ we'll repeat the changes for version 0.9.3 here.
780
+
781
+ ===== New Features
782
+
783
+ * Multitask tasks now use a thread pool. Use -j to limit the number of
784
+ available threads.
785
+
786
+ * Use -m to turn regular tasks into multitasks (use at your own risk).
787
+
788
+ * You can now do "Rake.add_rakelib 'dir'" in your Rakefile to
789
+ programatically add rake task libraries.
790
+
791
+ * You can specific backtrace suppression patterns (see
792
+ --suppress-backtrace)
793
+
794
+ * Directory tasks can now take prerequisites and actions
795
+
796
+ * Use --backtrace to request a full backtrace without the task trace.
797
+
798
+ * You can say "--backtrace=stdout" and "--trace=stdout" to route trace
799
+ output to standard output rather than standard error.
800
+
801
+ * Optional 'phony' target (enable with 'require 'rake/phony'") for
802
+ special purpose builds.
803
+
804
+ * Task#clear now clears task comments as well as actions and
805
+ prerequisites. Task#clear_comment will specifically target comments.
806
+
807
+ * The --all option will force -T and -D to consider all the tasks,
808
+ with and without descriptions.
809
+
810
+ ===== Bug Fixes
811
+
812
+ * Semi-colons in windows rakefile paths now work.
813
+
814
+ * Improved Control-C support when invoking multiple test suites.
815
+
816
+ * egrep method now reads files in text mode (better support for
817
+ Windows)
818
+
819
+ * Better deprecation line number reporting.
820
+
821
+ * The -W option now works with all tasks, whether they have a
822
+ description or not.
823
+
824
+ * File globs in rake should not be sorted alphabetically, independent
825
+ of file system and platform.
826
+
827
+ * Numerous internal improvements.
828
+
829
+ * Documentation typos and fixes.
830
+
831
+
832
+ ==== Thanks
833
+
834
+ As usual, it was input from users that drove a lot of these changes. The
835
+ following people contributed patches, made suggestions or made
836
+ otherwise helpful comments. Thanks to ...
837
+
838
+ * Aaron Patterson
839
+ * Dylan Smith
840
+ * Jo Liss
841
+ * Jonas Pfenniger
842
+ * Kazuki Tsujimoto
843
+ * Michael Bishop
844
+ * Michael Elufimov
845
+ * NAKAMURA Usaku
846
+ * Ryan Davis
847
+ * Sam Grönblom
848
+ * Sam Phippen
849
+ * Sergio Wong
850
+ * Tay Ray Chuan
851
+ * grosser
852
+ * quix
853
+
854
+ Also, many thanks to Eric Hodel for assisting with getting this release
855
+ out the door.
856
+
857
+ -- Jim Weirich
858
+
859
+ === 0.9.6
860
+
861
+ Rake version 0.9.6 contains a number of fixes mainly for merging
862
+ Rake into the Ruby source tree and fixing tests.
863
+
864
+ ==== Changes
865
+
866
+ ===== Bug Fixes (0.9.6)
867
+
868
+ * Better trace output when using a multi-threaded Rakefile.
869
+ * Arg parsing is now consistent for tasks and multitasks.
870
+ * Skip exit code test in versions of Ruby that don't support it well.
871
+
872
+ Changes for better integration with the Ruby source tree:
873
+
874
+ * Fix version literal for Ruby source tree build.
875
+ * Better loading of libraries for testing in Ruby build.
876
+ * Use the ruby version provided by Ruby's tests.
877
+
878
+ ==== Thanks
879
+
880
+ As usual, it was input from users that drove a alot of these changes. The
881
+ following people either contributed patches, made suggestions or made
882
+ otherwise helpful comments. Thanks to ...
883
+
884
+ * Aaron Patterson
885
+ * Dylan Smith
886
+ * Jo Liss
887
+ * Jonas Pfenniger
888
+ * Kazuki Tsujimoto
889
+ * Michael Bishop
890
+ * Michael Elufimov
891
+ * NAKAMURA Usaku
892
+ * Ryan Davis
893
+ * Sam Grönblom
894
+ * Sam Phippen
895
+ * Sergio Wong
896
+ * Tay Ray Chuan
897
+ * grosser
898
+ * quix
899
+
900
+ Also, many thanks to Eric Hodel for assisting with getting this release
901
+ out the door.
902
+
903
+ -- Jim Weirich
904
+
905
+ === 0.9.5
906
+
907
+ Rake version 0.9.5 contains a number of bug fixes.
908
+
909
+ ==== Changes
910
+
911
+ ===== Bug Fixes (0.9.5)
912
+
913
+ * --trace and --backtrace no longer swallow following task names.
914
+
915
+ ==== Thanks
916
+
917
+ As usual, it was input from users that drove a alot of these changes. The
918
+ following people either contributed patches, made suggestions or made
919
+ otherwise helpful comments. Thanks to ...
920
+
921
+ * Aaron Patterson
922
+ * Dylan Smith
923
+ * Jo Liss
924
+ * Jonas Pfenniger
925
+ * Kazuki Tsujimoto
926
+ * Michael Bishop
927
+ * Michael Elufimov
928
+ * NAKAMURA Usaku
929
+ * Ryan Davis
930
+ * Sam Grönblom
931
+ * Sam Phippen
932
+ * Sergio Wong
933
+ * Tay Ray Chuan
934
+ * grosser
935
+ * quix
936
+
937
+ Also, many thanks to Eric Hodel for assisting with getting this release
938
+ out the door.
939
+
940
+ -- Jim Weirich
941
+
942
+ === 0.9.4
943
+
944
+ Rake version 0.9.4 contains a number of bug fixes.
945
+
946
+ ==== Changes
947
+
948
+ ===== Bug Fixes (0.9.4)
949
+
950
+ * Exit status with failing tests is not correctly set to non-zero.
951
+
952
+ * Simplified syntax for phony task (for older versions of RDoc).
953
+
954
+ * Stand alone FileList usage gets glob function (without loading in
955
+ extra dependencies)
956
+
957
+ ==== Thanks
958
+
959
+ As usual, it was input from users that drove a alot of these changes. The
960
+ following people either contributed patches, made suggestions or made
961
+ otherwise helpful comments. Thanks to ...
962
+
963
+ * Aaron Patterson
964
+ * Dylan Smith
965
+ * Jo Liss
966
+ * Jonas Pfenniger
967
+ * Kazuki Tsujimoto
968
+ * Michael Bishop
969
+ * Michael Elufimov
970
+ * NAKAMURA Usaku
971
+ * Ryan Davis
972
+ * Sam Grönblom
973
+ * Sam Phippen
974
+ * Sergio Wong
975
+ * Tay Ray Chuan
976
+ * grosser
977
+ * quix
978
+
979
+ Also, many thanks to Eric Hodel for assisting with getting this release
980
+ out the door.
981
+
982
+ -- Jim Weirich
983
+
984
+ === 0.9.3
985
+
986
+ Rake version 0.9.3 contains some new, backwards compatible features and
987
+ a number of bug fixes.
988
+
989
+ ==== Changes
990
+
991
+ ===== New Features
992
+
993
+ * Multitask tasks now use a thread pool. Use -j to limit the number of
994
+ available threads.
995
+
996
+ * Use -m to turn regular tasks into multitasks (use at your own risk).
997
+
998
+ * You can now do "Rake.add_rakelib 'dir'" in your Rakefile to
999
+ programatically add rake task libraries.
1000
+
1001
+ * You can specific backtrace suppression patterns (see
1002
+ --suppress-backtrace)
1003
+
1004
+ * Directory tasks can now take prerequisites and actions
1005
+
1006
+ * Use --backtrace to request a full backtrace without the task trace.
1007
+
1008
+ * You can say "--backtrace=stdout" and "--trace=stdout" to route trace
1009
+ output to standard output rather than standard error.
1010
+
1011
+ * Optional 'phony' target (enable with 'require 'rake/phony'") for
1012
+ special purpose builds.
1013
+
1014
+ * Task#clear now clears task comments as well as actions and
1015
+ prerequisites. Task#clear_comment will specifically target comments.
1016
+
1017
+ * The --all option will force -T and -D to consider all the tasks,
1018
+ with and without descriptions.
1019
+
1020
+ ===== Bug Fixes
1021
+
1022
+ * Semi-colons in windows rakefile paths now work.
1023
+
1024
+ * Improved Control-C support when invoking multiple test suites.
1025
+
1026
+ * egrep method now reads files in text mode (better support for
1027
+ Windows)
1028
+
1029
+ * Better deprecation line number reporting.
1030
+
1031
+ * The -W option now works with all tasks, whether they have a
1032
+ description or not.
1033
+
1034
+ * File globs in rake should not be sorted alphabetically, independent
1035
+ of file system and platform.
1036
+
1037
+ * Numerous internal improvements.
1038
+
1039
+ * Documentation typos and fixes.
1040
+
1041
+ ==== Thanks
1042
+
1043
+ As usual, it was input from users that drove a alot of these changes. The
1044
+ following people either contributed patches, made suggestions or made
1045
+ otherwise helpful comments. Thanks to ...
1046
+
1047
+ * Aaron Patterson
1048
+ * Dylan Smith
1049
+ * Jo Liss
1050
+ * Jonas Pfenniger
1051
+ * Kazuki Tsujimoto
1052
+ * Michael Bishop
1053
+ * Michael Elufimov
1054
+ * NAKAMURA Usaku
1055
+ * Ryan Davis
1056
+ * Sam Grönblom
1057
+ * Sam Phippen
1058
+ * Sergio Wong
1059
+ * Tay Ray Chuan
1060
+ * grosser
1061
+ * quix
1062
+
1063
+ Also, many thanks to Eric Hodel for assisting with getting this release
1064
+ out the door.
1065
+
1066
+ -- Jim Weirich
1067
+
1068
+ === Rake 0.9.2.2
1069
+
1070
+ Rake version 0.9.2.2 is mainly bug fixes.
1071
+
1072
+ ==== Changes
1073
+
1074
+ * The rake test loader now removes arguments it has processed. Issue #51
1075
+ * Rake::TaskArguments now responds to #values\_at
1076
+ * RakeFileUtils.verbose_flag = nil silences output the same as 0.8.7
1077
+ * Rake tests are now directory-independent
1078
+ * Rake tests are no longer require flexmock
1079
+ * Commands constant is no longer polluting top level namespace.
1080
+ * Show only the interesting portion of the backtrace by default (James M. Lawrence).
1081
+ * Added --reduce-compat option to remove backward compatible DSL hacks (James M. Lawrence).
1082
+
1083
+ ==== Thanks
1084
+
1085
+ As usual, it was input from users that drove a alot of these changes. The
1086
+ following people either contributed patches, made suggestions or made
1087
+ otherwise helpful comments. Thanks to ...
1088
+
1089
+ * James M. Lawrence (quix)
1090
+ * Roger Pack
1091
+ * Cezary Baginski
1092
+ * Sean Scot August Moon
1093
+ * R.T. Lechow
1094
+ * Alex Chaffee
1095
+ * James Tucker
1096
+ * Matthias Lüdtke
1097
+ * Santiago Pastorino
1098
+
1099
+ Also, bit thanks to Eric Hodel for assisting with getting this release
1100
+ out the door (where "assisting" includes, but is not by any means
1101
+ limited to, "pushing" me to get it done).
1102
+
1103
+ -- Jim Weirich
1104
+
1105
+ === 0.9.2
1106
+
1107
+ Rake version 0.9.2 has a few small fixes. See below for details.
1108
+
1109
+ ==== Changes
1110
+
1111
+ * Support for Ruby 1.8.6 was fixed.
1112
+ * Global DSL warnings now honor --no-deprecate
1113
+
1114
+ ==== Thanks
1115
+
1116
+ As usual, it was input from users that drove a alot of these changes. The
1117
+ following people either contributed patches, made suggestions or made
1118
+ otherwise helpful comments. Thanks to ...
1119
+
1120
+ * James M. Lawrence (quix)
1121
+ * Roger Pack
1122
+ * Cezary Baginski
1123
+ * Sean Scot August Moon
1124
+ * R.T. Lechow
1125
+ * Alex Chaffee
1126
+ * James Tucker
1127
+ * Matthias Lüdtke
1128
+ * Santiago Pastorino
1129
+
1130
+ Also, bit thanks to Eric Hodel for assisting with getting this release
1131
+ out the door (where "assisting" includes, but is not by any means
1132
+ limited to, "pushing" me to get it done).
1133
+
1134
+ -- Jim Weirich
1135
+
1136
+ === 0.9.1
1137
+
1138
+ Rake version 0.9.1 has a number of bug fixes and enhancments (see
1139
+ below for more details). Additionally, the internals have be slightly
1140
+ restructured and improved.
1141
+
1142
+ ==== Changes
1143
+
1144
+ Rake 0.9.1 adds back the global DSL methods, but with deprecation
1145
+ messages. This allows Rake 0.9.1 to be used with older rakefiles with
1146
+ warning messages.
1147
+
1148
+ ==== Thanks
1149
+
1150
+ As usual, it was input from users that drove a alot of these changes. The
1151
+ following people either contributed patches, made suggestions or made
1152
+ otherwise helpful comments. Thanks to ...
1153
+
1154
+ * James M. Lawrence (quix)
1155
+ * Roger Pack
1156
+ * Cezary Baginski
1157
+ * Sean Scot August Moon
1158
+ * R.T. Lechow
1159
+ * Alex Chaffee
1160
+ * James Tucker
1161
+ * Matthias Lüdtke
1162
+ * Santiago Pastorino
1163
+
1164
+ Also, bit thanks to Eric Hodel for assisting with getting this release
1165
+ out the door (where "assisting" includes, but is not by any means
1166
+ limited to, "pushing" me to get it done).
1167
+
1168
+ -- Jim Weirich
1169
+
1170
+ === 0.9.0
1171
+
1172
+ Rake version 0.9.0 has a number of bug fixes and enhancments (see
1173
+ below for more details). Additionally, the internals have be slightly
1174
+ restructured and improved.
1175
+
1176
+ ==== Changes
1177
+
1178
+ ===== New Features / Enhancements / Bug Fixes in Version 0.9.0
1179
+
1180
+ * Rake now warns when the deprecated :needs syntax used (and suggests
1181
+ the proper syntax in the warning).
1182
+
1183
+ * Moved Rake DSL commands to top level ruby object 'main'. Rake DSL
1184
+ commands are no longer private methods in Object. (Suggested by
1185
+ James M. Lawrence/quix)
1186
+
1187
+ * Rake now uses case-insensitive comparisons to find the Rakefile on Windows.
1188
+ Based on patch by Roger Pack.
1189
+
1190
+ * Rake now requires (instead of loads) files in the test task. Patch by Cezary
1191
+ Baginski.
1192
+
1193
+ * Fixed typos. Patches by Sean Scot August Moon and R.T. Lechow.
1194
+
1195
+ * Rake now prints the Rakefile directory only when it's different from the
1196
+ current directory. Patch by Alex Chaffee.
1197
+
1198
+ * Improved rakefile_location discovery on Windows. Patch by James Tucker.
1199
+
1200
+ * Rake now recognizes "Windows Server" as a windows system. Patch by Matthias
1201
+ Lüdtke
1202
+
1203
+ * Rake::RDocTask is deprecated. Use RDoc::Task from RDoc 2.4.2+ (require
1204
+ 'rdoc/task')
1205
+
1206
+ * Rake::GemPackageTask is deprecated. Use Gem::PackageTask (require
1207
+ 'rubygems/package\_task')
1208
+
1209
+ * Rake now outputs various messages to $stderr instead of $stdout.
1210
+
1211
+ * Rake no longer emits warnings for Config. Patch by Santiago Pastorino.
1212
+
1213
+ * Removed Rake's DSL methods from the top level scope. If you need to
1214
+ call 'task :xzy' in your code, include Rake::DSL into your class, or
1215
+ put the code in a Rake::DSL.environment do ... end block.
1216
+
1217
+ * Split rake.rb into individual files.
1218
+
1219
+ * Support for the --where (-W) flag for showing where a task is defined.
1220
+
1221
+ * Fixed quoting in test task.
1222
+ (http://onestepback.org/redmine/issues/show/44,
1223
+ http://www.pivotaltracker.com/story/show/1223138)
1224
+
1225
+ * Fixed the silent option parsing problem.
1226
+ (http://onestepback.org/redmine/issues/show/47)
1227
+
1228
+ * Fixed :verbose=>false flag on sh and ruby commands.
1229
+
1230
+ * Rake command line options may be given by default in a RAKEOPT
1231
+ environment variable.
1232
+
1233
+ * Errors in Rake will now display the task invocation chain in effect
1234
+ at the time of the error.
1235
+
1236
+ * Accepted change by warnickr to not expand test patterns in shell
1237
+ (allowing more files in the test suite).
1238
+
1239
+ * Fixed that file tasks did not perform prereq lookups in scope
1240
+ (Redmine #57).
1241
+
1242
+ ==== Thanks
1243
+
1244
+ As usual, it was input from users that drove a alot of these changes. The
1245
+ following people either contributed patches, made suggestions or made
1246
+ otherwise helpful comments. Thanks to ...
1247
+
1248
+ * James M. Lawrence (quix)
1249
+ * Roger Pack
1250
+ * Cezary Baginski
1251
+ * Sean Scot August Moon
1252
+ * R.T. Lechow
1253
+ * Alex Chaffee
1254
+ * James Tucker
1255
+ * Matthias Lüdtke
1256
+ * Santiago Pastorino
1257
+
1258
+ Also, bit thanks to Eric Hodel for assisting with getting this release
1259
+ out the door (where "assisting" includes, but is not by any means
1260
+ limited to, "pushing" me to get it done).
1261
+
1262
+ -- Jim Weirich
1263
+
1264
+
1265
+ === 0.8.7
1266
+
1267
+ Rake version 0.8.5 introduced greatly improved support for executing
1268
+ commands on Windows. The "sh" command now has the same semantics on
1269
+ Windows that it has on Unix based platforms.
1270
+
1271
+ Rake version 0.8.6 includes minor fixes the the RDoc generation.
1272
+ Rake version 0.8.7 includes a minor fix for JRuby running on windows.
1273
+
1274
+ ==== Changes
1275
+
1276
+ ===== New Features / Enhancements in Version 0.8.5
1277
+
1278
+ * Improved implementation of the Rake system command for Windows.
1279
+ (patch from James M. Lawrence/quix)
1280
+
1281
+ * Support for Ruby 1.9's improved system command. (patch from James
1282
+ M. Lawrence/quix)
1283
+
1284
+ * Rake now includes the configured extension when invoking an
1285
+ executable (Config::CONFIG['EXEEXT])
1286
+
1287
+ ===== Bug Fixes in Version 0.8.5
1288
+
1289
+ * Environment variable keys are now correctly cased (it matters in
1290
+ some implementations).
1291
+
1292
+ ==== Thanks
1293
+
1294
+ As usual, it was input from users that drove a alot of these changes. The
1295
+ following people either contributed patches, made suggestions or made
1296
+ otherwise helpful comments. Thanks to ...
1297
+
1298
+ * Charles Nutter
1299
+
1300
+ -- Jim Weirich
1301
+
1302
+ === 0.8.6
1303
+
1304
+ Rake version 0.8.5 introduced greatly improved support for executing
1305
+ commands on Windows. The "sh" command now has the same semantics on
1306
+ Windows that it has on Unix based platforms.
1307
+
1308
+ Rake version 0.8.5 includes minor fixes the the RDoc generation.
1309
+
1310
+ ==== Thanks
1311
+
1312
+ As usual, it was input from users that drove a alot of these changes. The
1313
+ following people either contributed patches, made suggestions or made
1314
+ otherwise helpful comments. Thanks to ...
1315
+
1316
+ * James M. Lawrence/quix
1317
+ * Luis Lavena
1318
+
1319
+ -- Jim Weirich
1320
+
1321
+ === 0.8.5
1322
+
1323
+ Rake version 0.8.5 is a new release of Rake with greatly improved
1324
+ support for executing commands on Windows. The "sh" command now has
1325
+ the same semantics on Windows that it has on Unix based platforms.
1326
+
1327
+ ==== Changes
1328
+
1329
+ ===== New Features / Enhancements in Version 0.8.5
1330
+
1331
+ * Improved implementation of the Rake system command for Windows.
1332
+ (patch from James M. Lawrence/quix)
1333
+
1334
+ * Support for Ruby 1.9's improved system command. (patch from James
1335
+ M. Lawrence/quix)
1336
+
1337
+ * Rake now includes the configured extension when invoking an
1338
+ executable (Config::CONFIG['EXEEXT])
1339
+
1340
+ ===== Bug Fixes in Version 0.8.5
1341
+
1342
+ * Environment variable keys are now correctly cased (it matters in
1343
+ some implementations).
1344
+
1345
+ ==== Thanks
1346
+
1347
+ As usual, it was input from users that drove a alot of these changes. The
1348
+ following people either contributed patches, made suggestions or made
1349
+ otherwise helpful comments. Thanks to ...
1350
+
1351
+ * James M. Lawrence/quix
1352
+ * Luis Lavena
1353
+
1354
+ -- Jim Weirich
1355
+
1356
+ === 0.8.4
1357
+
1358
+ Rake version 0.8.4 is a bug-fix release of rake.
1359
+
1360
+ NOTE: The version of Rake that comes with Ruby 1.9 has diverged
1361
+ slightly from the core Rake code base. Rake 0.8.4 will work
1362
+ with Ruby 1.9, but is not a strict upgrade for the Rake that
1363
+ comes with Ruby 1.9. A (near) future release of Rake will unify
1364
+ those two codebases.
1365
+
1366
+ ==== Letter Writing Campaign
1367
+
1368
+ Thanks to Aaron Patterson (@tenderlove) and Eric Hodel (@drbrain) for
1369
+ their encouraging support in organizing a letter writing campaign to
1370
+ lobby for the "Warning Free" release of rake 0.8.4. A special callout
1371
+ goes to Jonathan D. Lord, Sr (Dr. Wingnut) whose postcard was the
1372
+ first to actually reach me. (see
1373
+ http://tenderlovemaking.com/2009/02/26/we-need-a-new-version-of-rake/
1374
+ for details)
1375
+
1376
+ ==== Changes
1377
+
1378
+ ===== New Features / Enhancements in Version 0.8.4
1379
+
1380
+ * Case is preserved on rakefile names. (patch from James
1381
+ M. Lawrence/quix)
1382
+
1383
+ * Improved Rakefile case insensitivity testing (patch from Luis
1384
+ Lavena).
1385
+
1386
+ * Windows system dir search order is now: HOME, HOMEDRIVE + HOMEPATH,
1387
+ APPDATA, USERPROFILE (patch from Luis Lavena)
1388
+
1389
+ * MingGW is now recognized as a windows platform. (patch from Luis
1390
+ Lavena)
1391
+
1392
+ ===== Bug Fixes in Version 0.8.4
1393
+
1394
+ * Removed reference to manage_gem to fix the warning produced by the
1395
+ gem package task.
1396
+
1397
+ * Fixed stray ARGV option problem that was interfering with
1398
+ Test::Unit::Runner. (patch from Pivotal Labs)
1399
+
1400
+ ===== Infrastructure Improvements in Version 0.8.4
1401
+
1402
+ * Numerous fixes to the windows test suite (patch from Luis Lavena).
1403
+
1404
+ * Improved Rakefile case insensitivity testing (patch from Luis
1405
+ Lavena).
1406
+
1407
+ * Better support for windows paths in the test task (patch from Simon
1408
+ Chiang/bahuvrihi)
1409
+
1410
+ ==== Thanks
1411
+
1412
+ As usual, it was input from users that drove a alot of these changes. The
1413
+ following people either contributed patches, made suggestions or made
1414
+ otherwise helpful comments. Thanks to ...
1415
+
1416
+ * James M. Lawrence/quix
1417
+ * Luis Lavena
1418
+ * Pivotal Labs
1419
+ * Simon Chiang/bahuvrihi
1420
+
1421
+ -- Jim Weirich
1422
+
1423
+ === 0.8.3
1424
+
1425
+ Rake version 0.8.3 is a bug-fix release of rake.
1426
+
1427
+ ==== Changes
1428
+
1429
+ ===== Bug Fixes in Version 0.8.3
1430
+
1431
+ * Enhanced the system directory detection in windows. We now check
1432
+ HOMEDRIVE/HOMEPATH and USERPROFILE if APPDATA isn't found. (Patch
1433
+ supplied by James Tucker). Rake no long aborts if it can't find the
1434
+ directory.
1435
+
1436
+ * Added fix to handle ruby installations in directories with spaces in
1437
+ their name.
1438
+
1439
+ ==== Thanks
1440
+
1441
+ As usual, it was input from users that drove a alot of these changes. The
1442
+ following people either contributed patches, made suggestions or made
1443
+ otherwise helpful comments. Thanks to ...
1444
+
1445
+ * Edwin Pratomo
1446
+ * Gavin Stark
1447
+ * Adam Q. Salter
1448
+ * Adam Majer
1449
+ * Emanuel Indermühle
1450
+ * Ittay Dror
1451
+ * Bheeshmar Redheendran (for spending an afternoon with me debugging
1452
+ windows issues)
1453
+
1454
+ -- Jim Weirich
1455
+
1456
+
1457
+ === 0.8.2
1458
+
1459
+ Rake version 0.8.2 is a new release of rake that includes a number of
1460
+ new features and numerous bug fixes.
1461
+
1462
+ ==== Changes
1463
+
1464
+ ===== New Features in Version 0.8.2
1465
+
1466
+ * Switched from getoptlong to optparse (patches supplied by Edwin
1467
+ Pratomo).
1468
+
1469
+ * The -T option will now attempt to dynamically sense the size of the
1470
+ terminal. The -T output will only self-truncate if the output is a
1471
+ tty. However, if RAKE_COLUMNS is explicitly set, it will be honored
1472
+ in any case. (Patch provided by Gavin Stark).
1473
+
1474
+ * The following public methods have been added to rake task objects:
1475
+
1476
+ * task.clear -- Clear both the prerequisites and actions of the
1477
+ target rake task.
1478
+ * task.clear_prerequisites -- Clear all the existing prerequisites
1479
+ from the target rake task.
1480
+ * task.clear_actions -- Clear all the existing actions from the
1481
+ target rake task.
1482
+ * task.reenable -- Re-enable a task, allowing its actions to be
1483
+ executed again if the task is invoked.
1484
+
1485
+ * Changed RDoc test task to have no default template. This makes it
1486
+ easier for the tempate to pick up the template from the environment.
1487
+
1488
+ * Default values for task arguments can easily be specified with the
1489
+ :with_defaults method. (Idea for default argument merging supplied
1490
+ by (Adam Q. Salter)
1491
+
1492
+ ===== Bug Fixes in Version 0.8.2
1493
+
1494
+ * Fixed bug in package task so that it will include the subdir
1495
+ directory in the package for testing. (Bug found by Adam Majer)
1496
+
1497
+ * Fixed filename dependency order bug in test\_inspect\_pending and
1498
+ test\_to\_s\_pending. (Bug found by Adam Majer)
1499
+
1500
+ * Fixed check for file utils options to make them immune to the
1501
+ symbol/string differences. (Patch supplied by Edwin Pratomo)
1502
+
1503
+ * Fixed bug with rules involving multiple source, where only the first
1504
+ dependency of a rule has any effect (Patch supplied by Emanuel
1505
+ Indermühle)
1506
+
1507
+ * FileList#clone and FileList#dup have better sematics w.r.t. taint
1508
+ and freeze.
1509
+
1510
+ * Changed from using Mutex to Monitor. Evidently Mutex causes thread
1511
+ join errors when Ruby is compiled with -disable-pthreads. (Patch
1512
+ supplied by Ittay Dror)
1513
+
1514
+ * Fixed bug in makefile parser that had problems with extra spaces in
1515
+ file task names. (Patch supplied by Ittay Dror)
1516
+
1517
+ ==== Other changes in Version 0.8.2
1518
+
1519
+ * Added ENV var to rake's own Rakefile to prevent OS X from including
1520
+ extended attribute junk in the rake package tar file. (Bug found by
1521
+ Adam Majer)
1522
+
1523
+ * Added a performance patch for reading large makefile dependency
1524
+ files. (Patch supplied by Ittay Dror)
1525
+
1526
+ ==== Task Argument Examples
1527
+
1528
+ Prior to version 0.8.0, rake was only able to handle command line
1529
+ arguments of the form NAME=VALUE that were passed into Rake via the
1530
+ ENV hash. Many folks had asked for some kind of simple command line
1531
+ arguments, perhaps using "--" to separate regular task names from
1532
+ argument values on the command line. The problem is that there was no
1533
+ easy way to associate positional arguments on the command line with
1534
+ different tasks. Suppose both tasks :a and :b expect a command line
1535
+ argument: does the first value go with :a? What if :b is run first?
1536
+ Should it then get the first command line argument.
1537
+
1538
+ Rake 0.8.0 solves this problem by explicitly passing values directly
1539
+ to the tasks that need them. For example, if I had a release task
1540
+ that required a version number, I could say:
1541
+
1542
+ rake release[0.8.2]
1543
+
1544
+ And the string "0.8.2" will be passed to the :release task. Multiple
1545
+ arguments can be passed by separating them with a comma, for example:
1546
+
1547
+ rake name[john,doe]
1548
+
1549
+ Just a few words of caution. The rake task name and its arguments
1550
+ need to be a single command line argument to rake. This generally
1551
+ means no spaces. If spaces are needed, then the entire rake +
1552
+ argument string should be quoted. Something like this:
1553
+
1554
+ rake "name[billy bob, smith]"
1555
+
1556
+ (Quoting rules vary between operating systems and shells, so make sure
1557
+ you consult the proper docs for your OS/shell).
1558
+
1559
+ ===== Tasks that Expect Parameters
1560
+
1561
+ Parameters are only given to tasks that are setup to expect them. In
1562
+ order to handle named parameters, the task declaration syntax for
1563
+ tasks has been extended slightly.
1564
+
1565
+ For example, a task that needs a first name and last name might be
1566
+ declared as:
1567
+
1568
+ task :name, :first_name, :last_name
1569
+
1570
+ The first argument is still the name of the task (:name in this case).
1571
+ The next to argumements are the names of the parameters expected by
1572
+ :name (:first_name and :last_name in the example).
1573
+
1574
+ To access the values of the parameters, the block defining the task
1575
+ behaviour can now accept a second parameter:
1576
+
1577
+ task :name, :first_name, :last_name do |t, args|
1578
+ puts "First name is #{args.first_name}"
1579
+ puts "Last name is #{args.last_name}"
1580
+ end
1581
+
1582
+ The first argument of the block "t" is always bound to the current
1583
+ task object. The second argument "args" is an open-struct like object
1584
+ that allows access to the task arguments. Extra command line
1585
+ arguments to a task are ignored. Missing command line arguments are
1586
+ given the nil value.
1587
+
1588
+ ==== Thanks
1589
+
1590
+ As usual, it was input from users that drove a alot of these changes. The
1591
+ following people either contributed patches, made suggestions or made
1592
+ otherwise helpful comments. Thanks to ...
1593
+
1594
+ * Edwin Pratomo
1595
+ * Gavin Stark
1596
+ * Adam Q. Salter
1597
+ * Adam Majer
1598
+ * Emanuel Indermühle
1599
+ * Ittay Dror
1600
+ * Bheeshmar Redheendran (for spending an afternoon with me debugging
1601
+ windows issues)
1602
+
1603
+ -- Jim Weirich
1604
+
1605
+ === 0.8.0/0.8.1
1606
+
1607
+ Rake version 0.8.0 is a new release of rake that includes serveral new
1608
+ features.
1609
+
1610
+ ==== Changes
1611
+
1612
+ ===== New Features in Version 0.8.0
1613
+
1614
+ * Tasks can now receive command line parameters. See the examples
1615
+ below for more details.
1616
+
1617
+ * Comments are limited to 80 columns on output, but full comments can
1618
+ be seen by using the -D parameter. (feature suggested by Jamis
1619
+ Buck).
1620
+
1621
+ * Explicit exit(n) calls will now set the exit status to n. (patch
1622
+ provided by Stephen Touset).
1623
+
1624
+ * Rake is now compatible with Ruby 1.9.
1625
+
1626
+ Version 0.8.1 is a minor update that includes additional Ruby 1.9
1627
+ compatibility fixes.
1628
+
1629
+ ==== Task Argument Examples
1630
+
1631
+ Prior to version 0.8.0, rake was only able to handle command line
1632
+ arguments of the form NAME=VALUE that were passed into Rake via the
1633
+ ENV hash. Many folks had asked for some kind of simple command line
1634
+ arguments, perhaps using "--" to separate regular task names from
1635
+ argument values on the command line. The problem is that there was no
1636
+ easy way to associate positional arguments on the command line with
1637
+ different tasks. Suppose both tasks :a and :b expect a command line
1638
+ argument: does the first value go with :a? What if :b is run first?
1639
+ Should it then get the first command line argument.
1640
+
1641
+ Rake 0.8.0 solves this problem by explicitly passing values directly
1642
+ to the tasks that need them. For example, if I had a release task
1643
+ that required a version number, I could say:
1644
+
1645
+ rake release[0.8.0]
1646
+
1647
+ And the string "0.8.0" will be passed to the :release task. Multiple
1648
+ arguments can be passed by separating them with a comma, for example:
1649
+
1650
+ rake name[john,doe]
1651
+
1652
+ Just a few words of caution. The rake task name and its arguments
1653
+ need to be a single command line argument to rake. This generally
1654
+ means no spaces. If spaces are needed, then the entire rake +
1655
+ argument string should be quoted. Something like this:
1656
+
1657
+ rake "name[billy bob, smith]"
1658
+
1659
+ (Quoting rules vary between operating systems and shells, so make sure
1660
+ you consult the proper docs for your OS/shell).
1661
+
1662
+ ===== Tasks that Expect Parameters
1663
+
1664
+ Parameters are only given to tasks that are setup to expect them. In
1665
+ order to handle named parameters, the task declaration syntax for
1666
+ tasks has been extended slightly.
1667
+
1668
+ For example, a task that needs a first name and last name might be
1669
+ declared as:
1670
+
1671
+ task :name, :first_name, :last_name
1672
+
1673
+ The first argument is still the name of the task (:name in this case).
1674
+ The next to argumements are the names of the parameters expected by
1675
+ :name (:first_name and :last_name in the example).
1676
+
1677
+ To access the values of the parameters, the block defining the task
1678
+ behaviour can now accept a second parameter:
1679
+
1680
+ task :name, :first_name, :last_name do |t, args|
1681
+ puts "First name is #{args.first_name}"
1682
+ puts "Last name is #{args.last_name}"
1683
+ end
1684
+
1685
+ The first argument of the block "t" is always bound to the current
1686
+ task object. The second argument "args" is an open-struct like object
1687
+ that allows access to the task arguments. Extra command line
1688
+ arguments to a task are ignored. Missing command line arguments are
1689
+ given the nil value.
1690
+
1691
+ ==== Thanks
1692
+
1693
+ As usual, it was input from users that drove a alot of these changes. The
1694
+ following people either contributed patches, made suggestions or made
1695
+ otherwise helpful comments. Thanks to ...
1696
+
1697
+ * Jamis Buck (for comment formatting suggestions)
1698
+ * Stephen Touset (for exit status patch).
1699
+
1700
+ -- Jim Weirich
1701
+
1702
+
1703
+ === 0.7.3
1704
+
1705
+ Rake version 0.7.3 is a minor release that includes some refactoring to better
1706
+ support custom Rake applications.
1707
+
1708
+ ==== Changes
1709
+
1710
+ ===== New Features in Version 0.7.3
1711
+
1712
+ * Added the +init+ and +top_level+ methods to make the creation of custom Rake applications a bit easier. E.g.
1713
+
1714
+ gem 'rake', ">= 0.7.3"
1715
+ require 'rake'
1716
+
1717
+ Rake.application.init('myrake')
1718
+
1719
+ task :default do
1720
+ something_interesting
1721
+ end
1722
+
1723
+ Rake.application.top_level
1724
+
1725
+ ==== Thanks
1726
+
1727
+ As usual, it was input from users that drove a alot of these changes. The
1728
+ following people either contributed patches, made suggestions or made
1729
+ otherwise helpful comments. Thanks to ...
1730
+
1731
+ -- Jim Weirich
1732
+
1733
+
1734
+ === 0.7.2
1735
+
1736
+
1737
+ Version 0.7.2 supplies a bug fix and a few minor enhancements. In
1738
+ particular, the new version fixes an incompatibility with the soon to
1739
+ be released Ruby 1.8.6. We strongly recommend upgrading to Rake 0.7.2
1740
+ in order to be compatible with the new version of Ruby.
1741
+
1742
+ ==== Changes
1743
+
1744
+ ===== Bug Fixes in 0.7.2
1745
+
1746
+ There are quite a number of bug fixes in the new 0.7.2 version of
1747
+ Rake:
1748
+
1749
+ * Removed dependency on internal fu_xxx functions from FileUtils.
1750
+
1751
+ * Error messages are now send to stderr rather than stdout (from
1752
+ Payton Quackenbush).
1753
+
1754
+ * Better error handling on invalid command line arguments (from Payton
1755
+ Quackenbush).
1756
+
1757
+ * Fixed some bugs where the application object was going to the global
1758
+ appliation instead of using its own data.
1759
+
1760
+ * Fixed the method name leak from FileUtils (bug found by Glenn
1761
+ Vanderburg).
1762
+
1763
+ * Added test for noop, bad_option and verbose flags to sh command.
1764
+
1765
+ * Added a description to the gem task in GemPackageTask.
1766
+
1767
+ * Fixed a bug when rules have multiple prerequisites (patch by Joel
1768
+ VanderWerf)
1769
+
1770
+ * Added the handful of RakeFileUtils to the private method as well.
1771
+
1772
+ ===== New Features in 0.7.2
1773
+
1774
+ The following new features are available in Rake version 0.7.2:
1775
+
1776
+ * Added square and curly bracket patterns to FileList#include (Tilman
1777
+ Sauerbeck).
1778
+
1779
+ * FileLists can now pass a block to FileList#exclude to exclude files
1780
+ based on calculated values.
1781
+
1782
+ * Added plain filename support to rule dependents (suggested by Nobu
1783
+ Nakada).
1784
+
1785
+ * Added pathmap support to rule dependents. In other words, if a
1786
+ pathmap format (beginning with a '%') is given as a Rake rule
1787
+ dependent, then the name of the depend will be the name of the
1788
+ target with the pathmap format applied.
1789
+
1790
+ * Added a 'tasks' method to a namespace to get a list of tasks
1791
+ associated with the namespace.
1792
+
1793
+ * Added tar_command and zip_command options to the Package task.
1794
+
1795
+ * The clean task will no longer delete 'core' if it is a directory.
1796
+
1797
+ ===== Internal Rake Improvements
1798
+
1799
+ The following changes will are mainly internal improvements and
1800
+ refactorings and have little effect on the end user. But they may be
1801
+ of interest to the general public.
1802
+
1803
+ * Added rcov task and updated unit testing for better code coverage.
1804
+
1805
+ * Added a 'shame' task to the Rakefile.
1806
+
1807
+ * Added rake_extension to handle detection of extension collisions.
1808
+
1809
+ * Added a protected 'require "rubygems"' to test/test_application to
1810
+ unbreak cruisecontrol.rb.
1811
+
1812
+ * Removed rake\_dup. Now we just simply rescue a bad dup.
1813
+
1814
+ * Refactored the FileList reject logic to remove duplication.
1815
+
1816
+ * Removed if \_\_FILE\_\_ at the end of the rake.rb file.
1817
+
1818
+ ==== Thanks
1819
+
1820
+ As usual, it was input from users that drove a alot of these changes.
1821
+ The following people either contributed patches, made suggestions or
1822
+ made otherwise helpful comments. Thanks to ...
1823
+
1824
+ * Payton Quackenbush -- For several error handling improvements.
1825
+
1826
+ * Glenn Vanderburg -- For finding and fixing the method name leak from
1827
+ FileUtils.
1828
+
1829
+ * Joel VanderWerf -- for finding and fixing a bug in the handling of
1830
+ multiple prerequisites.
1831
+
1832
+ * Tilman Sauerbeck -- For some enhancing FileList to support more
1833
+ advanced file globbing.
1834
+
1835
+ * Nobu Nakada -- For suggesting plain file name support to rule dependents.
1836
+
1837
+ -- Jim Weirich
1838
+
1839
+ === 0.7.1
1840
+
1841
+ Version 0.7.1 supplies a bug fix and a few minor enhancements.
1842
+
1843
+ ==== Changes
1844
+
1845
+ ===== Bug Fixes in 0.7.1
1846
+
1847
+ * Changes in the exception reported for the FileUtils.ln caused
1848
+ safe_ln to fail with a NotImplementedError. Rake 0.7.1 will now
1849
+ catch that error or any StandardError and properly fall back to
1850
+ using +cp+.
1851
+
1852
+ ===== New Features in 0.7.1
1853
+
1854
+ * You can filter the results of the --task option by supplying an
1855
+ optional regular expression. This allows the user to easily find a
1856
+ particular task name in a long list of possible names.
1857
+
1858
+ * Transforming procs in a rule may now return a list of prerequisites.
1859
+ This allows more flexible rule formation.
1860
+
1861
+ * FileList and String now support a +pathmap+ melthod that makes the
1862
+ transforming paths a bit easier. See the API docs for +pathmap+ for
1863
+ details.
1864
+
1865
+ * The -f option without a value will disable the search for a
1866
+ Rakefile. This allows the Rakefile to be defined entirely in a
1867
+ library (and loaded with the -r option). The current working
1868
+ directory is not changed when this is done.
1869
+
1870
+ ==== Thanks
1871
+
1872
+ As usual, it was input from users that drove a alot of these changes.
1873
+ The following people either contributed patches, made suggestions or
1874
+ made otherwise helpful comments. Thanks to ...
1875
+
1876
+ * James Britt and Assaph Mehr for reporting and helping to debug the
1877
+ safe_ln issue.
1878
+
1879
+ -- Jim Weirich
1880
+
1881
+
1882
+ === 0.7.0
1883
+
1884
+ These changes for Rake have been brewing for a long time. Here they
1885
+ are, I hope you enjoy them.
1886
+
1887
+ ==== Changes
1888
+
1889
+ ===== New Features
1890
+
1891
+ * Name space support for task names (see below).
1892
+ * Prerequisites can be executed in parallel (see below).
1893
+ * Added safe_ln support for openAFS (via Ludvig Omholt).
1894
+ * RDoc defaults to internal (in-process) invocation. The old behavior
1895
+ is still available by setting the +external+ flag to true.
1896
+ * Rakefiles are now loaded with the expanded path to prevent
1897
+ accidental pollution from the Ruby load path.
1898
+ * Task objects my now be used in prerequisite lists directly.
1899
+ * Task objects (in addition to task names) may now be included in the
1900
+ prerequisite list of a task.
1901
+ * Internals cleanup and refactoring.
1902
+
1903
+ ===== Bug Fixes
1904
+
1905
+ * Compatibility fixes for Ruby 1.8.4 FileUtils changes.
1906
+
1907
+ ===== Namespaces
1908
+
1909
+ Tasks can now be nested inside their own namespaces. Tasks within one
1910
+ namespace will not accidentally interfer with tasks named in a different
1911
+ namespace.
1912
+
1913
+ For example:
1914
+
1915
+ namespace "main" do
1916
+ task :build do
1917
+ # Build the main program
1918
+ end
1919
+ end
1920
+
1921
+ namespace "samples" do
1922
+ task :build do
1923
+ # Build the sample programs
1924
+ end
1925
+ end
1926
+
1927
+ task :build_all => ["main:build", "samples:build"]
1928
+
1929
+ Even though both tasks are named :build, they are separate tasks in
1930
+ their own namespaces. The :build_all task (defined in the toplevel
1931
+ namespace) references both build tasks in its prerequisites.
1932
+
1933
+ You may invoke each of the individual build tasks with the following
1934
+ commands:
1935
+
1936
+ rake main:build
1937
+ rake samples:build
1938
+
1939
+ Or invoke both via the :build_all command:
1940
+
1941
+ rake build_all
1942
+
1943
+ Namespaces may be nested arbitrarily. Since the name of file tasks
1944
+ correspond to the name of a file in the external file system,
1945
+ FileTasks are not affected by the namespaces.
1946
+
1947
+ See the Rakefile format documentation (in the Rake API documents) for
1948
+ more information.
1949
+
1950
+ ===== Parallel Tasks
1951
+
1952
+ Sometimes you have several tasks that can be executed in parallel. By
1953
+ specifying these tasks as prerequisites to a +multitask+ task.
1954
+
1955
+ In the following example the tasks copy\_src, copy\_doc and copy\_bin
1956
+ will all execute in parallel in their own thread.
1957
+
1958
+ multitask :copy_files => [:copy_src, :copy_doc, :copy_bin] do
1959
+ puts "All Copies Complete"
1960
+ end
1961
+
1962
+ ==== Thanks
1963
+
1964
+ As usual, it was input from users that drove a alot of these changes.
1965
+ The following people either contributed patches, made suggestions or
1966
+ made otherwise helpful comments. Thanks to ...
1967
+
1968
+ * Doug Young (inspiration for the parallel task)
1969
+ * David Heinemeier Hansson (for --trace message enhancement and for
1970
+ pushing for namespace support).
1971
+ * Ludvig Omholt (for the openAFS fix)
1972
+
1973
+ -- Jim Weirich
1974
+
1975
+ === 0.6.1
1976
+
1977
+ * Rebuilt 0.6.0 gem without signing.
1978
+
1979
+ === 0.6.0
1980
+
1981
+ Its time for some long requested enhancements and lots of bug fixes
1982
+ ... And a whole new web page.
1983
+
1984
+ ==== New Web Page
1985
+
1986
+ The primary documentation for rake has moved from the RubyForge based
1987
+ wiki to its own Hieraki based web site. Constant spam on the wiki
1988
+ made it a difficult to keep clean. The new site will be easier to
1989
+ update and organize.
1990
+
1991
+ Check out the new documentation at: http://docs.rubyrake.org
1992
+
1993
+ We will be adding new documentation to the site as time goes on.
1994
+
1995
+ In addition to the new docs page, make sure you check out Martin
1996
+ Fowlers article on rake at http://martinfowler.com/articles/rake.html
1997
+
1998
+ ==== Changes
1999
+
2000
+ ===== New Features
2001
+
2002
+ * Multiple prerequisites on Rake rules now allowed. However, keep the
2003
+ following in mind:
2004
+
2005
+ 1. All the prerequisites of a rule must be available before a rule
2006
+ is triggered, where "enabled" means (a) an existing file, (b) a
2007
+ defined rule, or (c) another rule which also must be
2008
+ trigger-able.
2009
+ 2. Rules are checked in order of definition, so it is important to
2010
+ order your rules properly. If a file can be created by two
2011
+ different rules, put the more specific rule first (otherwise the
2012
+ more general rule will trigger first and the specific one will
2013
+ never be triggered).
2014
+ 3. The <tt>source</tt> method now returns the name of the first
2015
+ prerequisite listed in the rule. <tt>sources</tt> returns the
2016
+ names of all the rule prerequisites, ordered as they are defined
2017
+ in the rule. If the task has other prerequisites not defined in
2018
+ the rule (but defined in an explicit task definition), then they
2019
+ will _not_ be included in the sources list.
2020
+
2021
+ * FileLists may now use the egrep command. This popular enhancement
2022
+ is now a core part of the FileList object. If you want to get a
2023
+ list of all your to-dos, fixmes and TBD comments, add the following
2024
+ to your Rakefile.
2025
+
2026
+ desc "Look for TODO and FIXME tags in the code"
2027
+ task :todo do
2028
+ FileList['**/*.rb'].egrep /#.*(FIXME|TODO|TBD)/
2029
+ end
2030
+
2031
+ * The <tt>investigation</tt> method was added to task object to dump
2032
+ out some important values. This makes it a bit easier to debug Rake
2033
+ tasks.
2034
+
2035
+ For example, if you are having problems with a particular task, just
2036
+ print it out:
2037
+
2038
+ task :huh do
2039
+ puts Rake::Task['huh'].investigation
2040
+ end
2041
+
2042
+ * The Rake::TestTask class now supports a "ruby\_opts" option to pass
2043
+ arbitrary ruby options to a test subprocess.
2044
+
2045
+ ===== Some Incompatibilities
2046
+
2047
+ * When using the <tt>ruby</tt> command to start a Ruby subprocess, the
2048
+ Ruby interpreter that is currently running rake is used by default.
2049
+ This makes it easier to use rake in an environment with multiple
2050
+ ruby installation. (Previously, the first ruby command found in the
2051
+ PATH was used).
2052
+
2053
+ If you wish to chose a different Ruby interpreter, you can
2054
+ explicitly choose the interpreter via the <tt>sh</tt> command.
2055
+
2056
+ * The major rake classes (Task, FileTask, FileCreationTask, RakeApp)
2057
+ have been moved out of the toplevel scope and are now accessible as
2058
+ Rake::Task, Rake::FileTask, Rake::FileCreationTask and
2059
+ Rake::Application. If your Rakefile
2060
+ directly references any one of these tasks, you may:
2061
+
2062
+ 1. Update your Rakefile to use the new classnames
2063
+ 2. Use the --classic-namespace option on the rake command to get the
2064
+ old behavior,
2065
+ 3. Add <code>require 'rake/classic_namespace'</code> to the
2066
+ Rakefile to get the old behavior.
2067
+
2068
+ <tt>rake</tt> will print a rather annoying warning whenever a
2069
+ deprecated class name is referenced without enabling classic
2070
+ namespace.
2071
+
2072
+ ===== Bug Fixes
2073
+
2074
+ * Several unit tests and functional tests were fixed to run better
2075
+ under windows.
2076
+
2077
+ * Directory tasks are now a specialized version of a File task. A
2078
+ directory task will only be triggered if it doesn't exist. It will
2079
+ not be triggered if it is out of date w.r.t. any of its
2080
+ prerequisites.
2081
+
2082
+ * Fixed a bug in the Rake::GemPackageTask class so that the gem now
2083
+ properly contains the platform name.
2084
+
2085
+ * Fixed a bug where a prerequisite on a <tt>file</tt> task would cause
2086
+ an exception if the prerequisite did not exist.
2087
+
2088
+ ==== Thanks
2089
+
2090
+ As usual, it was input from users that drove a alot of these changes.
2091
+ The following people either contributed patches, made suggestions or
2092
+ made otherwise helpful comments. Thanks to ...
2093
+
2094
+ * Greg Fast (better ruby_opt test options)
2095
+ * Kelly Felkins (requested by better namespace support)
2096
+ * Martin Fowler (suggested Task.investigation)
2097
+ * Stuart Jansen (send initial patch for multiple prerequisites).
2098
+ * Masao Mutch (better support for non-ruby Gem platforms)
2099
+ * Philipp Neubeck (patch for file task exception fix)
2100
+
2101
+ -- Jim Weirich
2102
+
2103
+ === 0.5.4
2104
+
2105
+ Time for some minor bug fixes and small enhancements
2106
+
2107
+ ==== Changes
2108
+
2109
+ Here are the changes for version 0.5.4 ...
2110
+
2111
+ * Added double quotes to the test runner. This allows the location of
2112
+ the tests (and runner) to be in a directory path that contains
2113
+ spaces (e.g. "C:/Program Files/ruby/bin").
2114
+ * Added .svn to default ignore list. Now subversion project metadata
2115
+ is automatically ignored by Rake's FileList.
2116
+ * Updated FileList#include to support nested arrays and filelists.
2117
+ FileLists are flat lists of file names. Using a FileList in an
2118
+ include will flatten out the nested file names.
2119
+
2120
+ == Thanks
2121
+
2122
+ As usual, it was input from users that drove a alot of these changes.
2123
+ Thanks to ...
2124
+
2125
+ * Tilman Sauerbeck for the nested FileList suggestion.
2126
+ * Josh Knowles for pointing out the spaces in directory name problem.
2127
+
2128
+ -- Jim Weirich
2129
+
2130
+ === 0.5.3
2131
+
2132
+ Although it has only been two weeks since the last release, we have
2133
+ enough updates to the Rake program to make it time for another
2134
+ release.
2135
+
2136
+ ==== Changes
2137
+
2138
+ Here are the changes for version 0.5.3 ...
2139
+
2140
+ * FileLists have been extensively changed so that they mimic the
2141
+ behavior of real arrays even more closely. In particular,
2142
+ operations on FileLists that return a new collection (e.g. collect,
2143
+ reject) will now return a FileList rather than an array. In
2144
+ addition, several places where FileLists were not properly expanded
2145
+ before use have been fixed.
2146
+ * A method (+ext+) to simplify the handling of file extensions was
2147
+ added to String and to Array.
2148
+ * The 'testrb' script in test/unit tends to silently swallow syntax
2149
+ errors in test suites. Because of that, the default test loader is
2150
+ now a rake-provided script. You can still use 'testrb' by setting
2151
+ the loader flag in the test task to :testrb. (See the API documents
2152
+ for TestTask for all the loader flag values).
2153
+ * FileUtil methods (e.g. cp, mv, install) are now declared to be
2154
+ private. This will cut down on the interference with user defined
2155
+ methods of the same name.
2156
+ * Fixed the verbose flag in the TestTask so that the test code is
2157
+ controlled by the flag. Also shortened up some failure messages.
2158
+ (Thanks to Tobias Luetke for the suggestion).
2159
+ * Rules will now properly detect a task that can generate a source
2160
+ file. Previously rules would only consider source files that were
2161
+ already present.
2162
+ * Added an +import+ command that allows Rake to dynamically import
2163
+ dependendencies into a running Rake session. The +import+ command
2164
+ can run tasks to update the dependency file before loading them.
2165
+ Dependency files can be in rake or make format, allowing rake to
2166
+ work with tools designed to generate dependencies for make.
2167
+
2168
+ ==== Thanks
2169
+
2170
+ As usual, it was input from users that drove a alot of these changes.
2171
+ Thanks to ...
2172
+
2173
+ * Brian Gernhardt for the rules fix (especially for the patience to
2174
+ explain the problem to me until I got what he was talking about).
2175
+ * Stefan Lang for pointing out problems in the dark corners of the
2176
+ FileList implementation.
2177
+ * Alexey Verkhovsky pointing out the silently swallows syntax errors
2178
+ in tests.
2179
+ * Tobias Luetke for beautifying the test task output.
2180
+ * Sam Roberts for some of the ideas behind dependency loading.
2181
+
2182
+ -- Jim Weirich
2183
+
2184
+
2185
+ === 0.5.0
2186
+
2187
+ It has been a long time in coming, but we finally have a new version
2188
+ of Rake available.
2189
+
2190
+ ==== Changes
2191
+
2192
+ * Fixed documentation that was lacking the Rake module name (Tilman
2193
+ Sauerbeck).
2194
+ * Added tar.gz and tar.bz2 support to package task (Tilman Sauerbeck).
2195
+ * Recursive rules are now supported (Tilman Sauerbeck).
2196
+ * Added warning option for the Test Task (requested by Eric Hodel).
2197
+ * The jamis rdoc template is only used if it exists.
2198
+ * Added fix for Ruby 1.8.2 test/unit and rails problem.
2199
+ * Added contributed rake man file (Jani Monoses).
2200
+ * Added Brian Candler's fix for problems in --trace and --dry-run
2201
+ mode.
2202
+
2203
+ ==== Thanks
2204
+
2205
+ Lots of people provided input to this release. Thanks to Tilman
2206
+ Sauerbeck for numerous patches, documentation fixes and suggestions.
2207
+ And for also pushing me to get this release out. Also, thanks to
2208
+ Brian Candler for the finding and fixing --trace/dry-run fix. That
2209
+ was an obscure bug. Also to Eric Hodel for some good suggestions.
2210
+
2211
+ -- Jim Weirich
2212
+
2213
+ === 0.4.15
2214
+
2215
+ ==== Changes
2216
+
2217
+ Version 0.4.15 is a bug fix update for the Ruby 1.8.2 compatibility
2218
+ changes. This release includes:
2219
+
2220
+ * Fixed a bug that prevented the TESTOPTS flag from working with the
2221
+ revised for 1.8.2 test task.
2222
+ * Updated the docs on --trace to indicate that it also enables a full
2223
+ backtrace on errors.
2224
+ * Several fixes for new warnings generated.
2225
+
2226
+ ==== Mini-Roadmap
2227
+
2228
+ I will continue to issue Rake updates in the 0.4.xx series as new
2229
+ Ruby-1.8.2 issues become manifest. Once the codebase stabilizes, I
2230
+ will release a 0.5.0 version incorporating all the changes. If you
2231
+ are not using Ruby-1.8.2 and wish to avoid version churn, I recommend
2232
+ staying with a release prior to Rake-0.4.14.
2233
+
2234
+ === 0.4.14
2235
+
2236
+ Version 0.4.14 is a compatibility fix to allow Rake's test task to
2237
+ work under Ruby 1.8.2. A change in the Test::Unit autorun feature
2238
+ prevented Rake from running any tests. This release fixes the
2239
+ problem.
495
2240
 
496
- * Modified the TestTask to workaround the Ruby 1.8.2 change in
497
- autoexecuting unit tests.
2241
+ Rake 0.4.14 is the recommended release for anyone using Ruby 1.8.2.
498
2242
 
499
2243
  === 0.4.13
500
2244
 
@@ -564,7 +2308,7 @@ the individual release notes files.
564
2308
 
565
2309
  === 0.4.2
566
2310
  * Added safe_ln that falls back to a copy if a file link is not supported.
567
- * Package builder now uses safe_ln.
2311
+ * Package builder now uses safe\_ln.
568
2312
 
569
2313
  === 0.4.1
570
2314
  * Task comments are now additive, combined with "/".
@@ -654,6 +2398,6 @@ presentation was being prepared. The changes include:
654
2398
  === 0.2.3
655
2399
 
656
2400
  * Added rake module for a help target
657
- * Added 'for_files' to Sys
2401
+ * Added 'for\_files' to Sys
658
2402
  * Added a $rakefile constant
659
2403
  * Added test for selecting proper rule with multiple targets.