← Back to team overview

launchpad-dev team mailing list archive

Re: script_commands library

 

Hi,

On Mon, Aug 8, 2011 at 5:27 PM, Aaron Bentley <aaron@xxxxxxxxxxxxx> wrote:
> On 11-08-08 10:38 AM, Jamu Kakar wrote:
>> This sounds a lot like a library I wrote some time ago called
>> Commandant.  It's a wrapper around bzrlib that let's you easily write
>> applications with a Bazaar-like user experience.
>
> It's not surprising, since I've done so much hacking on bzr.  But I've
> long thought that the command classes of bzrlib were somewhat redundant,
> since they only exist to house the "run" method.  I think that functions
> are a better match for subcommands.  Unlike bzrlib, script_commands
> doesn't require declaring options or their types.  It's just less friction.

I agree.  I've often wondered about building something simpler from
scratch.  At the time I implemented Commandant it was much
easier/faster for me to build on bzrlib than start from scratch.  I
was also curious about learning more about bzrlib, which I did.  I was
also interested in being able to expose the ability for people to
write plugins for Commandant-based applications, but I've never
actually needed it, and so haven't done anything about it.

>> It might be
>> interesting if you want to go further and add topics, run shell
>> scripts, etc.:
>
> I've no doubt Commandant provides a more polished user experience.  I
> didn't think that was important for utility scripts, but maybe it is.
> Perhaps we should consider using it for our scripts.  Certainly,
> anything that helps us avoid writing the same old boilerplate for our
> utility scripts is a win.

The Landscape team has a tool called landscape-devel that builds on
Commandant and exposes many commands that are useful during
development.  At Fluidinfo we have a similar thing that is more
focused on operations, and it also works very well.

Whether or not you use Commandant, I do think that having nice tools
for development and operations-related activities is important.  In
general, software teams tend do a poor job with these kind of tools
because we don't plan enough time for them and they get pushed to the
bottom of the priority list pretty fast.

Thanks,
J.


References