Rake 0.5.0 Released
Although it has only been two weeks since the last release, we have enough
updates to the Rake program to make it time for another release.
Changes
Here are the changes for version 0.5.3 …
- FileLists have been extensively changed so that they mimic the behavior of
real arrays even more closely. In particular, operations on FileLists that
return a new collection (e.g. collect, reject) will now return a FileList
rather than an array. In addition, several places where FileLists were not
properly expanded before use have been fixed.
- A method (ext) to simplify the handling of file extensions was
added to String and to Array.
- The ‘testrb’ script in test/unit tends to silently swallow
syntax errors in test suites. Because of that, the default test loader is
now a rake-provided script. You can still use ‘testrb’ by
setting the loader flag in the test task to :testrb. (See the API documents
for TestTask for all the loader flag values).
- FileUtil methods (e.g. cp, mv, install) are now declared to be private.
This will cut down on the interference with user defined methods of the
same name.
- Fixed the verbose flag in the TestTask so that the test code is controlled
by the flag. Also shortened up some failure messages. (Thanks to Tobias
Luetke for the suggestion).
- Rules will now properly detect a task that can generate a source file.
Previously rules would only consider source files that were already
present.
- Added an import command that allows Rake to dynamically import
dependendencies into a running Rake session. The import command
can run tasks to update the dependency file before loading them. Dependency
files can be in rake or make format, allowing rake to work with tools
designed to generate dependencies for make.
What is Rake
Rake is a build tool similar to the make program in many ways. But instead
of cryptic make recipes, Rake uses standard Ruby code to declare tasks and
dependencies. You have the full power of a modern scripting language built
right into your build tool.
Availability
The easiest way to get and install rake is via RubyGems …
gem install rake (you may need root/admin privileges)
Otherwise, you can get it from the more traditional places:
Thanks
As usual, it was input from users that drove a alot of these changes.
Thanks to …
- Brian Gernhardt for the rules fix (especially for the patience to explain
the problem to me until I got what he was talking about).
- Stefan Lang for pointing out problems in the dark corners of the FileList
implementation.
- Alexey Verkhovsky pointing out the silently swallows syntax errors in
tests.
- Tobias Luetke for beautifying the test task output.
- Sam Roberts for some of the ideas behind dependency loading.