rake 10.5.0 → 13.0.1

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