rake 10.5.0 → 13.0.3

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