rake 10.5.0 → 13.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.