Using blockstore with tutor?


Is there a plugin or some documentation on how to use blockstore with tutor?

Can anyone give us any thoughts on how this should be done?

I am interested in this too, and I wonder if @arbrandes might be able to share if OpenCraft have made some headway towards deploying Blockstore with Tutor?


@fghaas, no, not yet. And now that Blockstore is being converted into an edx-platform plugin app, I doubt we will. The aforementioned PR should merge in time for Maple, which would’ve otherwise been the primary motivation (for Opencraft) to work on a separate Tutor plugin.


That are excellent news @arbrandes :grinning::+1:

If you don’t mind the question, how realistic is that timetable? I notice that this effort has apparently been underway for more than a year, judging by when this ADR was drafted and merged:

And the implementation currently looks somewhat stalled (?) since April:

So considering that

  • we will probably have Tutor as the only supported/recommended community deployment method by Maple;
  • this rules out deploying Blockstore as a standalone service in Maple, like we would be able to do with the edx-configuration Ansible playbooks and roles (because those will no longer be supported);
  • by the looks of it I’d say it’s at least not 100% certain that Blockstore will be merged back into the LMS and Studio, and be fully ready for production use, in time for that release (I do suppose there will be glitches and kinks to be ironed out);
  • the Lilac release notes also state that the current LMS is to be replaced by the Learning MFE by Maple, which will probably (?) also need some work for Blockstore integration;
  • the library authoring MFE is also still pending completion,

is it fair to say that all things considered, Blockstore is currently somewhat unlikely to land in Maple in a generally consumable fashion?


Yes, I know the implementation looks stalled - or rather, it is stalled. But I was able to extract a promise from the developer that it would, indeed, be done in time to make the Maple cut.

As for it being “fully ready for production use” in time, suffice it to say that the day it is deployed to - which shortly follows merging to master - will be the day its biggest user, LabXchange, will be using it in production. Which is to say, the window between merging and production-ready will be short.

As for the learning MFE, that development is, AFAIK, completely independent from blockstore and Libraries v2. THAT integration is still relatively far in the future.

And for the library authoring MFE: edX is picking up work on that in August. Yes, it’s still unknown whether it will be done in time for Maple, but given estimates I just sent them it is technically feasible.

It is a distinct possibility, yes. Maybe even probable. But as it stands, the plan is the exact opposite: for it to be usable via Libraries v2 in Maple. Whether it will actually come about is still too early to call.

1 Like

I meant “production-ready” in the sense of “functional and automatically deployable”. And given the sole preferred automatic deployment method in the future will be Tutor, and edx-platform-with-blockstore-plugin deployment with Tutor will likely require a Tutor plugin that’s still pending development (I think?), there would at least be some gap between the blockstore plugin landing in edx-platform, and it actually being usable for organizations that are not edX (2U?) or Harvard, would there not?

Hmmm… so how will authors be able to use library v2 content in courses then? (Considering that the old LMS is also going away, so I reckon nobody will be working on getting library v2 content into that.)

Will the learning MFE support content libraries v1, instead?

1 Like

A big advantage to bringing Blockstore into edx-platform (via requirements.txt, in all likelihood) is to make it immediately deployable by whatever existing Open edX deployment method that can handle migrations, without the need for any additional plugin.

But as you point out, Blockstore itself (as app or independently deployed) will not be useful without a fully-fleshed out Library Authoring MFE. And the latter is the element at most risk of missing Maple, being that it depends several things (edX giving the go-ahead in time, Opencraft’s ability to develop it to edX’s satisfaction in time, etc). In comparison, blockstore-as-app is the easy part.

The point is that, at least for now, Opencraft would rather spend time trying to get both blockstore-as-app and the authoring MFE ready for Maple than on a Tutor blockstore plugin. Because if either of the former don’t come about, we’ll have a release gap.

They’ll use the “source from library” XBlock or whatever replaces it during the upcoming Libraries v2 development effort. (Yes, a fancy authoring interface would be useless if one couldn’t actually use the content.)

I’m not familiar with the learning MFE timeline, but if I were to guess, I’d say the old LMS interface will still be supported during Maple, possibly only marked as deprecated. You seem to assume otherwise, which may very well be the case, but I haven’t heard anything confirming either hypothesis.


I happen to have my assumption from the Lilac release notes:

The Learning MFE is not enabled by default, because theming and internationalizations support is incomplete. However, we expect that this is the last named release to support the Legacy courseware frontend.

So yes, we’re all speculating here, but I think that remark might have been added to the release notes for a reason? :slight_smile:

1 Like

Indeed. :slight_smile: We tried to get some insight into this situation today during the BTR group’s meetup. Long story short, we expect the legacy LMS learning UI to be deprecated for Maple and to continue to be supported for its duration, but it is very likely it will be removed for Nutmeg. We also expect the learning MFE to be the default experience already in Maple.

In any case, I find it unlikely that the source from library block won’t work with both the legacy UI and the learning MFE. What’s there already works with legacy, and AFAIK it’s a well-behaved block that is not overly tied to frontend code - if other blocks work normally with the learning MFE, this one should, too.

Why is this so? Isn’t blockstore being used right now at My belief is that if blockstore is installed with openedx, then the authoring api will use it?

Thank you for taking the time to answer all these questions, really appreciate it.

Just cutting in here because I believe I can answer these questions and I suppose Adolfo might still be asleep. :slight_smile:

No, it is not. It was originally built for Harvard LabXchange and there may be other, smaller users — but to the best of my knowledge it’s currently not used on in a production capacity.

That’s incorrect, for the time being.

You may find this thread I recently started on the Open edX Discourse helpful (and also the YouTube talk it links to):