From: Charles Oliver Nutter Date: 2009-05-11T15:05:40+09:00 Subject: Re: ANN: Rake 0.8.4 Released 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: 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 > 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 > 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 > M. Lawrence/quix) > > * Improved Rakefile case insensitivity testing (patch from Luis > Lavena). > > * 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 > > * Removed reference to manage_gem to fix the warning produced by the > gem package task. > > * 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