TEP: Call for reviews: Tutor plugin v1 API

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.

5 Likes

I did not receive much feedback on this proposal so far. Does this mean that everyone is in agreement? @fghaas did you want to discuss the implementation? We can schedule another synchronous meeting if you’d like.

I haven’t had time to have a look at it yet.

Do you have a deadline in mind for when you want to merge the PR?

I’d like to merge it in Maple this week.

No need, really. I have no objections at all to the fact that a v1 API is being developed and I trust you and Kyle and others to come up with a good approach. :slight_smile: Like I said in the PR discussion, my only concern is really about the timing, and the additional burden that might be put on Tutor users and/or plugin developers if a new plugin API is adopted right now.