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. 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). base classes declaration: https://gist.github.com/rbrady/ff86c484e8e6e53ba2dc3dfa17b01b09 base class usage: https://gist.github.com/rbrady/716a02fb2bd38d822c6df8bd642d3ea6 mixins declaration: https://gist.github.com/rbrady/d30ae640b19df658a17cd93827125678 mixins usage: https://gist.github.com/rbrady/248cb52d5c5f94854d8c76eee911ce8e Thanks, Ryan -- Ryan Brady Cloud Engineering rbrady at redhat.com 919.890.8925 [1] https://review.openstack.org/#/c/411412/ -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20170308/77362c52/attachment.html>