rake 11.1.2 → 11.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rake might be problematic. Click here for more details.

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