[Nitro] Ratchets releases: projectinfo, exacto, autorake

transfire at gmail.com transfire at gmail.com
Fri Feb 9 14:08:42 EST 2007


I've released three ratchets' project today.

This is the ProjectInfo class (which was born from reap) it's doesn't
do anything on it's own. It's a support library for providing
encapsulation of project information --it's quite extensive however,
and somewhat unique in functionality. Also it can load up from a YAML
configuration simply by


As long as your somewhere down in your project directory this will
find it and load it up. (FYI, for the moment you have to create
ProjectInfo files by hand. To make it easier just copy the one from
projectinfo itself and edit to suit your needs.)

This is a independent tool for extracting code from comments.
Presently is only support =begin {handle}...=end comments, though I
plan to make it more capable in the future. handle defaults to "test",
which makes it a cinch to run embedded tests. Use it like this:

  $ exacto myfile.rb | ruby

It also incudes a shortcut for the above called 'exrb'

  $ exrb myfile.rb

This is main part of rathcets i've been working on. i decided to scale
back a little and use rake as the task execution system (in the future
I may split out the internal Project class (as reap?) that does all
the work, but there sill some details to address with that). if you
used reap in the past then you essentially know how to use autorake
except it's more polished now. quick example:

  ~/ruby/autorake$ rake -T
  (in /file/trans/my/code/ruby/ratchets/src/autorake)
  AutoRake 0.4 beta
  rake announce   # Make a release announcement
  rake changelog  # Produce changelog (None)
  rake check      # Rundown checklist
  rake diff       # Verify the manifest
  rake install    # Local setup & install
  rake loads      # Test loadpath dependencies
  rake manifest   # Generate package manifest
  rake notes      # Compile developer notes
  rake pack       # Build all packages
  rake prepare    # Full preperations cycle
  rake publish    # Publish website (Rubyforge)
  rake rdocs      # Generate local rdocs
  rake release    # Release packages (Rubyforge)
  rake ridocs     # Generate local ri docs
  rake stats      # Code count analysis
  rake syntax     # Run syntax check
  rake test       # Run isolated unit test
  rake tests      # Extract embedded tests
  rake version    # Calculate version (None)

All you need is a ProjectInfo file in you project's root dir, and a
Rakefile that starts with:

   require 'autorake'

Couple of quick notes b/c I haven't done docs yet. The (None) you see
means there is no SCM being used. If I were using Darcs for the
AutoRake project it would say (Darcs) and could generate a version
stamp and a changelog automatically via 'darcs' (file names default to
VERSION and CHANGES). Subversion is not yet supported but that's next
on the todo list (would any would like to make the adapter? :-) rdocs
and ridocs, by default are stored in doc/rdoc and doc/ri,
respectively. notes generate TODO and FIXME files in doc/ as well. The
check task runs diff, syntax, loads and test, in that order; prepare
runs changelog, version, manifest and then pack. Currently I'm using
Rake's packaging system which is a little messy (IMHO) but it works
well enough. Also, at the moment, only Rubyforge publishing and
releasing is supported. On the todo list are generic versions of each.
The only other major things it doesn't yet support is clean/clobber.
This isn't a problem for pure ruby projects b/c internally  it uses an
"ignore" configuration parameter to only include the appropriate files
in the manifest and the package. but clean/clobber is on the todo

Being initial public releases of course there will arise some issue,
please let me know what you encounter so I can fix asap. Note these
have only been tested on Linux. Also, always good advice: be safe and
backup up your projects from time to time.


P.S. Facets is of course is required ;-)

More information about the Nitro-general mailing list