Legacy Content Libraries Migration Plan
There are two generations of Content Libraries in the platform. The Open edX user interface has referred to them by different names across releases, so to disambiguate, we use the code-names “V1” and “V2”.
V1 Libraries will be removed as soon as Ulmo. This living document explains how we plan to convert existing V1 Library content and references over to V2. We will update it with higher-fidelity mocks/screenshots over time and eventually transfer this information into the official release notes.
Contents:
Content Libraries in past releases
In all Open edX releases since Cypress, Content Libraries (all versions) can be globally disabled by settingFEATURES['ENABLE_CONTENT_LIBRARIES'] = False
. This will continue to be the case, at least for Teak.
Cypress through Redwood
Studio had a feature called Content Libraries. In practical terms, they were bare-bones problem banks. These libraries had a very minimal authoring environment. They supported only Problem, Video and Text components. They supported OLX import/export. Library content was stored in MongoDB. These are V1 Libraries.
The only way to use V1 Library content in a course was to add “library_content"
to the course’s Advanced Module List, and then add Randomized Content Block components to the course’s units. Each learner would see a (configurable) number of components, selected from the entire library, and optionally filtered to a particular problem type. This is the V1 Library Content Component.
Starting in Olive, the V1 Library Content Component was renamed to Library Content, and it became available on all courses without having to configure the Advanced Module List.
Sumac
A new Libraries (Beta) feature is introduced. It features a much richer authoring environment, allowing authors to organize, tag, sort, and filter their library, and empowering authors to manage a much higher volume of content than would have been suitable in the V1 Libraries environment. It initially supports Problem, Video, and Text components. OLX import/export is not yet supported. Content is stored in MySQL and indexed in Meilisearch. These are V2 Libraries.
Subsets of V2 Libraries can be randomized into course content via the new Problem Bank component. Subsets of V2 Libraries can be statically shown in courses via a new Library Content component. These are the V2 Problem Bank Component and V2 Library Content Component, respectively.
V1 Libraries are still available for authoring, but they have been renamed Legacy Libraries. V1 Library Content Components can still be edited and created, but they have been renamed to Legacy Library Content.
To new Waffle flags are introduced: contentstore.new_studio_mfe.disable_new_libraries
and contentstore.new_studio_mfe.disable_legacy_libraries
, which can be toggled on in order todisable the V2 and V1 experiences, respectively. These flags exist in addition to the FEATURES['ENABLE_CONTENT_LIBRARIES']
Django setting which, when set to False, disables both the V1 and V2 library experiences entirely
Content Libraries in upcoming releases
General migration notes
Each V1 Library will be convertible to a collection within a V2 Library. The conversion process will be very straightforward. In general, V1 Library Content references in courses will continue to work seamlessly, whether or not its source material has been converted.
Teak
The authoring environment for V2 Libraries, still known as Libraries (Beta), will have several new features, including but not limited to: support for certain Advanced components, support for Units, Subsections, and Sections; ability to import content from courses; various general UX improvements.
In courses, authors will be able to manage library content updates for V2 Problem Bank Components and V2 Library Content Components from a centralized Content Updates page. Furthermore, courses will have provisional support for reuse of Units and Subsections from V2 Libraries.
V1 Libraries and V1 Library Content Components are still available to be used, although there may be warning encouraging authors to use V2 Libraries for all new content.
Sumac->Teak Migration Path
From Django Admin, site-global staff will have the option to select one or more V1 Libraries and perform the Migrate Legacy Library to new Library Collection admin action. The staff member will be able to specify any existing V2 Library or V2 Library Collection as the target of the conversion.
Once converted, the V1 Library will continue to be listed under the Legacy Libraries tab, but there will be a visual indication that the conversion has been performed, and clicking on the library’s tile will forward the user to the target V2 Library or V2 Library Collection. The V1 Library authoring environment will no longer be available for this library.
Crucially, in courses, existing V1 Library Content Components referencing this library will continue working, with identical behavior. Moreso, these components will act like Problem Banks referencing to the migrated content in the target V2 library. In other words, if updates are made to the migrated content in the target V2 Library, then those updates will be made available to the existing course components.
Ulmo and Verawood
V2 Libraries will be rebranded simply to Libraries. The authoring environment, the V2 Problem Bank and V2 Library Content Components, and the content update workflows will all receive more improvements. Reuse of Units, Subsections, and Sections will be fully supported. OLX import/export will be supported.
The V1 Libraries authoring environment will no longer be available. In courses, existing V1 Library Content Components will continue working, but they will be unable to receive updates from V1 Libraries.
Teak->Ulmo Migration Path
The Legacy Libraries tab will show a list of V1 Libraries that are in the system. V1 Libraries that were already converted to the V2 environment will continue to be indicated as they were in Teak. V1 Libraries that are not yet converted will feature a prominent call-to-action, allowing library authors to select a destination V2 Library or V2 Library Collection.
As with Teak, all existing V1 Library Content References will seamlessly use the migrated V2 Library content.
Willow(?) and beyond
In order to eventually remove MongoDB as a dependency of Open edX, there will be a future release where the Legacy Libraries (or Legacy Collections) tab is removed and V1 Libraries Content becomes completely unavailable. Operators who wish to preserve their V1 Library contents will need to perform the migration described above before upgrading to such a future release.
Un-converted V1 Library Content will work, with some caveats, depending on technical constraints that may arise during the eventual retirement of MongoDB from the platform stack. The DEPR process will be used to communicate any future change in support level to un-converted V1 Library content.