Skip to content

Commit

Permalink
release notes for Rake 10
Browse files Browse the repository at this point in the history
  • Loading branch information
jimweirich committed Oct 26, 2012
1 parent e82ffd2 commit 799d8e0
Showing 1 changed file with 168 additions and 0 deletions.
168 changes: 168 additions & 0 deletions doc/release_notes/rake-10.0.0.rdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
= Rake 10.0 Released

"Jim, when will Rake reach version 1.0?"

Over the past several years I've been asked that question at
conferences, panels and over twitter. Due to historical reasons (or
maybe just plain laziness) Rake has been treating the second digit of
the version as the major release number. So in my head Rake was
already at version 9.

Well, it's time to fix things. This next version of Rake drops old,
crufty, backwards compatibility hacks such as top level constants, DSL
methods defined in Object and numerous other features that are just no
longer desired. It's also time to drop the leading zero from the
version number as well and call this new version of rake what it
really is: Version 10.

So, welcome to Rake 10.0!

Rake 10 is actually feature identical to the latest version of Rake 9
(that would be the version spelled 0.9.3), *except* that Rake 10 drops
all the sundry deprecated features that have accumulated over the years.

If your Rakefile is up to date and current with all the new features
of Rake 10, you are ready to go. If your Rakefile still uses a few
deprecated feeatures, feel free to use Rake 9 (0.9.3) with the same
feature set. Just be aware that future features will be in Rake 10
family line.

== Changes in 10.0

As mentioned above, there are no new features in Rake 10. However,
there are a number of features missing:

* Classic namespaces are now gone. Rake is no longer able to reflect
the options settings in the global variables ($rakefile, $show_tasks,
$show_prereqs, $trace, $dryrun and $silent). The
<tt>--classic-namespace</tt> option is no longer supported.

* Global constants are no longer supported. This includes
<tt>Task</tt>, <tt>FileTask</tt>, <tt>FileCreationTask</tt> and
<tt>RakeApp</tt>). The constant missing hook to warn about using
global rake constants has been removed.

* The Rake DSL methods (task, file, directory, etc) are in their own
module (Rake::DSL). The stub versions of these methods (that printed
warnings) in Object have been removed. However, the DSL methods are
added to the top-level <tt>main</tt> object. Since <tt>main</tt> is
not in the inheritance tree, the presence of the DSL methods in main
should be low impact on other libraries.

If you want to use the Rake DSL commands from your own code, just
include <tt>Rake::DSL</tt> into your own classes and modules.

* The deprecated syntax for task arguments (the one using
<tt>:needs</tt>) has been removed.

* The <tt>--reduce-compat</tt> flag has been removed (it's not needed
anymore).

* The deprecated <tt>rake/sys.rb</tt> library has been removed.

* The deprecated <tt>rake/rdoctask.rb</tt> library has been removed.
RDoc supplies its own rake task now.

* The deprecated <tt>rake/gempackagetask.rb</tt> library has been
removed. Gem supplies its own package task now.

== Changes (from 0.9.3)

Since Rake 10 includes the changes from the last version of Rake 9,
we'll repeat the changes for version 0.9.3 here.

=== New Features

* Multitask tasks now use a thread pool. Use -j to limit the number of
available threads.

* Use -m to turn regular tasks into multitasks (use at your own risk).

* You can now do "Rake.add_rakelib 'dir'" in your Rakefile to
programatically add rake task libraries.

* You can specific backtrace suppression patterns (see
--supress-backtrace)

* Directory tasks can now take prerequisites and actions

* Use --backtrace to request a full backtrace without the task trace.

* You can say "--backtrace=stdout" and "--trace=stdout" to route trace
output to standard output rather than standard error.

* Optional 'phony' target (enable with 'require 'rake/phony'") for
special purpose builds.

* Task#clear now clears task comments as well as actions and
prerequisites. Task#clear_comment will specifically target comments.

* The --all option will force -T and -D to consider all the tasks,
with and without descriptions.

=== Bug Fixes

* Semi-colons in windows rakefile paths now work.

* Improved Control-C support when invoking multiple test suites.

* egrep method now reads files in text mode (better support for
Windows)

* Better deprecation line number reporting.

* The -W option now works with all tasks, whether they have a
description or not.

* File globs in rake should not be sorted alphabetically, independent
of file system and platform.

* Numerous internal improvements.

* Documentation typos and fixes.

== 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:

Home Page:: http://github.com/jimweirich/rake
Download:: http://rubyforge.org/project/showfiles.php?group_id=50
GitHub:: git://github.com/jimweirich/rake.git

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

* Aaron Patterson
* Dylan Smith
* Jo Liss
* Jonas Pfenniger
* Kazuki Tsujimoto
* Michael Bishop
* Michael Elufimov
* NAKAMURA Usaku
* Ryan Davis
* Sam Grönblom
* Sam Phippen
* Sergio Wong
* Tay Ray Chuan
* grosser
* quix

Also, many thanks to Eric Hodel for assisting with getting this release
out the door.

-- Jim Weirich

1 comment on commit 799d8e0

@knoopx
Copy link

@knoopx knoopx commented on 799d8e0 Nov 1, 2012

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh god, another project messing around with major version numbers... :(

Please sign in to comment.