...
Replace legacy Studio Content Library UI with performant, modern React-based MFEs.
Maintain continuity of Content Library feature offerings and experience.
Introduce the ability to statically reference library content in courses.
Move current content libraries data from course-oriented Modulestore to block-oriented Blockstore.
...
We want to maintain continuity of Studio feature offerings and experience. The existing breadth, flexibility, and reliability of Studio is a draw for content authors. We will have to implement a few frontend features (like xblock editing in V2 libraries) to do so. We are hoping to perform a seamless conversion of content. To do so, we will craft runbooks and exercise them in increasingly complex environments.
To prioritize release of the high-value static content reference feature, we will implement parity for the following features after the initial release:
Import and export of Blockstore-backed content libraries.
Text templates in the library-authoring experience.
Filtering content library problems by type when referencing them in courses.
Get Ready to slash-n-burn!
This project will deprecate a number of features and areas of code. The first is Blockstore’s capability to run as a separate service. The second, and largest task, will be to enable the removal of all of the V1 content libraries code.
In addition, we will be removing the library_source block, an initial attempt to add specific library reference. Instead, we will be offering one library block, the library content block, which will allow for both randomized and specific content.
Design Diagram
...
This is a high level diagram of the feature implementation. Note that Library content is consumed in courses by xblocks, which contain a reference to that library content in their metadata. Learning contexts can then use that reference to “pull” in the required content from the library. Someday, courses might also store their metadata and content in a fashion similar to blockstore, as it is more performant. It is more performant because V2 xblocks better differentiate their content from metadata, and therefore can operate more efficiently. In addition, S3 provides an elegant solution for object storage, which opens the door for better static asset management and flexibility in learning context structure.
...
T&L is splitting this work into two streams, since parallelization is possible. Dave Ormsbee and Kyle McCormick from Axim will also contribute to the project with code and reviews, focusing mostly on the backend work. Braden MacDonald from openCraft will also contribute to the project with technical/domain guidance.
Milestone 1: | What is left to operationalize course-authoring repo and MFE? |
Milestone 2a: | Switch the site to use plugin |
Milestone 3a: | Ingress & Egress |
Milestone 3b: | Library export package Import/Export capability |
Milestone 2b: | Create Library, Reference, Cleanup commands |
Milestone 4a: | Internal product, eng, UX testing |
Milestone 4b: | Beta testing in sandbox and/or Stage environments. |
Rollout! | Single cutover event with T&L and SRE. |
Rollout Strategy
The rollout of Library Authoring v2 will be atomic in nature (aka flipping the waffleflag for all users), and will require a scheduled Studio downtime window to ensure the migration of Content Library data is comprehensive. The rollout date will be heavily communicated with edx.org content authors through all available communication channels.
...