HomeRumblingsSoftwareTravelingArchivesAbout
May 2007 Archives

Automation angels: Hoe

Launching patir has been a very enjoyable experience from a project management perspective.
Apart from the fact that Rubyforge has a cracking team of admins (Tom Copeland must be given a medal!) that responds with lightning speed and always friendly, there are all those little tools provided by the Ruby community that make working with Rubyforge a breeze.
Hoe is one of those tools. It makes packaging, releasing and announcing your releases really easy.
You can get a crash intro into using Hoe from Jacob Harris’ presentation

There are a few things though that one should have in mind and that are not covered (or are not that clear) in the Hoe documentation or Jacob’s talk:
Hoe is added as a dependency to the gem you create.
The reason behind this is that once you install the gem you can run the unit tests with gem check -t your_gem.
You can remove this dependency with:
hoe.spec.dependencies.delete_if { |dep| dep.name == "hoe" }
(courtesy of Christian Neukirchen).

rutema’s Hoe spec also shows how to add extra dependencies and other Gem specification elements (the extra_deps and spec_extras lines):

 Hoe.new('rutema', "#{Rutema::VERSION_MAJOR}.#{Rutema::VERSION_MINOR}") do |p|
	 p.rubyforge_name = 'patir'
	 p.summary = 'rutema is a test execution and management framework for heterogeneous testing environments'
	 p.description = p.paragraphs_of('README.txt', 1..5).join("\n\n")
	 p.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[1..-1]
	 p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
	 p.extra_deps << ['patir'," > =0.3"]
	 p.extra_deps << ['highline'] 
	 p.extra_deps << ['mailfactory']
	 p.spec_extras={:executables=>["rutemax"],
	 :default_executable=>"rutemax"}
 end

Hoe does make your life easier.
Just check how fast rutema’s 0.2 bugfix release was released after the initial 0.1 release (for the lazy among you: find bug, fix bug, update documentation, release – all in one hour and fortyfive minutes)

Posted by Vassilis Rizopoulos on May 21, 2007

Project Automation Tools in Ruby

I guess I should write something about the project that has taken up most of my free time in the last three months.

patir is the result of the experience collected in the past 2 years working in a couple of embedded software projects.
It’s a new implementation of ideas I have already used in those projects plus new tools that time, budget or simply project requirements did not allow me to implement.

The ideas behind this project have proven very valuable (look at On test automation and management, part I for the basis used in one of the patir subprojects) and hopefully patir will help carry them forward.
Check the site patir.rubyforge.org for more!

Continue Reading…

Posted by Vassilis Rizopoulos on May 21, 2007