As some of you may know, 2U (formerly edX) is adopting Tutor as a development environment to replace the Devstack. It is expected that Devstack will no longer be supported in Poplar (June 2023). Here is the deprecation announcement: [DEPR] Devstack · Issue #907 · openedx/devstack · GitHub
As a consequence, tCRIL engineer @kdmccormick as had a hard look at Tutor to figure out what changes need to be made to facilitate adoption within 2U. His investigation has resulted in a series of comments, critiques, and suggestions for improvements that are listed in the 2u-tutor-adoption project: Issues · overhangio/2u-tutor-adoption · GitHub
We agreed that the current plugin API (“v0”) was not sufficient to address these issues and that new extension points were needed. To be frank, I knew that this day would come, eventually, and that the v0 API was too limited and clunky for power users. So I’m very grateful to tCRIL and Kyle that they are providing both the funding and the insights to improve Tutor.
Long story short, we set out to implement a generic plugin extension mechanism in Tutor. I initallly believed it would be done in a matter of days, but it morphed into a 60+ hours refactoring of the entire code base. The result of this refactoring is can be seen in this pull request, which is now open for comments: Plugins v1 by regisb · Pull Request #599 · overhangio/tutor · GitHub In particular, I’d be most interested in feedback from @maintainers.
I’ll be glad to answer questions here, but please first have a look at the PR description and FAQ (see link above).
I’m really excited by this change, as it’s a big step towards transforming Tutor into a multi-purpose tool, to deploy not just Open edX but other software as well…
EDIT: not an April’s fool. Also, moving this into a TEP.