Skip to content

Commit

Permalink
bump to 0.8.3.2 -- 0.8.4 release docs, and CHANGES
Browse files Browse the repository at this point in the history
  • Loading branch information
jimweirich committed Nov 1, 2008
1 parent 6cca7de commit 5de9f34
Show file tree
Hide file tree
Showing 3 changed files with 129 additions and 1 deletion.
3 changes: 3 additions & 0 deletions CHANGES
Expand Up @@ -20,6 +20,9 @@
* Improved Rakefile case insensitivity testing (patch from Luis
Lavena).

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

== Version 0.8.3

* Enhanced the system directory detection in windows. We now check
Expand Down
125 changes: 125 additions & 0 deletions doc/release_notes/rake-0.8.4.rdoc
@@ -0,0 +1,125 @@
= Rake 0.8.4 Released

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

== Changes

=== New Features / Enhancements in Version 0.8.4

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

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

=== Bug Fixes in Version 0.8.4

* Fixed stray ARGV option problem that was interfering with
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
Lavena).

* Better support for windows paths in the test task (patch from Simon
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 ...

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/
Download:: 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:

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:

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:

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:

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:

task :name, :first_name, :last_name do |t, args|
puts "First name is #{args.first_name}"
puts "Last name is #{args.last_name}"
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
2 changes: 1 addition & 1 deletion lib/rake.rb
Expand Up @@ -29,7 +29,7 @@
# as a library via a require statement, but it can be distributed
# independently as an application.

RAKEVERSION = '0.8.3.1'
RAKEVERSION = '0.8.3.2'

require 'rbconfig'
require 'fileutils'
Expand Down

0 comments on commit 5de9f34

Please sign in to comment.