<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Mar 8, 2016 at 9:19 AM, Simon Davy <span dir="ltr"><<a href="mailto:simon.davy@canonical.com" target="_blank">simon.davy@canonical.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">1) Is there a roadmap for reactive? A target for a stable 1.0 release,<br>
or similar? We'd ideally like a stable base to build from before<br>
committing to use a new framework, having been (re)writing/maintaining<br>
charms for 4+ years now :)<br></blockquote><div><br></div><div>The layered & reactive approach saw adoption more quickly than I expected, which is both great and unfortunate for working out the kinks.  That said, the core concepts of both aspects of this approach have been fairly stable, with additions rather than breakages.  There is a 2.0 release of charm-tools coming, to coincide with Juju 2.0, but again, the build process should be backwards compatible.  There are some issues with charms.reactive that may require incompatible changes to fix, but that would be for 2.0 and the semantic version range that the base layer uses gives us flexibility there, though that leads in to your next point.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">2) Layer pinning. Right now, layers are evolving fast, and the lack of<br>
pinning to layer versions has caused charm builds to break from day to<br>
day. Is this a planned feature?<br></blockquote><div><br></div><div>There has been quite a bit of discussion about this and I don't think either side has swayed the other.  On the one hand, as you note, there is a valid argument for needing to avoid breakage and in these early days, layers are evolving quickly.</div><div><br></div><div>On the other hand, we want to strongly encourage charm authors to always sync the layers and interfaces they use to take advantage of the improvements and fixes from upstream, lest charms end up stagnating.  And that means encouraging backward-compatibility in the layers.  To that end, it has been suggested that layers be handled like interface protocols in that, if you need to make an incompatible change, you can fork the layer with a different name and both can coexist until one supplants the other.</div><div><br></div><div>Additionally, as Stuart pointed out with tongue-in-cheek, the local repo can serve that purpose, and with charm-tools 2.0 that will become easier with the pull-source command (<a href="https://github.com/juju/charm-tools/pull/125">https://github.com/juju/charm-tools/pull/125</a>).</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">3) Downloading from the internet. This issue has been common in<br>
charmstore charms, and is discouraged, AIUI. But the same issue<br>applies for layers, and possibly with more effect, due to a layer's<br>
composibility.  We simply can not utilise any layer that downloads<br>
things from github or similar, and I'm sure others are in a similar<br>
situation. </blockquote><div><br></div><div>Again, as Stuart mentioned, this is actually *better* with layers than it has been in the past, because layers encourage charm dependencies to be bundled in the charm's wheelhouse, and layers can provide more consistent adoption of best practices (it only needs to be done right once, instead of every time).</div><div><br></div><div>(Note, though, that's there's an open issue with regards to some few Python modules and network-restricted deployments: <a href="https://github.com/juju/charm-tools/issues/117">https://github.com/juju/charm-tools/issues/117</a>)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">We're aware of resources, but not convinced this is a<br>
scalable solution for layers, as it makes using a charm that has<br>
layers that require resources much more complex. So, some clarity in<br>
this area would be helpful.<br></blockquote><div><br></div><div>I can't say that I understand why you think resources and layers would make things more complicated.  They seem like they will work well together and would solve the other half of charms in network-restricted environments quite nicely.</div></div></div></div>