# ANN: Rake 0.8.4 Released

**URL:** <https://rubytalk.org/t/ann-rake-0-8-4-released/52106>\
**Category:** ruby-talk\
**Created:** [4 March 2009 13:43 UTC](https://rubytalk.org/t/ann-rake-0-8-4-released/52106 "2009-03-04T13:43:43Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jim\_Weirich1](https://avatars.discourse-cdn.com/v4/letter/j/73ab20/32.png) [@Jim\_Weirich1](https://rubytalk.org/u/Jim_Weirich1)\
**Post date:** [4 March 2009 13:43 UTC](https://rubytalk.org/t/ann-rake-0-8-4-released/52106/1 "2009-03-04T13:43:43Z")

</div>

= Rake 0.8.4 Released

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  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slightly from the core Rake code base. Rake 0.8.4 will work  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with Ruby 1.9, but is not a strict upgrade for the Rake that  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comes with Ruby 1.9. A (near) future release of Rake will unify  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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  
[http://tenderlovemaking.com/2009/02/26/we-need-a-new-version-of-rake/](http://tenderlovemaking.com/2009/02/26/we-need-a-new-version-of-rake/)  
for details)

== Changes

=== New Features / Enhancements in Version 0.8.4

\* Case is preserved on rakefile names. (patch from James  
&nbsp;&nbsp;M. Lawrence/quix)

\* Improved Rakefile case insensitivity testing (patch from Luis  
&nbsp;&nbsp;Lavena).

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

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

=== Bug Fixes in Version 0.8.4

\* Removed reference to manage\_gem to fix the warning produced by the  
&nbsp;&nbsp;gem package task.

\* Fixed stray ARGV option problem that was interfering with  
&nbsp;&nbsp;Test::Unit::Runner. (patch from Pivotal Labs)

=== Infrastructure Improvements in Version 0.8.4

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

\* Improved Rakefile case insensitivity testing (patch from Luis  
&nbsp;&nbsp;Lavena).

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

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

&nbsp;&nbsp;gem install rake (you may need root/admin privileges)

Otherwise, you can get it from the more traditional places:

Home Page:: [http://rake.rubyforge.org/](http://rake.rubyforge.org/)  
Download:: [http://rubyforge.org/project/showfiles.php?group\_id=50](http://rubyforge.org/project/showfiles.php?group_id=50)  
GitHub:: git://github.com/jimweirich/rake.git

== Task Argument Examples

Prior to version 0.8.0, rake was only able to handle command line  
arguments of the form NAME=VALUE that were passed into Rake via the  
ENV hash. Many folks had asked for some kind of simple command line  
arguments, perhaps using "--" to separate regular task names from  
argument values on the command line. The problem is that there was no  
easy way to associate positional arguments on the command line with  
different tasks. Suppose both tasks :a and :b expect a command line  
argument: does the first value go with :a? What if :b is run first?  
Should it then get the first command line argument.

Rake 0.8.0 solves this problem by explicitly passing values directly  
to the tasks that need them. For example, if I had a release task  
that required a version number, I could say:

&nbsp;&nbsp;&nbsp;rake release[0.8.4]

And the string "0.8.4" will be passed to the :release task. Multiple  
arguments can be passed by separating them with a comma, for example:

&nbsp;&nbsp;&nbsp;rake name[john,doe]

Just a few words of caution. The rake task name and its arguments  
need to be a single command line argument to rake. This generally  
means no spaces. If spaces are needed, then the entire rake +  
argument string should be quoted. Something like this:

&nbsp;&nbsp;&nbsp;rake "name[billy bob, smith]"

(Quoting rules vary between operating systems and shells, so make sure  
you consult the proper docs for your OS/shell).

=== Tasks that Expect Parameters

Parameters are only given to tasks that are setup to expect them. In  
order to handle named parameters, the task declaration syntax for  
tasks has been extended slightly.

For example, a task that needs a first name and last name might be  
declared as:

&nbsp;&nbsp;&nbsp;task :name, :first\_name, :last\_name

The first argument is still the name of the task (:name in this case).  
The next to argumements are the names of the parameters expected by  
:name (:first\_name and :last\_name in the example).

To access the values of the paramters, the block defining the task  
behaviour can now accept a second parameter:

&nbsp;&nbsp;&nbsp;task :name, :first\_name, :last\_name do |t, args|  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts "First name is #{args.first\_name}"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts "Last name is #{args.last\_name}"  
&nbsp;&nbsp;&nbsp;end

The first argument of the block "t" is always bound to the current  
task object. The second argument "args" is an open-struct like object  
that allows access to the task arguments. Extra command line  
arguments to a task are ignored. Missing command line arguments are  
given the nil value.

== 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 M. Lawrence/quix  
\* Luis Lavena  
\* Pivotal Labs  
\* Simon Chiang/bahuvrihi

-- Jim Weirich

> **···**
>
> --  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).

---

<div class="post-metadata">

**Author:** ![Aaron\_Patterson1](https://avatars.discourse-cdn.com/v4/letter/a/e0b2c6/32.png) [@Aaron\_Patterson1](https://rubytalk.org/u/Aaron_Patterson1)\
**Post date:** [4 March 2009 16:08 UTC](https://rubytalk.org/t/ann-rake-0-8-4-released/52106/2 "2009-03-04T16:08:15Z")

</div>

ZOMG!

> = Rake 0.8.4 Released
> 
> Rake version 0.8.4 is a bug-fix release of rake.

Thank you!!!! Internet high five!

&nbsp;&nbsp;[http://ihighfive.com/](http://ihighfive.com/)

> NOTE: The version of Rake that comes with Ruby 1.9 has diverged  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slightly from the core Rake code base. Rake 0.8.4 will work  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with Ruby 1.9, but is not a strict upgrade for the Rake that  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comes with Ruby 1.9. A (near) future release of Rake will unify  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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  
> [http://tenderlovemaking.com/2009/02/26/we-need-a-new-version-of-rake/](http://tenderlovemaking.com/2009/02/26/we-need-a-new-version-of-rake/)  
> for details)
> 
> == Changes
> 
> === New Features / Enhancements in Version 0.8.4
> 
> \* Case is preserved on rakefile names. (patch from James  
> &nbsp;&nbsp;M. Lawrence/quix)
> 
> \* Improved Rakefile case insensitivity testing (patch from Luis  
> &nbsp;&nbsp;Lavena).
> 
> \* Windows system dir search order is now: HOME, HOMEDRIVE + HOMEPATH,  
> &nbsp;&nbsp;APPDATA, USERPROFILE (patch from Luis Lavena)
> 
> \* MingGW is now recognized as a windows platform. (patch from Luis  
> &nbsp;&nbsp;Lavena)
> 
> === Bug Fixes in Version 0.8.4
> 
> \* Removed reference to manage\_gem to fix the warning produced by the  
> &nbsp;&nbsp;gem package task.

Thank you so much! You get one hug from me!

> **···**
>
> On Wed, Mar 04, 2009 at 10:43:43PM +0900, Jim Weirich wrote:
> 
> --  
> Aaron Patterson  
> [http://tenderlovemaking.com/](http://tenderlovemaking.com/)

---

<div class="post-metadata">

**Author:** ![Rick\_DeNatale1](https://avatars.discourse-cdn.com/v4/letter/r/bbce88/32.png) [@Rick\_DeNatale1](https://rubytalk.org/u/Rick_DeNatale1)\
**Post date:** [4 March 2009 17:11 UTC](https://rubytalk.org/t/ann-rake-0-8-4-released/52106/3 "2009-03-04T17:11:09Z")

</div>

We knew you could do it Jim! \<G\>

> **···**
>
> On Wed, Mar 4, 2009 at 8:43 AM, Jim Weirich \<jim@weirichhouse.org\> wrote:
> 
> > = Rake 0.8.4 Released
> > 
> > Rake version 0.8.4 is a bug-fix release of rake.
> 
> --  
> Rick DeNatale
> 
> Blog: [http://talklikeaduck.denhaven2.com/](http://talklikeaduck.denhaven2.com/)  
> Twitter: [http://twitter.com/RickDeNatale](http://twitter.com/RickDeNatale)  
> WWR: [http://www.workingwithrails.com/person/9021-rick-denatale](http://www.workingwithrails.com/person/9021-rick-denatale)  
> LinkedIn: [http://www.linkedin.com/in/rickdenatale](http://www.linkedin.com/in/rickdenatale)

---

<div class="post-metadata">

**Author:** ![Charles\_Oliver\_Nutte](https://avatars.discourse-cdn.com/v4/letter/c/71e660/32.png) [@Charles\_Oliver\_Nutte](https://rubytalk.org/u/Charles_Oliver_Nutte)\
**Post date:** [11 May 2009 06:05 UTC](https://rubytalk.org/t/ann-rake-0-8-4-released/52106/4 "2009-05-11T06:05:40Z")

</div>

Hey Jim...I just noticed Rake 0.8.5 got pushed out at some point recently, and it's trying to run rdoc -f darkfish during install. The problem is that darkfish is only in the rdoc \*gem\* I believe, so it produces an "Invalid formatter" error on installs that don't have that gem installed.

It should probably be modified to depend on rdoc gem or not use darkfish.

~/projects/jruby ➔ gem install rake  
Successfully installed rake-0.8.5  
1 gem installed  
Installing ri documentation for rake-0.8.5...

Invalid output formatter

For help on options, try 'rdoc --help'

... and the offending line in the gemspec:

&nbsp;&nbsp;&nbsp;s.rdoc\_options = ["--line-numbers", "--inline-source", "--main", "README", "--title", "Rake -- Ruby Make", "-SHN", "-f  
", "darkfish"]

- Charlie

Jim Weirich wrote:

> **···**
>
> > = Rake 0.8.4 Released
> > 
> > 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  
> > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slightly from the core Rake code base. Rake 0.8.4 will work  
> > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with Ruby 1.9, but is not a strict upgrade for the Rake that  
> > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comes with Ruby 1.9. A (near) future release of Rake will unify  
> > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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  
> > [http://tenderlovemaking.com/2009/02/26/we-need-a-new-version-of-rake/](http://tenderlovemaking.com/2009/02/26/we-need-a-new-version-of-rake/)  
> > for details)
> > 
> > == Changes
> > 
> > === New Features / Enhancements in Version 0.8.4
> > 
> > \* Case is preserved on rakefile names. (patch from James  
> > &nbsp;&nbsp;M. Lawrence/quix)
> > 
> > \* Improved Rakefile case insensitivity testing (patch from Luis  
> > &nbsp;&nbsp;Lavena).
> > 
> > \* Windows system dir search order is now: HOME, HOMEDRIVE + HOMEPATH,  
> > &nbsp;&nbsp;APPDATA, USERPROFILE (patch from Luis Lavena)
> > 
> > \* MingGW is now recognized as a windows platform. (patch from Luis  
> > &nbsp;&nbsp;Lavena)
> > 
> > === Bug Fixes in Version 0.8.4
> > 
> > \* Removed reference to manage\_gem to fix the warning produced by the  
> > &nbsp;&nbsp;gem package task.
> > 
> > \* Fixed stray ARGV option problem that was interfering with  
> > &nbsp;&nbsp;Test::Unit::Runner. (patch from Pivotal Labs)
> > 
> > === Infrastructure Improvements in Version 0.8.4
> > 
> > \* Numerous fixes to the windows test suite (patch from Luis Lavena).
> > 
> > \* Improved Rakefile case insensitivity testing (patch from Luis  
> > &nbsp;&nbsp;Lavena).
> > 
> > \* Better support for windows paths in the test task (patch from Simon  
> > &nbsp;&nbsp;Chiang/bahuvrihi)
> > 
> > == 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 ...
> > 
> > &nbsp;&nbsp;gem install rake (you may need root/admin privileges)
> > 
> > Otherwise, you can get it from the more traditional places:
> > 
> > Home Page:: [http://rake.rubyforge.org/](http://rake.rubyforge.org/)  
> > Download:: [http://rubyforge.org/project/showfiles.php?group\_id=50](http://rubyforge.org/project/showfiles.php?group_id=50)  
> > GitHub:: git://github.com/jimweirich/rake.git
> > 
> > == Task Argument Examples
> > 
> > Prior to version 0.8.0, rake was only able to handle command line  
> > arguments of the form NAME=VALUE that were passed into Rake via the  
> > ENV hash. Many folks had asked for some kind of simple command line  
> > arguments, perhaps using "--" to separate regular task names from  
> > argument values on the command line. The problem is that there was no  
> > easy way to associate positional arguments on the command line with  
> > different tasks. Suppose both tasks :a and :b expect a command line  
> > argument: does the first value go with :a? What if :b is run first?  
> > Should it then get the first command line argument.
> > 
> > Rake 0.8.0 solves this problem by explicitly passing values directly  
> > to the tasks that need them. For example, if I had a release task  
> > that required a version number, I could say:
> > 
> > &nbsp;&nbsp;&nbsp;rake release[0.8.4]
> > 
> > And the string "0.8.4" will be passed to the :release task. Multiple  
> > arguments can be passed by separating them with a comma, for example:
> > 
> > &nbsp;&nbsp;&nbsp;rake name[john,doe]
> > 
> > Just a few words of caution. The rake task name and its arguments  
> > need to be a single command line argument to rake. This generally  
> > means no spaces. If spaces are needed, then the entire rake +  
> > argument string should be quoted. Something like this:
> > 
> > &nbsp;&nbsp;&nbsp;rake "name[billy bob, smith]"
> > 
> > (Quoting rules vary between operating systems and shells, so make sure  
> > you consult the proper docs for your OS/shell).
> > 
> > === Tasks that Expect Parameters
> > 
> > Parameters are only given to tasks that are setup to expect them. In  
> > order to handle named parameters, the task declaration syntax for  
> > tasks has been extended slightly.
> > 
> > For example, a task that needs a first name and last name might be  
> > declared as:
> > 
> > &nbsp;&nbsp;&nbsp;task :name, :first\_name, :last\_name
> > 
> > The first argument is still the name of the task (:name in this case).  
> > The next to argumements are the names of the parameters expected by  
> > :name (:first\_name and :last\_name in the example).
> > 
> > To access the values of the paramters, the block defining the task  
> > behaviour can now accept a second parameter:
> > 
> > &nbsp;&nbsp;&nbsp;task :name, :first\_name, :last\_name do |t, args|  
> > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts "First name is #{args.first\_name}"  
> > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts "Last name is #{args.last\_name}"  
> > &nbsp;&nbsp;&nbsp;end
> > 
> > The first argument of the block "t" is always bound to the current  
> > task object. The second argument "args" is an open-struct like object  
> > that allows access to the task arguments. Extra command line  
> > arguments to a task are ignored. Missing command line arguments are  
> > given the nil value.
> > 
> > == 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 M. Lawrence/quix  
> > \* Luis Lavena  
> > \* Pivotal Labs  
> > \* Simon Chiang/bahuvrihi
> > 
> > -- Jim Weirich

---

<div class="post-metadata">

**Author:** ![Luis\_Lavena1](https://avatars.discourse-cdn.com/v4/letter/l/f08c70/32.png) [@Luis\_Lavena1](https://rubytalk.org/u/Luis_Lavena1)\
**Post date:** [11 May 2009 21:10 UTC](https://rubytalk.org/t/ann-rake-0-8-4-released/52106/5 "2009-05-11T21:10:02Z")

</div>

It got fixed in latest rake 0.8.6 just released.

> **···**
>
> On May 11, 3:05 am, Charles Oliver Nutter \<charles.nut...@sun.com\> wrote:
> 
> > Hey Jim...I just noticed Rake 0.8.5 got pushed out at some point  
> > recently, and it's trying to run rdoc -f darkfish during install. The  
> > problem is that darkfish is only in the rdoc \*gem\* I believe, so it  
> > produces an "Invalid formatter" error on installs that don't have that  
> > gem installed.
> 
> --  
> Luis Lavena
