Current state of Content Libraries v2 (with Blockstore) and frontend-app-library-authoring

Hi everyone,

So this is somewhat related to this post:

… but I figure it probably warrants a separate topic/thread. :slight_smile:

In the aforementioned talk, @braden briefly mentions (near the very end, link with timestamp: https://youtu.be/DARBuFcEb8w?t=1569) the frontend-app-library-authoring MFE which would help course authors build Blockstore-based v2 content libraries. (To the best of my knowledge that is the only such MFE within Open edX; I do understand LabXchange uses something different to build libraries — if there are any other development efforts around v2 library authoring, do let me know!)

So, my question is: what’s the current state, and the agreed way forward for that MFE, and for v2 content libraries in general?

Looking at the commit history that repo hasn’t seen updates in a few months — which, I speculate, might be somewhat related to @arbrandes possibly having his hands uber-full with the BTR and community bits. :slight_smile:

So, I figured I’d ask here: will work on that MFE be picked up again for a potential inclusion in Maple? Is there an alternate approach being discussed for v2 content libraries? Has the future of Blockstore changed?

Looking forward to your thoughts — thanks in advance!

Cheers,
Florian

2 Likes

You got the gist, but in reality it was the other way around: I found time to get involved with the release group because work on Libraries v2 paused. :slight_smile:

The short answer is yes, work on frontend-app-library-authoring will pick back up in the coming weeks, targetting inclusion in Maple. Like before, it’s work that edX will fund and Opencraft will execute.

In addition, some closely related work is already in progress and being funded by MIT: integrating LTI 1.3 with content libraries. Its authoring experience is supposed to be via the library authoring MFE.

Which is to say, the plans for blockstore haven’t changed since last year - they had just been pushed back.

1 Like

Fair. :slight_smile:

Roger that, thank you!

1 Like

Hi everyone,

I’m taking the liberty to follow up on this thread, now that open-release/maple.master has been branched and we’re thus coming closer to a Maple release.

As far as I’ve been following, there’s a couple of things that have been happening on this front recently, and I’d like to know if my understanding is correct here.

Is that understanding correct, so far? If so, I’d be interested in getting answers on the following questions:

  1. Right now we’re a bit stuck between a rock and a hard place: we can run Blockstore as a separate service with edx-configuration, but that’s going away, and we have no way (that I know of) to run it in Tutor. We would be able to run it in Tutor if it was no longer a separate service, but now that the Maple release branch has already been cut in Blockstore, I’m not sure if such a major change can still land between now and the release. What’s the current (updated?) plan for the Open edX community to run Blockstore and Libraries v2 in a “supported” fashion in production for Maple? Or else, has this been postponed to Nutmeg?

  2. I am assuming — correct me if I’m wrong, please — that since v1 library content simply gets duplicated in courses, the aforementioned import facility can also be used to import library v1 content, albeit only if presently included in a course.

  • Is there a way to import content directly from v1 to v2 libraries without having to include it in a course?
  • If there is none, then how exactly is the course-to-v2-library import expected to behave if the library v1 content is presently included in a course via a randomized content block?

Thanks in advance!

I’m still curious about this. :slight_smile: @braden, would you perhaps be able to chime in here?

Hey Florian! I’m no longer the lead on this project on OpenCraft’s side (@jvdm is), but let me step in with what I know.

Yup, that’s pretty much the gist of it for non-LTI users. (If you do use LTI, though, you can now export blocks in Content Libraries individually.)

Excellent question. I was fervently hoping that blockstore-as-app would land for Maple, but it didn’t. (It is also indeed unlikely to be pulled in at this point, even if it lands in master tomorrow.) I was also hoping that BD-14 would have progressed enough to make it usable in Maple, but it was only just restarted. Because of these, the fact of the matter is that official, supported deployment of either Blockstore and/or Libraries v2 will only happen by Nutmeg.

That said, MIT paid for the aforementioned LTI/Blockstore/Libraries v2 development and intends to use it in Maple in production. I’m slated to meet with @pdpinch about this very topic this week. Would you like an invite as well? @Maksim_Sokolskiy has also expressed an interested in joining. Note, though, that MIT does not use edx/configuration or Tutor - what you’d get out of this meeting is likely a common expectation for handling the migration of the data once Blockstore becomes a proper Open edX app.

Not at the moment.

The short answer is that the behavior is undefined. We designed and tested the import tool for MIT around its relatively large academic courses (2000+ blocks), but the block types were limited in variety. Essentially, it’ll work fine with HTML, Problem, and Video blocks (even including Mathjax, PDFs, and SVGs), but with anything else - including randomized content - YMMV.

There is a further issue, though. Even if the import works flawlessly, there’s no guarantee that the content will be rendered properly. And that depends on where and how you’re using it. Via LTI, for instance, the block will be rendered in a iframe using this wrapping code. It does its best to replicate Studio and LMS frontend behavior in a self-contained fashion, but it falls down on some known situations (such as rendering the author_view correctly on some blocks). You might have better luck with the source from library block, though.

If you get as far as testing any of this, though, please do report your findings. There might be simple tweaks we can contribute that make your use case work better (or at all).

All right, thanks Adolfo! So to summarize, the answer to the question I put at the very end of this post back in July, is “yes”. :smiley: Fair point?

My schedule this week is unfortunately extremely full, and to be perfectly honest if this isn’t landing in Maple anyway, then it moves down on our priority list by several notches — we’ve got plenty of issues to resolve with the edx-configuration→Tutor transition for Maple as-is. So assuming the last word is still that Blockstore as a separate service will never be Tutor-deployable, we won’t be revisiting this issue before the Maple release is done, and the blockstore-as-app effort has landed in master (and Nutmeg).

So I’m not sure how much sense it makes for us to join this week’s meeting since we won’t be able to contribute anything until we’ve got our own Tutor transition on the books. Hence, as much as I appreciate the offer, I’m somewhat inclined to politely decline. Does that sound reasonable to you?

Completely fair. :slight_smile:

Of course, no worries!

Sounds good. Thanks for the comprehensive update!