All Versions
Latest Version
Avg Release Cycle
79 days
Latest Release

Changelog History
Page 6

  • v0.8.5 Changes

    • ๐Ÿ‘Œ Improved implementation of the Rake system command for Windows. (patch from James M. Lawrence/quix)

    • ๐Ÿ‘Œ Support for Ruby 1.9's improved system command. (patch from James M. Lawrence/quix)

    • ๐Ÿ”ง Rake now includes the configured extension when invoking an executable (Config::CONFIG['EXEEXT])

  • v0.8.4 Changes

    ๐Ÿš€ Rake version 0.8.4 is a bug-fix release of rake.

    ๐Ÿ’Ž NOTE: The version of Rake that comes with Ruby 1.9 has diverged slightly from the core Rake code base. Rake 0.8.4 will work with Ruby 1.9, but is not a strict upgrade for the Rake that comes with Ruby 1.9. A (near) future release of Rake will unify those two codebases.

    ==== Letter Writing Campaign

    Thanks to Aaron Patterson (@tenderlove) and Eric Hodel (@drbrain) for ๐Ÿ‘ their encouraging support in organizing a letter writing campaign to ๐Ÿš€ lobby for the "Warning Free" release of rake 0.8.4. A special callout goes to Jonathan D. Lord, Sr (Dr. Wingnut) whose postcard was the ๐Ÿ‘€ first to actually reach me. (see for details)

    ==== ๐Ÿ”„ Changes

  • v0.8.3 Changes

    • โœจ Enhanced the system directory detection in windows. We now check HOMEDRIVE/HOMEPATH and USERPROFILE if APPDATA isn't found. (Patch supplied by James Tucker). Rake no long aborts if it can't find the directory.

    • โž• Added fix to handle ruby installations in directories with spaces in their name.

  • v0.8.2 Changes

    • ๐Ÿ“œ Switched from getoptlong to optparse (patches supplied by Edwin Pratomo).

    • The -T option will now attempt to dynamically sense the size of the terminal. The -T output will only self-truncate if the output is a tty. However, if RAKE_COLUMNS is explicitly set, it will be honored in any case. (Patch provided by Gavin Stark).

    • The following public methods have been added to rake task objects:

      • task.clear -- Clear both the prerequisites and actions of the target rake task.
      • task.clear_prerequisites -- Clear all the existing prerequisites from the target rake task.
      • task.clear_actions -- Clear all the existing actions from the target rake task.
      • task.reenable -- Re-enable a task, allowing its actions to be executed again if the task is invoked.
    • ๐Ÿ”„ Changed RDoc test task to have no default template. This makes it easier for the tempate to pick up the template from the environment.

    • 0๏ธโƒฃ Default values for task arguments can easily be specified with the :with_defaults method. (Idea for default argument merging supplied by (Adam Q. Salter)

  • v0.8.0 Changes

    • ๐Ÿ‘€ Tasks can now receive command line parameters. See the examples below for more details.

    • Comments are limited to 80 columns on output, but full comments can be seen by using the -D parameter. (feature suggested by Jamis Buck).

    • Explicit exit(n) calls will now set the exit status to n. (patch provided by Stephen Touset).

    • ๐Ÿ’Ž Rake is now compatible with Ruby 1.9.

    ๐Ÿ”– Version 0.8.1 is a minor update that includes additional Ruby 1.9 ๐Ÿ›  compatibility fixes.

  • v0.7.3 Changes

    • โž• Added the +init+ and +top_level+ methods to make the creation of custom Rake applications a bit easier. E.g.

      gem 'rake', ">= 0.7.3" require 'rake'


      task :default do something_interesting end


  • v0.7.2 Changes

    ๐Ÿ”– Version 0.7.2 supplies a bug fix and a few minor enhancements. In ๐Ÿ›  particular, the new version fixes an incompatibility with the soon to ๐Ÿš€ be released Ruby 1.8.6. We strongly recommend upgrading to Rake 0.7.2 ๐Ÿ’Ž in order to be compatible with the new version of Ruby.

    ==== ๐Ÿ”„ Changes

    ===== ๐Ÿ› Bug Fixes in 0.7.2

    ๐Ÿ›  There are quite a number of bug fixes in the new 0.7.2 version of Rake:

    • โœ‚ Removed dependency on internal fu_xxx functions from FileUtils.

    • Error messages are now send to stderr rather than stdout (from Payton Quackenbush).

    • ๐Ÿ‘ Better error handling on invalid command line arguments (from Payton Quackenbush).

    • ๐Ÿ›  Fixed some bugs where the application object was going to the global appliation instead of using its own data.

    • ๐Ÿ›  Fixed the method name leak from FileUtils (bug found by Glenn Vanderburg).

    • โž• Added test for noop, bad_option and verbose flags to sh command.

    • โž• Added a description to the gem task in GemPackageTask.

    • ๐Ÿ›  Fixed a bug when rules have multiple prerequisites (patch by Joel VanderWerf)

    • โž• Added the handful of RakeFileUtils to the private method as well.

    ===== ๐Ÿ†• New Features in 0.7.2

    The following new features are available in Rake version 0.7.2:

    • โž• Added square and curly bracket patterns to FileList#include (Tilman Sauerbeck).

    • FileLists can now pass a block to FileList#exclude to exclude files based on calculated values.

    • โž• Added plain filename support to rule dependents (suggested by Nobu Nakada).

    • โž• Added pathmap support to rule dependents. In other words, if a pathmap format (beginning with a '%') is given as a Rake rule dependent, then the name of the depend will be the name of the target with the pathmap format applied.

    • โž• Added a 'tasks' method to a namespace to get a list of tasks associated with the namespace.

    • Added tar_command and zip_command options to the Package task.

    • The clean task will no longer delete 'core' if it is a directory.

    ===== Internal Rake Improvements

    The following changes will are mainly internal improvements and ๐Ÿ”จ refactorings and have little effect on the end user. But they may be of interest to the general public.

    • โž• Added rcov task and updated unit testing for better code coverage.

    • โž• Added a 'shame' task to the Rakefile.

    • โž• Added rake_extension to handle detection of extension collisions.

    • โž• Added a protected 'require "rubygems"' to test/test_application to unbreak cruisecontrol.rb.

    • โœ‚ Removed rake_dup. Now we just simply rescue a bad dup.

    • ๐Ÿ”จ Refactored the FileList reject logic to remove duplication.

    • Removed if __FILE__ at the end of the rake.rb file.

    ==== Thanks

    As usual, it was input from users that drove a alot of these changes. The following people either contributed patches, made suggestions or made otherwise helpful comments. Thanks to ...

    • Payton Quackenbush -- For several error handling improvements.

    • Glenn Vanderburg -- For finding and fixing the method name leak from FileUtils.

    • Joel VanderWerf -- for finding and fixing a bug in the handling of multiple prerequisites.

    • ๐Ÿ‘ Tilman Sauerbeck -- For some enhancing FileList to support more advanced file globbing.

    • ๐Ÿ‘ Nobu Nakada -- For suggesting plain file name support to rule dependents.

    -- Jim Weirich

  • v0.7.1 Changes

    ๐Ÿ”– Version 0.7.1 supplies a bug fix and a few minor enhancements.

    ==== ๐Ÿ”„ Changes

    ===== ๐Ÿ› Bug Fixes in 0.7.1

    • ๐Ÿ”„ Changes in the exception reported for the FileUtils.ln caused safe_ln to fail with a NotImplementedError. Rake 0.7.1 will now catch that error or any StandardError and properly fall back to using +cp+.

    ===== ๐Ÿ†• New Features in 0.7.1

    • You can filter the results of the --task option by supplying an optional regular expression. This allows the user to easily find a particular task name in a long list of possible names.

    • Transforming procs in a rule may now return a list of prerequisites. This allows more flexible rule formation.

    • ๐Ÿ‘ FileList and String now support a +pathmap+ melthod that makes the transforming paths a bit easier. See the API docs for +pathmap+ for details.

    • The -f option without a value will disable the search for a Rakefile. This allows the Rakefile to be defined entirely in a library (and loaded with the -r option). The current working directory is not changed when this is done.

    ==== Thanks

    As usual, it was input from users that drove a alot of these changes. The following people either contributed patches, made suggestions or made otherwise helpful comments. Thanks to ...

    • James Britt and Assaph Mehr for reporting and helping to debug the safe_ln issue.

    -- Jim Weirich

  • v0.7.0 Changes

    These changes for Rake have been brewing for a long time. Here they are, I hope you enjoy them.

    ==== ๐Ÿ”„ Changes

    ===== ๐Ÿ†• New Features

    • ๐Ÿ‘€ Name space support for task names (see below).
    • ๐Ÿ‘€ Prerequisites can be executed in parallel (see below).
    • โž• Added safe_ln support for openAFS (via Ludvig Omholt).
    • 0๏ธโƒฃ RDoc defaults to internal (in-process) invocation. The old behavior is still available by setting the +external+ flag to true.
    • Rakefiles are now loaded with the expanded path to prevent accidental pollution from the Ruby load path.
    • Task objects my now be used in prerequisite lists directly.
    • Task objects (in addition to task names) may now be included in the prerequisite list of a task.
    • ๐Ÿ”จ Internals cleanup and refactoring.

    ===== ๐Ÿ› Bug Fixes

    • ๐Ÿ’Ž Compatibility fixes for Ruby 1.8.4 FileUtils changes.

    ===== Namespaces

    Tasks can now be nested inside their own namespaces. Tasks within one namespace will not accidentally interfer with tasks named in a different namespace.

    For example:

    namespace "main" do task :build do # Build the main program end end

    namespace "samples" do task :build do # Build the sample programs end end

    task :build_all => ["main:build", "samples:build"]

    ๐Ÿ— Even though both tasks are named :build, they are separate tasks in ๐Ÿ— their own namespaces. The :build_all task (defined in the toplevel ๐Ÿ— namespace) references both build tasks in its prerequisites.

    ๐Ÿ— You may invoke each of the individual build tasks with the following commands:

    rake main:build rake samples:build

    ๐Ÿ— Or invoke both via the :build_all command:

    rake build_all

    Namespaces may be nested arbitrarily. Since the name of file tasks correspond to the name of a file in the external file system, FileTasks are not affected by the namespaces.

    ๐Ÿ“š See the Rakefile format documentation (in the Rake API documents) for more information.

    ===== Parallel Tasks

    Sometimes you have several tasks that can be executed in parallel. By specifying these tasks as prerequisites to a +multitask+ task.

    In the following example the tasks copy_src, copy_doc and copy_bin will all execute in parallel in their own thread.

    multitask :copy_files => [:copy_src, :copy_doc, :copy_bin] do puts "All Copies Complete" end

    ==== Thanks

    As usual, it was input from users that drove a alot of these changes. The following people either contributed patches, made suggestions or made otherwise helpful comments. Thanks to ...

    • Doug Young (inspiration for the parallel task)
    • David Heinemeier Hansson (for --trace message enhancement and for pushing for namespace support).
    • Ludvig Omholt (for the openAFS fix)

    -- Jim Weirich

  • v0.6.1 Changes

    • Rebuilt 0.6.0 gem without signing.