Recently, I wrote about using RSpec and autotest (âŚwhich I think
should be called autospec) together to help boost productivity while
working on Rails projects. It seems that a few members of the PLANET
ARGON team have picked up on using it,
which Iâm happy to hear about. :-)
Itâs not the only thing that Iâm happy about though.
I recently came across another gem. Several of my comrades in
#caboose are using
piston to manage external
plugins for Ruby on Rails. Wait! Isnât
this what Subversion externals is meant
for? Well, yes⌠but externals also eat away at productivity. For
example, each day, we may have anywhere from 4-6 designers and
developers working on one client project. When weâre in crunch mode,
this could account for quite a few subversion commits throughout the
day. We all know that we should run svn up on a regular basis to make
sure that weâre keeping things in sync⌠especially when designers and
developers are working really closely and fine tuning something specific
in the application. Well, the one downside to this process is that each
svn up not only checks our repository, but it also checks external
repositories.
âBut wait! Canât you just ignore externals on an update?â
Of course, but who wants to type out âignore-externals each time they
run an update? âŚor perhaps you could make an alias for this in your
shell. In any event, everyone on the team is then left to be responsible
for doing this⌠and an extra 30-60 seconds (if not longer) per svn
update times x number of people on project⌠well⌠time wasted if
youâre closely watching the svn updates. Also, TextMate doesnât have an
option currently (that I could find) to ignore externals, so for those
who manage subversion through it⌠theyâre waiting on externals within
their primary workspace.
Another issue with svn externals is that when a repository goes down, it
really starts to slow stuff down your updates. This is always fun when
you go to deploy your application with Capistrano and realize that you
canât finish the update because it canât connect it to
http://svn.lazyatom.com/public/plugins/acts_as_hasselhoff/ to make
sure that your application has the latest version of the best plugins
available for
Rails.
{width=â240â
height=â160â}
Then there is the whole issue of wanting to make changes to the plugin
that youâre including as an external. How does that fit into the whole
mix?
There is Hope!
Piston encourages you to keep your external plugins in your local
repository. Donât worry, it remembers where it retrieved the code from
so that you can update from the external repository at any time.
Installing Piston
Again, this is really simple like most gems.