charms.reactive bi-weekly catch-up

Cory Johns cory.johns at canonical.com
Tue Apr 25 14:37:08 UTC 2017


Greeting,

Alex Kavanagh, Merlijn Sebrechts, Tim Van Steenburgh, and myself met for
the regular charms.reactive development discussions.

We discussed Merlijn's addition to the 2.0 discussion PR [1], "The case for
triggers; the apt layer" [2].  We had discussed this idea some before, but
I think we are coming around to an agreement on the need for this and what
the API should look like.

This transitioned into discussing the idea that certain flags should be
managed by the framework and "reserved," such that they are never modified
directly by any given layer, and that triggers should be used to create
per-layer "copies" of these flags that the layer would then be safe in
using as needed.  Reserved flags would include things like the current
config.changed flags, as well as interface / relation flags so that we
could do away with @hook usage in interface layers (which would have the
nice benefit of enabling an upgrade path from non-reactive to reactive
charms).

Another aspect of that idea is that we should formalize the notion that
handlers react to *changes* in flags, rather than the flags themselves, and
the "changed" state of flags should not be tied to hook invocations and
persist until an actual, meaningful change happens to that flag.  This
would remove the surprising current behavior that handlers are reinvoked
repeatedly as long as their conditions match, simply because a hook
triggered even if it didn't represent anything meaningful to the particular
handler.

Finally, we started outlining the creation of a Juju plugin which would aid
debugging of reactive charms, providing functionality such as an easy way
to inspect the flags that are set and when they were last changed, what the
history of handler invocation was, etc.

Given the recent shake-ups at Canonical, there is some uncertainty about
specific timelines, but we set ourselves a deadline of two months hence for
the trigger feature, with some other work being done in parallel.


[1]: https://github.com/juju-solutions/charms.reactive/pull/101
[2]:
https://github.com/juju-solutions/charms.reactive/blob/2.0/2.0-proposal/the-case-for-triggers.md
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/juju/attachments/20170425/8a586117/attachment.html>


More information about the Juju mailing list