Going from a remote charm to a local fork of it...
Clint Byrum
clint at ubuntu.com
Wed Nov 30 22:40:29 UTC 2011
Excerpts from Kapil Thangavelu's message of Wed Nov 09 18:29:49 -0800 2011:
> Excerpts from Clint Byrum's message of Wed Nov 09 09:16:11 -0500 2011:
> > Since I expect we'll have the charm store soon enough, I wanted to start
> > thinking about how it might end up being used in production. One thing
> > that crossed my mind is how will people fork the remote charms?
> >
>
> The remote charm store client integration does cache the charm locally on the
> client (~/.juju/cache/downloads). We can add an explicit download-charm command
> to facilitate as well.
>
> Its not clear if the charms as bundled by the store would include the version
> control information. Even though the charms are packaged against a bzr repo, an
> explicit goal has to been allow for charm authors to utilize whatever version
> mechanism they are most comfortable with, and deferring to an upload command
> for bzr/lp/store integration.
>
> > If the mysql charm doesn't do something that I need, I'll need to fork
> > it before I can propose any change for the masses. So, do we support
> > that somehow?
>
> The goal is that they could push it back to the charm store, it will
> automatically be put up as a ppa style charm there. Right now pushing to the
> store is a manual process as described in the juju wiki charm page (effectively
> get it to lp under the right distro and series). Getting upload functionality
> integrated into the client should help this process.
>
> In terms of getting a meaningful merge proposal back to the distro charm, it
> would be nice if the download component could take a --fork/branch flag, which
> would branch the distro charm into a ppa at download, so the charm upload
> be a commit on top of the ppa branch, and would preserve vcs context for an lp
> merge request to the distro charm.
>
> >
> > Seems like once we've deployed.. we can only upgrade-charm from the
> > same place, since the namespace is kept along with the charm at that
> > point.
> >
>
> Its really a matter of taste, we could support it.
>
> Right now charm repository namespace support is limited to local or charm store,
> with further explicit division of the repo into series, and ppa|distro.
>
> The upgrade-charm implementation atm will only consider a newer version of the
> deployed charm matching its 'namespace:[ppa]series/charm'
>
Kapil, I know your reply was a long time ago, so I've left the whole
thing quoted.
The sentence above is a problem, we need a 'switch-charm' command.
The reason being, as a user of juju in production, I can't wait for
*charmers* to fix the charm. If I were using Ubuntu and I had an *urgent*
patch to mysql, I would follow this workflow:
apt-get source mysql
<fix the bug>
debuild binary
<push debs to my servers>
After that, if the fix worked, and I feel its useful for other users,
I *MIGHT* have time to send the fix back to Ubuntu.
With juju, we need something similar, if I have done:
juju deploy cs:mysql mydb
And then the mysql charm is *breaking* my environment, or doesn't have
some config option I need, I need to be able to do
juju download-charm --repository=localcharms mydb
<fix the bug in localcharms/mysql>
juju switch-charm --repository=localcharms mydb local:mydb
juju upgrade-charm --repository=localcharms mydb
Yes, we want that fix to be contributed back, but that is completely
secondary to juju being useful for lifecycle management of services.
> So upgrade switching between a ppa and the distro charm isn't supported atm.
> We can change the implementation but need to define the use cases.
>
> - upgrade a deployed distro charm to one from the ppa.
> - upgrade a deployed ppa charm to one from the distro.
> - upgrade a local charm to one from the store.
> - upgrade a store charm to a local one.
>
> One caveat, charm names are only loosely coupled across namespaces and may lack
> vc revision ancestry (ie. cs:~fewbar/oneiric/superdb may have nothing in common
> with cs:oneiric/superdb).
>
> cheers,
>
> Kapil
More information about the Juju
mailing list