<div dir="ltr">This might be a good time to mention there's a VCS Charm Helper: <a href="http://bazaar.launchpad.net/~charmers/charm-tools/trunk/view/head:/helpers/bash/vcs.bash">http://bazaar.launchpad.net/~charmers/charm-tools/trunk/view/head:/helpers/bash/vcs.bash</a> It's use can be seen in the WordPress charm: <a href="https://bazaar.launchpad.net/~charmers/charms/precise/wordpress/trunk/view/head:/inc/common#L129">https://bazaar.launchpad.net/~charmers/charms/precise/wordpress/trunk/view/head:/inc/common#L129</a> While it doesn't handle things like maintenance, branches, authentication, it's does alleviate the need of having a subordinate charm.<div>
<br></div><div style>Thanks,</div><div style>Marco Ceppi</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Mar 11, 2013 at 10:24 AM, Mark Ramm <span dir="ltr"><<a href="mailto:mark.ramm-christensen@canonical.com" target="_blank">mark.ramm-christensen@canonical.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 03/10/2013 02:06 PM, Patrick Hetu wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In the process of building the Django charm, I realized that a lot of charms are<br>
repeating the parts that handle VCS. Like:<br>
<br>
   <a href="http://bazaar.launchpad.net/~charmers/charms/precise/node-app/trunk/view/head:/hooks/install#L28" target="_blank">http://bazaar.launchpad.net/~<u></u>charmers/charms/precise/node-<u></u>app/trunk/view/head:/hooks/<u></u>install#L28</a><br>

   <a href="http://bazaar.launchpad.net/~charmers/charms/precise/rack/trunk/view/head:/hooks/install#L38" target="_blank">http://bazaar.launchpad.net/~<u></u>charmers/charms/precise/rack/<u></u>trunk/view/head:/hooks/<u></u>install#L38</a><br>

   <a href="http://bazaar.launchpad.net/~charmers/charms/precise/python-django/trunk/view/head:/hooks/install#L36" target="_blank">http://bazaar.launchpad.net/~<u></u>charmers/charms/precise/<u></u>python-django/trunk/view/head:<u></u>/hooks/install#L36</a><br>

<br>
There is also a blueprint here:<br>
<br>
   <a href="https://blueprints.launchpad.net/juju/+spec/juju-charm-app-git-deployment" target="_blank">https://blueprints.launchpad.<u></u>net/juju/+spec/juju-charm-app-<u></u>git-deployment</a><br>
<br>
So, I was thinking that we could create one subordinate charm per VCS to:<br>
<br>
1) Reduce the installation time<br>
2) Ease the maintenance<br>
3) Include more advance stuff like branches, authentification, etc<br>
<br>
What do you think?<br>
<br>
Patrick<br>
<br>
</blockquote></div>
It's also possible to add this to a standard library of charm tools, rather than do it in a subordinate.<br>
<br>
What advantages do you see in doing it as a subordinate?   Language independence is one, I'm sure there are others that I'm not seeing.   But I also think it makes the relationship between charms and subordinates significantly more complicated, since install of one service could actually *require* a subordiate, and we don't yet have any way of managing requirements, and I personally would like to avoid needing to do charm-dependency graph resolution if at all possible.<span class="HOEnZb"><font color="#888888"><br>

<br>
--Mark Ramm</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
-- <br>
Juju mailing list<br>
<a href="mailto:Juju@lists.ubuntu.com" target="_blank">Juju@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/juju" target="_blank">https://lists.ubuntu.com/<u></u>mailman/listinfo/juju</a><br>
</div></div></blockquote></div><br></div>