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
-- Juju mailing list Juju@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju