=== 10.4.2 / 2014-12-02

Bug fixes:

* Rake no longer edits ARGV.  This allows you to re-exec rake from a rake
  task.  Pull requset #9 by Matt Palmer.
* Documented how Rake::DSL#desc handles sentences in task descriptions.
  Issue #7 by Raza Sayed.
* Fixed test error on 1.9.3 with legacy RubyGems.  Issue #8 by Matt Palmer.
* Deleted duplicated History entry.  Pull request #10 by Yuji Yamamoto.

=== 10.4.1 / 2014-12-01

Bug fixes:

* Reverted fix for #277 as it caused numerous issues for rake users.
  rails/spring issue #366 by Gustavo Dutra.

=== 10.4.0 / 2014-11-22

Enhancements:

* Upgraded to minitest 5.  Pull request #292 by Teo Ljungberg.
* Added support for Pathname in rake tasks.  Pull request #271 by Randy
  Coulman.
* Rake now ignores falsy dependencies which allows for easier programmatic
  creation of tasks.  Pull request #273 by Manav.
* Rake no longer edits ARGV.  This allows you to re-exec rake from a rake
  task.  Issue #277 by Matt Palmer.
* Etc.nprocessors is used for counting the number of CPUs.

Bug fixes:

* Updated rake manpage.  Issue #283 by Nathan Long, pull request #291 by
  skittleys.
* Add Rake::LATE to allow rebuilding of files that depend on deleted files.
  Bug #286, pull request #287 by David Grayson.
* Fix relinking of files when repackaging.  Bug #276 by Muenze.
* Fixed some typos.  Pull request #280 by Jed Northridge.
* Try counting CPUs via cpuinfo if host_os was not matched.  Pull request
  #282 by Edouard B.

=== 10.3.2 / 2014-05-15

Bug fixes:

* Rake no longer infinitely loops when showing exception causes that refer to
  each other.  Bug #272 by Chris Bandy.
* Fixed documentation typos.  Bug #275 by Jake Worth.

=== 10.3.1 / 2014-04-17

Bug fixes:

* Really stop reporting an error when cleaning already-deleted files.  Pull
  request #269 by Randy Coulman
* Fixed infinite loop when cleaning already-deleted files on windows.

=== 10.3 / 2014-04-15

Enhancements:

* Added --build-all option to rake which treats all file prerequisites as
  out-of-date.  Pull request #254 by Andrew Gilbert.
* Added Rake::NameSpace#scope.  Issue #263 by Jon San Miguel.

Bug fixes:

* Suppress org.jruby package files in rake error messages for JRuby users.
  Issue #213 by Charles Nutter.
* Fixed typo, removed extra "h".  Pull request #267 by Hsing-Hui Hsu.
* Rake no longer reports an error when cleaning already-deleted files.  Pull
  request #266 by Randy Coulman.
* Consume stderr while determining CPU count to avoid hang.  Issue #268 by
  Albert Sun.

=== 10.2.2 / 2014-03-27

Bug fixes:

* Restored Ruby 1.8.7 compatibility

=== 10.2.1 / 2014-03-25

Bug fixes:

* File tasks including a ':' are now top-level tasks again.  Issue #262 by
  Josh Holtrop.
* Use sysctl for CPU count for all BSDs.  Pull request #261 by Joshua Stein.
* Fixed CPU detection for unknown platforms.

=== 10.2.0 / 2014-03-24

Enhancements:

* Rake now requires Ruby 1.9 or newer.  For me, this is a breaking change, but
  it seems that Jim planned to release it with Rake 10.2.  See also pull
  request #247 by Philip Arndt.
* Rake now allows you to declare tasks under a namespace like:

    task 'a:b' do ... end

  Pull request #232 by Judson Lester.
* Task#source defaults to the first prerequisite in non-rule tasks.  Pull
  request #215 by Avdi Grimm.
* Rake now automatically rebuilds and reloads imported files.  Pull request
  #209 by Randy Coulman.
* The rake task arguments can contain escaped commas.  Pull request #214 by
  Filip Hrbek.
* Rake now prints the exception class on errors.  Patch #251 by David Cornu.

Bug fixes:

* Fixed typos.  Pull request #256 by Valera Rozuvan, #250 via Jake Worth, #260
  by Zachary Scott.
* Fixed documentation for calling tasks with arguments.  Pull request #235 by
  John Varghese.
* Clarified `rake -f` usage message.  Pull request #252 by Marco Pfatschbacher.
* Fixed a test failure on windows.  Pull request #231 by Hiroshi Shirosaki.
* Fixed corrupted rake.1.gz.  Pull request #225 by Michel Boaventura.
* Fixed bug in can_detect_signals? in test.  Patch from #243 by Alexey
  Borzenkov.

=== 10.1.1 and earlier

Additions to the old CHANGES file were not made consistently so some
versions are missing from this file.  These changes are usually described in
the individual release notes files.

=== 0.9.3

* The rake test loader now removes arguments it has processed.  Issue #51
* Rake::TaskArguments now responds to #values_at
* RakeFileUtils.verbose_flag = nil silences output the same as 0.8.7
* Rake tests are now directory-independent
* Rake tests are no longer require flexmock
* Commands constant is no longer polluting top level namespace.
* Show only the interesting portion of the backtrace by default (James M. Lawrence).
* Added --reduce-compat optiont to remove backward compatible DSL hacks (James M. Lawrence).
* lib/rake/file_list.rb (Rake::FileList#egrep): there is no need to
  open files in binary mode. (NAKAMURA Usaku)

=== 0.9.2

* Unknown

=== 0.9.1

* Added deprecation warnings to the Rake DSL methods.

=== 0.9.0

* *Incompatible* *change*: Rake DSL commands ('task', 'file', etc.)  are
  no longer private methods in Object.  If you need to call 'task :xzy' inside
  your class, include Rake::DSL into the class.  The DSL is still available at
  the top level scope (via the top level object which extends Rake::DSL).

* Rake now warns when the deprecated :needs syntax used.

* Rake history is now UTF-8 encoded.

* Rake now uses case-insensitive comparisons to find the Rakefile on Windows.
  Based on patch by Roger Pack.

* Rake now requires (instead of loads) files in the test task.  Patch by Cezary
  Baginski.

* Fixed typos.  Patches by Sean Scot August Moon and R.T. Lechow.

* Rake now prints the Rakefile directory only when it's different from the
  current directory.  Patch by Alex Chaffee.

* Improved rakefile_location discovery on Windows.  Patch by James Tucker.

* Rake now recognizes "Windows Server" as a windows system.  Patch by Matthias
  Lüdtke

* Rake::RDocTask is deprecated.  Use RDoc::Task from RDoc 2.4.2+ (require
  'rdoc/task')

* Rake::GemPackageTask is deprecated.  Use Gem::PackageTask (require
  'rubygems/package_task')

* Rake now outputs various messages to $stderr instead of $stdout.

* Rake no longer emits warnings for Config.  Patch by Santiago Pastorino.

* Split rake.rb into individual files.

* Support for the --where (-W) flag for showing where a task is defined.

* Fixed quoting in test task.
  (http://onestepback.org/redmine/issues/show/44,
  http://www.pivotaltracker.com/story/show/1223138)

* Fixed the silent option parsing problem.
  (http://onestepback.org/redmine/issues/show/47)

* Fixed :verbose=>false flag on sh and ruby commands.

* Rake command line options may be given by default in a RAKEOPT
  environment variable.

* Errors in Rake will now display the task invocation chain in effect
  at the time of the error.

* Accepted change by warnickr to not expand test patterns in shell
  (allowing more files in the test suite).

* Fixed that file tasks did not perform prereq lookups in scope
  (Redmine #57).

=== 0.8.7

* Fixed EXEEXT for JRuby on windows.

=== 0.8.6

* Minor fixes to the RDoc generation (removed dependency on darkfish
  and removed inline source option).

* Now allow # comments to comment a task definition.

=== 0.8.5

* Better support for the system command on Windows.

=== 0.8.4

* Preserve case when locating rakefiles (patch from James
  M. Lawrence/quix)

* Better support for windows paths in the test task (patch from Simon
  Chiang/bahuvrihi)

* Windows system dir search order is now: HOME, HOMEDRIVE + HOMEPATH,
  APPDATA, USERPROFILE (patch from Luis Lavena)

* MingGW is now recognized as a windows platform.  (patch from Luis
  Lavena)

* Numerous fixes to the windows test suite (patch from Luis Lavena).

* Improved Rakefile case insensitivity testing (patch from Luis
  Lavena).

* Fixed stray ARGV option problem that was interfering with
  Test::Unit::Runner.

* Fixed default verbose mode (was accidently changed to false).

* Removed reference to manage_gem to fix the warning produced by the
  gem package task.

=== 0.8.3

* 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.

=== 0.8.2

* Fixed bug in package task so that it will include the subdir
  directory in the package for testing. (Bug found by Adam Majer)

* Added ENV var to rakefile to prevent OS X from including extended
  attribute junk in a tar file. (Bug found by Adam Majer)

* Fixed filename dependency order bug in test_inspect_pending and
  test_to_s_pending. (Bug found by Adam Majer)

* Fixed check for file utils options to make them immune to the
  symbol/string differences. (Patch supplied by Edwin Pratomo)

* Fixed bug with rules involving multiple source (Patch supplied by
  Emanuel Indermühle)

* Switched from getoptlong to optparse (patches supplied by Edwin
  Pratomo)

* The -T option will now attempt to dynamically sense the size of the
  terminal.  RAKE_COLUMNS will override any dynamic sensing.

* FileList#clone and FileList#dup have better sematics w.r.t. taint
  and freeze.

* Added ability clear prerequisites, and/or actions from an existing
  task.

* Added the ability to reenable a task to be invoked a second time.

* Changed RDoc test task to have no default template. This makes it
  easier for the tempate to pick up the template from the environment.

* Changed from using Mutex to Monitor. Evidently Mutex causes thread
  join errors when Ruby is compiled with -disable-pthreads. (Patch
  supplied by Ittay Dror)

* Fixed bug in makefile parser that had problems with extra spaces in
  file task names. (Patch supplied by Ittay Dror)

* Added a performance patch for reading large makefile dependency
  files. (Patch supplied by Ittay Dror)

* Default values for task arguments can easily be specified with the
  :with_defaults method. (Idea for default argument merging supplied
  by (Adam Q. Salter)

* 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).

* Numerous fixes for running under windows. A big thanks to Bheeshmar
  Redheendran for spending a good part of the afternoon at the
  Lonestar Ruby Conference to help me work out these issues.

=== 0.8.1

* Removed requires on parsedate.rb (in Ftptools)
* Removed ftools from rake.rb.  Made it options in sys.rb

=== 0.8.0

* Added task parameters (e.g. "rake build[version7]")
* Made task parameters passable to prerequisites.
* Comments are limited to 80 columns or so (suggested by Jamis Buck).
* Added -D to display full comments (suggested by Jamis Buck).
* The rake program will set the status value used in any explicit
  exit(n) calls. (patch provided by Stephen Touset)
* Fixed error in functional tests that were not including session (and
  silently skipping the functionl tests.
* Removed --usage and make -h the same as -H.
* Make a prettier inspect for tasks.

=== 0.7.3

* Added existing and existing! methods to FileList
* FileLists now claim to be Arrays (via is_a?) to get better support
  from the FileUtil module.
* Added init and top_level for custom rake applications.

=== 0.7.2

* Error messages are now send to stderr rather than stdout (from
  Payton Quackenbush).
* Better error handling on invalid command line arguments (from Payton
  Quackenbush).
* Added rcov task and updated unit testing for better code coverage.
* Fixed some bugs where the application object was going to the global
  appliation instead of using its own data.
* Added square and curly bracket patterns to FileList#include (Tilman
  Sauerbeck).
* Added plain filename support to rule dependents (suggested by Nobu
  Nakada).
* Added pathmap support to rule dependents.
* Added a 'tasks' method to a namespace to get a list of tasks
  associated with the namespace.
* Fixed the method name leak from FileUtils (bug found by Glenn
  Vanderburg).
* Added rake_extension to handle detection of extension collisions.
* Added test for noop, bad_option and verbose flags to sh command.
* Removed dependency on internal fu_xxx functions from FileUtils.
* Added a 'shame' task to the Rakefile.
* Added tar_command and zip_command options to the Package task.
* Added a description to the gem task in GemPackageTask.
* Fixed a bug when rules have multiple prerequisites (patch by Joel
  VanderWerf)
* Added a protected 'require "rubygems"' to test/test_application to
  unbreak cruisecontrol.rb.
* Added the handful of RakeFileUtils to the private method as well.
* Added block based exclusion.
* The clean task will no longer delete 'core' if it is a directory.
* 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.

=== 0.7.1

* Added optional filter parameter to the --tasks command line option.
* Added flatten to allow rule transform procs to return lists of
  prereqs (Joel VanderWerf provided patch).
* Added pathmap to String and FileList.
* The -r option will now load .rake files (but a straight require
  doesn't yet).  NOTE: This is experimental ... it may be
  discontinued.
* The -f option without a value will disable the search for a
  Rakefile.  The assumption is that the -r files are adequate.
* Fixed the safe_ln function to fall back to cp in more error
  scenarios.

=== 0.7.0

* Added Rake.original_dir to return the original starting directory of
  the rake application.
* Added safe_ln support for openAFS (from Ludvig Omholt).
* Added --trace reminder on short exception messages (David Heinemeier
  Hansson suggestion).
* Added multitask declaration that executes prerequisites in
  parallel. (Doug Young providied an initial implementation).
* Fixed missing_const hack to be compatible with Rails. (Jamis Buck
  supplied test case).
* Made the RDoc task default to internal (in-process) RDoc formatting.
  The old behavior is still available by setting the +external+ flag
  to true.
* Rakefiles are now loaded with the expanded path to prevent
  accidental polution from the Ruby load path.
* The +namespace+ command now returns a NameSpace object that can be
  used to lookup tasks defined in that namespace.  This allows for
  better anonymous namespace behavior.
* Task objects my now be used in prerequisite lists directly.

=== 0.6.1

* Rebuilt 0.6.0 gem without signing.

=== 0.6.0

* Fixed file creation bug in the unit tests (caused infinite loop on
  windows).
* Fixed bug where session based functional tests were run under
  windows.
* Fixed bug in directory tasks so that updating a directory will not
  retrigger file tasks depending on the directory (see
  FileCreationTask and EarlyTime).
* Added egrep to FileList
* ruby command now runs same ruby version as rake.
* Added investigation to task object. (suggested by Martin Fowler)
* Added ruby_opts to the test task to allow arbitrary ruby options to
  be passed to the test script. (Greg Fast)
* Fixed the test loader to ignore options. (Greg Fast)
* Moved Task, FileTask, FileCreationTask and RakeApp into the Rake
  module namespace.  Old style namespace behavior can be invoked via
  the --classic-namespace option. (requested by Kelly Felkins).
* GemTask is now sensitive to the gem platform (Masao Mutoh).
* A non-existing file prerequisite will no longer cause an exception
  (Philipp Neubeck).
* Multiple prerequisites on Rake rules now allowed (initial patch
  supplied by Stuart Jansen).

=== 0.5.4

* Added double quotes to the test runner.
* Added .svn to default ignore list.
* Updated FileList#include to support nested arrays and filelists.

=== 0.5.3

* Added support for importing Rakefile and other dependencies.
* Fixed bug so that now rules can chain off of existing tasks as well
  as existing files.
* Fixed verbose flag bug in the testing task.  Shortened some failure
  messages.
* Make FileUtils methods private at the top level module to avoid
  accidental method leaking into other objects.
* Added test loader option to test task.  "testrb" is no longer the
  default test loader.  It is now eating syntax errors that should
  halt the unit tests.
* Revamped FileList so that it works more like and array (addressed
  flatten bug).  Added many tests around file list.
* Added +ext+ method to both String and FileList.

=== 0.5.0

* Fixed documentation that was lacking the Rake module name (Tilman
  Sauerbeck).
* Added tar.gz and tar.bz2 support to package task (Tilman Sauerbeck).
* Recursive rules are now supported (Tilman Sauerbeck).
* Added warning option for the Test Task (requested by Eric Hodel).
* The jamis rdoc template is only used if it exists.
* Added fix for Ruby 1.8.2 test/unit and rails problem.
* Added contributed rake man file (Jani Monoses).
* Added Brian Candler's fix for problems in --trace and --dry-run
  mode.

=== 0.4.15

* Fixed a bug that prevented the TESTOPTS flag from working with the
  revised for 1.8.2 test task.
* Updated the docs on --trace to indicate that it also enables a full
  backtrace on errors.

=== 0.4.14

* Modified the TestTask to workaround the Ruby 1.8.2 change in
  autoexecuting unit tests.

=== 0.4.13

* Fixed the dry-run flag so it is operating again.
* Multiple arguments to sh and ruby commands will not be interpreted
  by the shell (patch provided by Jonathan Paisley).

=== 0.4.12

* Added --silent (-s) to suppress the (in directory) rake message.

=== 0.4.11

* Changed the "don't know how to rake" message (finally)
* Changes references to a literal "Rakefile" to reference the global
  variable $rakefile (which contains the actual name of the rakefile).

=== 0.4.10

* Added block support to the "sh" command, allowing users to take
  special actions on the result of the system call.  E.g.

    sh "shell_command" do |ok, res|
      puts "Program returned #{res.exitstatus}" if ! ok
    end

=== 0.4.9

* Switched to Jamis Buck's RDoc template.
* Removed autorequire from Rake's gem spec.  This prevents the Rake
  libraries from loading while using rails.

=== 0.4.8

* Added support for .rb versions of Rakefile.
* Removed \\\n's from test task.
* Fixed Ruby 1.9 compatibility issue with FileList.

=== 0.4.7

* Fixed problem in FileList that caused Ruby 1.9 to go into infinite
  recursion.  Since to_a was removed from Object, it does not need to
  added back into the list of methods to rewrite in FileList.  (Thanks
  to Kent Sibilev for pointing this out).

=== 0.4.6
* Removed test version of ln in FileUtils that prevented safe_ln from
  using ln.

=== 0.4.5
* Upgraded comments in TestTask.
* FileList to_s and inspect now automatically resolve pending changes.
* FileList#exclude properly returns the FileList.

=== 0.4.4
* Fixed initialization problem with @comment.
* Now using multi -r technique in TestTask.  Switch Rakefile back to
  using the built-in test task macros because the rake runtime is no
  longer needed.
* Added 'TEST=filename' and 'TESTOPTS=options' to the Test Task
  macros.
* Allow a +test_files+ attribute in test tasks.  This allows more
  flexibility in specifying test files.

=== 0.4.3
* Fixed Comment leakage.

=== 0.4.2
* Added safe_ln that falls back to a copy if a file link is not supported.
* Package builder now uses safe_ln.

=== 0.4.1
* Task comments are now additive, combined with "/".
* Works with (soon to be released) rubygems 0.6.2 (or 0.7.0)

=== 0.4.0
* FileList now uses deferred loading.  The file system is not searched
  until the first call that needs the file names.
* VAR=VALUE options are now accepted on the command line and are
  treated like environment variables.  The values may be tested in a
  Rakefile by referencing ENV['VAR'].
* File.mtime is now used (instead of File.new().mtime).

=== 0.3.2.x

* Removed some hidden dependencies on rubygems.  Tests now will test
  gems only if they are installed.
* Removed Sys from some example files.  I believe that is that last
  reference to Sys outside of the contrib area.
* Updated all copyright notices to include 2004.

=== 0.3.2

* GEM Installation now works with the application stub.

=== 0.3.1

* FileLists now automatically ignore CVS, .bak, !
* GEM Installation now works.

=== 0.3.0

Promoted 0.2.10.

=== 0.2.10
General

* Added title to Rake's rdocs
* Contrib packages are no longer included in the documentation.

RDoc Issues

* Removed default for the '--main' option
* Fixed rendering of the rdoc options
* Fixed clean/clobber confusion with rerdoc
* 'title' attribute added

Package Task Library Issues

* Version (or explicit :noversion) is required.
* +package_file+ attribute is now writable

FileList Issues

* Dropped bang version of exclude.  Now using ant-like include/exclude semantics.
* Enabled the "yield self" idiom in FileList#initialize.

=== 0.2.9

This version contains numerous changes as the RubyConf.new(2003)
presentation was being prepared.  The changes include:

* The monolithic rubyapp task library is in the process of being
  dropped in favor of lighter weight task libraries.

=== 0.2.7

* Added "desc" for task descriptions.
* -T will now display tasks with descriptions.
* -P will display tasks and prerequisites.
* Dropped the Sys module in favor of the 1.8.x FileUtils module.  Sys
  is still supported in the contrib area.

=== 0.2.6

* Moved to RubyForge

=== 0.2.5

* Switched to standard ruby app builder.
* Added no_match option to file matcher.

=== 0.2.4

* Fixed indir, which neglected to actually change directories.

=== 0.2.3

* Added rake module for a help target
* Added 'for_files' to Sys
* Added a $rakefile constant
* Added test for selecting proper rule with multiple targets.
