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.