<div dir="ltr">At the PTG and previous discussions in IRC, I mentioned there were two different design ideas I had for the developer experience for custom action development in mistral-lib.  The purpose and intent behind the patch[1] was discussed in person at the PTG and that was helpful for me wrt to scope.  I feel it would be helpful to discuss and decide together the final piece of this patch.  I'd like to get any feedback on either of these two ideas as they will shape how developers integrate with Mistral in the future, impact our OpenStack integration efforts in mistral-extra.  Nothing stops a developer from adopting either style in their custom action libraries, but most will likely want to remain consistent with style present in the upstream code.<div><br></div><div>I have created separate declaration and usage examples in hopes of illustrating some of the similarities and differences.  To me it seems the base class example is more declarative/explicit, but the mixin example is more extensible and dry.  Both examples reflect on backwards compatibility and possible changes to how mistral checks for sync/async actions and how to pass the context (as needed by actions that integrate with OpenStack).<div><br clear="all"><div><br></div><div>base classes declaration: <a href="https://gist.github.com/rbrady/ff86c484e8e6e53ba2dc3dfa17b01b09">https://gist.github.com/rbrady/ff86c484e8e6e53ba2dc3dfa17b01b09</a></div><div><br></div><div>base class usage: <a href="https://gist.github.com/rbrady/716a02fb2bd38d822c6df8bd642d3ea6">https://gist.github.com/rbrady/716a02fb2bd38d822c6df8bd642d3ea6</a></div><div><br></div><div>mixins declaration: <a href="https://gist.github.com/rbrady/d30ae640b19df658a17cd93827125678">https://gist.github.com/rbrady/d30ae640b19df658a17cd93827125678</a></div><div><br></div><div>mixins usage: <a href="https://gist.github.com/rbrady/248cb52d5c5f94854d8c76eee911ce8e">https://gist.github.com/rbrady/248cb52d5c5f94854d8c76eee911ce8e</a></div><div><br></div><div><br></div><div>Thanks,</div><div><br></div><div>Ryan</div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Ryan Brady<div>Cloud Engineering</div><div><a href="mailto:rbrady@redhat.com" target="_blank">rbrady@redhat.com</a> </div><div>919.890.8925</div><div><br></div><div><br></div><div>[1] <a href="https://review.openstack.org/#/c/411412/">https://review.openstack.org/#/c/411412/</a><br></div></div></div>
</div></div></div>