The openedx-learning repo was recently refactored to consolidate its authoring apps into a single openedx_content app: https://github.com/openedx/openedx-platform/pull/37924 This commit makes the following changes to accommodate this: - Bumps the openedx-learning version to 0.31.0 to get the changes. - Creates new migrations in content_libraries, contentstore, and modulestore_migrator to foreign key references to authoring apps to point to the new openedx_content app. This is done without actually making database changes, since the openedx_content app models are taking over the existing tables that the authoring apps once pointed to. - Creates new squashed migrations in these apps that create these foreign keys to reference openedx_content app models from the start. The full rationale for how and why this was done is in the following openedx-learning ADR: https://github.com/openedx/openedx-learning/blob/main/docs/decisions/0020-merge-authoring-apps-into-openedx-content.rst These migrations should run fine from either a from-scratch scenario (i.e. a new install or CI), or when upgrading from an Ulmo-or-later database state. If you have a database state that comes from the middle of the Ulmo development cycle (e.g. October 2025), you may encounter migration errors in content_libraries, contentstore, or modulestore_migrator, with an error message complaining about missing tables. If you receive this message, run the following command: python manage.py lms migrate openedx_content 0001 Then try to run the migrations for the app that failed. Repeat if necessary for multiple apps.
CMS
===
This directory contains code relating to the Open edX Content Management System ("CMS"). It allows learning content to be created, edited, versioned, and eventually published to the `Open edX Learning Mangement System <../lms>`_ ("LMS"). The main user-facing application that CMS powers is the `Open edX Studio <https://docs.openedx.org/en/latest/educators/concepts/open_edx_platform/what_is_studio.html>`_
See also
--------
* `CMS vs Studio terminology <../docs/decisions/0013-cms-vs-studio.rst>`_
* `CMS vs LMS boundaries <../docs/decisions/0005-studio-lms-subdomain-boundaries.rst>`_