"svn externals/git submodules/ bzr XXX" in charms (was Re: Juju feedback from the Launchpad Yellow Squad)

Gary Poster gary.poster at canonical.com
Wed Feb 15 19:38:06 UTC 2012

Thank you for the positive feedback to our feedback. :-)

I had a quick note on one reply:

On 02/15/12 14:09, Mark Mims wrote:
> On 02/15/2012 11:30 AM, Graham Binns wrote:
>> * Juju should have a way to share code across Charms, like helpers.
>> bzr does not provide something like svn-external, unfortunately, so
>> this might need to be a build step of some sort. We've got around
>> this by using symlinks during development, but that's no good for
>> production usage.
> We're currently trying to collect such helpers into packages like
> charm-helpers-$language.
> They're in a ppa:charmers/charm-helpers built from lp:charm-tools. We
> definitely need to make this more visible in docs/faqs as you mention
> above. We've been sort of letting best-practices for charming grow
> organically to date, but it's time to cut some clear decisions and
> recommendations for this before the precise release.

That's great, yes.

That said, there are still other use cases for svn-external type sharing 
with charms.  Here are a few.

- In general, when you are developing charms, it's nicer to have a 
lighter-weight mechanism than a deb, as you figure out what you want. 
Keeping two copies of the file in sync by mutual agreement failed for us.

- This might be particularly the case if you are simultaneously 
developing charms that handshake, as we were.  You'll notice 
abstractions, and want to pull them out as you are working.

- If you are developing charms that handshake or that even simply work 
in similar domains, you might want to have code that is shared but that 
is not appropriate for promoting beyond a certain scope.  IOW, the 
shared code really is not generic to all charms, but only to a few 
charms.  A case in point is that, in addition to our "helpers.py," which 
we consider generic to charms, we also have local.py, which has code 
shared between buildbot slave and buildbot master but that is not 
interesting beyond that scope.



More information about the Juju mailing list