openedx / edx-platform

The Open edX LMS & Studio, powering education sites around the world!
https://openedx.org
GNU Affero General Public License v3.0
7.45k stars 3.88k forks source link

[DEPR]: Legacy ("V1") Content Libraries #32457

Open connorhaugh opened 1 year ago

connorhaugh commented 1 year ago

This deprecation is blocked by the Libraries Relaunch,which is expected in Sumac. There will be a 1-2 release period of overlapping support between Legacy Libraries and relaunched Libraries.

Proposal Date

~2023-6-14~

2024-??-??

Target Ticket Acceptance Date

~2023-8-14~

2024-??-??

Earliest Open edX Named Release Without This Functionality

Tenatively: U* (~2025-11-09)

Rationale

TODO: This section will be updated

~TNL is rolling out the last parts of V2 content libraries which will surpass parity with the v1 experience. Consequently, it does not make sense to keep V1 content libraries around for too long. In addition, modular learning and a plethora of other features are slated to be built on top of V2 libraries. It is therefore essential that V1 libraries become deprecated, and become the non-default means of interacting with randomized and reusable content on edx-platform.~

Removal

  1. The legacy library authoring pages (HTML,CSS,JS): https://github.com/openedx/edx-platform/blob/master/cms/templates/library.html
  2. The parts of the contenstore which support V1 libraries:
  3. https://github.com/openedx/edx-platform/blob/489e23983ffe0ff3c40674fa4c1505d029370bd6/cms/djangoapps/contentstore/views/library.py#L4
  4. The parts of the randomized content libraries xblock which support v1. https://github.com/openedx/edx-platform/blob/489e23983ffe0ff3c40674fa4c1505d029370bd6/xmodule/library_content_block.py
  5. The parts of split mongo modulestore which support the storing of libraries.
  6. studio_post_duplicate https://github.com/openedx/edx-platform/issues/35192

Replacement

https://openedx.atlassian.net/wiki/spaces/COMM/pages/3061186611/BD-14+Content+Libraries+and+Editing+Project+Overview

We will also plan to provide a path to copy over V1 content libraries to V2. That runbook will be made public before the acceptance period ends. TNL will help to set up teams for success in this migration.

Deprecation

No response

Migration

TODO: This will be updated

Using a series of management commands:

  1. Disable edits on V1 libraries, display message
  2. Run the Storage Management Command. The storage management command copies V1 libraries into V2 libraries. Validate its success If fail: identify failure logs run reverse migration(aka remove new v2 libs), Re-enable edits, remove message, go back to step 0.
  3. Run the Reference Management Command. This updates all existing randomized content blocks in courses to reference their new V2 libraries Validate its success. If fail: identify failure logs run reverse migration(aka roll back references to point to v1), run reverse migration(aka remove new v2 libs), Re-enable edits, remove message, go back to step 0.
  4. Turn on V2 Content Libraries (enable the MFE). Validate its success (CRUD for libraries) If fail: Go back to step 0
  5. Wait till it seems like all is good.
  6. Run the Cleanup management command.

Additional Info

No response

kdmccormick commented 1 year ago

I assigned Connor and I since we're working on wrapping up the replacement (V2 content libraries). V1 library support will likely continue through Quince and then be removed either in time for Redwood or S. Not sure yet who will be doing the removal.

dianakhuang commented 6 months ago

@kdmccormick are you still committed to owning this DEPR ticket for near future? If you aren't, we can move it back into 'Proposed' until you (and/or Connor) are ready to pick it back up again.

kdmccormick commented 6 months ago

Yep, I'm still OK owning this.

The new direction of the Libraries project is that there will be a period of cross-compatibility between V1 and V2 libraries rather than an in-place V1->V2 migration. V1 library support won't be removed until Teak at the earliest. I don't have enough solid details to formally communicate that right now, so I'll move this back to Proposed and re-communicate at some point.

kdmccormick commented 1 month ago

As of Oct 2024, the roadmap is now: