Skip to content

Conversation

@kdmccormick
Copy link
Member

@kdmccormick kdmccormick commented Sep 23, 2024

Description

* Consolidates and renames the runtime which is used as a base for all the others:
  * Before: `xmodule.x_module:DescriptorSystem` and
            `xmodule.mako_block:MakoDescriptorSystem`.
  * After:  `xmodule.x_module:ModuleStoreRuntime`.

* Co-locates and renames the runtimes for importing course OLX:
  * Before: `xmodule.x_module:XMLParsingSystem` and
            `xmodule.modulestore.xml:ImportSystem`.
  * After:  `xmodule.modulestore.xml:XMLParsingModuleStoreRuntime` and
            `xmodule.modulestore.xml:XMLImportingModuleStoreRuntime`.
  * Note: I would have liked to consolidate these, but it would have
          involved nontrivial test refactoring.

* Renames the stub Old Mongo runtime:
  * Before: `xmodule.modulestore.mongo.base:CachingDescriptorSystem`.
  * After: `xmodule.modulestore.mongo.base:OldModuleStoreRuntime`.

* Renames the Split Mongo runtime, the which is what runs courses in LMS and CMS:
  * Before: `xmodule.modulestore.split_mongo.caching_descriptor_system:CachingDescriptorSystem`.
  * After: `xmodule.modulestore.split_mongo.runtime:SplitModuleStoreRuntime`.

* Renames some of the dummy runtimes used only in unit tests.

Other info

This should have no user or operator impact.

Testing instructions

Smoke test general LMS and CMS usage on linked sandbox. Confirm that the demo course can be round-tripped through OLX (import, export, re-import), as that uses a different runtime class than typical LMS/CMS rendering.

Deadline

Before the Ulmo cutoff would be nice, as it would save 2U the trouble of having to handle this in the Ulmo->Verawood. But, it's not critical.

@kdmccormick kdmccormick force-pushed the kdmccormick/runtime-names branch 7 times, most recently from a70620e to 2f85b66 Compare October 16, 2025 21:06
@kdmccormick kdmccormick added the create-sandbox open-craft-grove should create a sandbox environment from this PR label Oct 16, 2025
@kdmccormick kdmccormick marked this pull request as ready for review October 16, 2025 21:07
@open-craft-grove
Copy link

Sandbox deployment successful 🚀
🎓 LMS
📝 Studio
ℹ️ Configuration information unavailable

@kdmccormick kdmccormick force-pushed the kdmccormick/runtime-names branch from 2f85b66 to b4bc421 Compare October 17, 2025 19:22
@kdmccormick kdmccormick changed the title refactor: rename ModuleStore runtimes now that XModules are gone refactor: Simplify ModuleStore runtimes now that XModules are gone Oct 17, 2025
@kdmccormick kdmccormick changed the title refactor: Simplify ModuleStore runtimes now that XModules are gone refactor: Simplify ModuleStore Runtimes now that XModules are gone Oct 17, 2025
@kdmccormick kdmccormick force-pushed the kdmccormick/runtime-names branch from 1ebb8cb to 94a2d4c Compare October 17, 2025 19:54
@kdmccormick
Copy link
Member Author

@bradenmacdonald @ormsbee @feanil This is an old refactoring I had on the backburner for a while. Not high-importance, but if any of you have a chance to review next week, it'd be nice to get this merged in before 2U forks.

@open-craft-grove
Copy link

Sandbox deployment successful 🚀
🎓 LMS
📝 Studio
ℹ️ Configuration information unavailable

@ormsbee
Copy link
Contributor

ormsbee commented Oct 17, 2025

My understanding is that 2U has already forked, and they did so pre-5.2-upgrade. Though it could still be worth doing if they want to cherry-pick it into their fork.

@jristau1984: Can you please clarify the status of 2U's fork?

@ormsbee
Copy link
Contributor

ormsbee commented Oct 17, 2025

Oh wait, they're doing it directly on https://github.com/edx/edx-platform, so we can see it.

@ormsbee
Copy link
Contributor

ormsbee commented Oct 17, 2025

@Agrendalath: Is this something that you might have time to review?

@open-craft-grove
Copy link

Sandbox deployment successful 🚀
🎓 LMS
📝 Studio
ℹ️ Configuration information unavailable

@kdmccormick
Copy link
Member Author

kdmccormick commented Oct 17, 2025

JR told me that they'll be manually syncing in master up until the point of the actual Ulmo cutoff, at which point they'll be on the release cadence.

@open-craft-grove
Copy link

Sandbox deployment successful 🚀
🎓 LMS
📝 Studio
ℹ️ Configuration information unavailable

@Agrendalath
Copy link
Member

@ormsbee, sure, I can review it later this week.

@kdmccormick
Copy link
Member Author

@Agrendalath do you think you'll be able to review this week before the cutoff?

@open-craft-grove
Copy link

Sandbox deployment successful 🚀
🎓 LMS
📝 Studio
ℹ️ Configuration information unavailable

@Agrendalath
Copy link
Member

@kdmccormick, ah, sorry, I missed this one. I'll review it tomorrow. Would you be able to take a look at the test failures?

@kdmccormick kdmccormick force-pushed the kdmccormick/runtime-names branch from 575fe6b to 815741b Compare October 28, 2025 15:53
@open-craft-grove
Copy link

Sandbox deployment successful 🚀
🎓 LMS
📝 Studio
ℹ️ Configuration information unavailable

* Consolidates and renames the runtime used as a base for all the others:
  * Before: `xmodule.x_module:DescriptorSystem` and
            `xmodule.mako_block:MakoDescriptorSystem`.
  * After:  `xmodule.x_module:ModuleStoreRuntime`.

* Co-locates and renames the runtimes for importing course OLX:
  * Before: `xmodule.x_module:XMLParsingSystem` and
            `xmodule.modulestore.xml:ImportSystem`.
  * After:  `xmodule.modulestore.xml:XMLParsingModuleStoreRuntime` and
            `xmodule.modulestore.xml:XMLImportingModuleStoreRuntime`.
  * Note: I would have liked to consolidate these, but it would have
          involved nontrivial test refactoring.

* Renames the stub Old Mongo runtime:
  * Before: `xmodule.modulestore.mongo.base:CachingDescriptorSystem`.
  * After: `xmodule.modulestore.mongo.base:OldModuleStoreRuntime`.

* Renames the Split Mongo runtime, the which is what runs courses in LMS and CMS:
  * Before: `xmodule.modulestore.split_mongo.caching_descriptor_system:CachingDescriptorSystem`.
  * After: `xmodule.modulestore.split_mongo.runtime:SplitModuleStoreRuntime`.

* Renames some of the dummy runtimes used only in unit tests.
@kdmccormick kdmccormick force-pushed the kdmccormick/runtime-names branch from 815741b to fcbf6d3 Compare October 28, 2025 17:30
@kdmccormick
Copy link
Member Author

Thank @Agrendalath . Build is green now.

@open-craft-grove
Copy link

Sandbox deployment failed 💥
Please check the settings and requirements.
Retry deployment by pushing a new commit or updating the requirements/settings in the pull request's description.
📜 Failure Logs
ℹ️ Configuration information unavailable

@open-craft-grove
Copy link

Sandbox deployment successful 🚀
🎓 LMS
📝 Studio
ℹ️ Configuration information unavailable

Copy link
Member

@Agrendalath Agrendalath left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great cleanup, @kdmccormick!

Warning

I did not test the following parts because they do not work for me locally, even on the master branch (so they are not related to this PR):

  1. The Studio editor, because it fails with xblockElement is empty or not defined console error. tutor dev exec lms npm run build-dev fails with [webpack-cli] TypeError: Merge.merge is not a function.
  2. Exporting a course, because it fails with [Errno 2] No such file or directory: '/openedx/media/video-transcripts/0cba5d92734e40969d855cac9534fa3a.srt'.

👍

  • I tested this: rendering blocks in the LMS and importing a course
  • I read through the code
  • I checked for accessibility issues: n/a
  • Includes documentation: n/a

@kdmccormick
Copy link
Member Author

Thanks @Agrendalath ! Thanks for the heads up--I just re-verified that those parts are working fine on the PR sandbox.

@kdmccormick kdmccormick merged commit 834cb94 into openedx:master Oct 29, 2025
49 checks passed
@robrap
Copy link
Contributor

robrap commented Oct 30, 2025

@kdmccormick: You had written:

Before the Ulmo cutoff would be nice, as it would save 2U the trouble of having to handle this in the Ulmo->Verawood. But, it's not critical.

Can you clarify what “handling this” means? Is there some action we need to take? I’m not quite clear on the benefit to 2U of having merged sooner rather than later. Since this already merged, I’m not debating the decision, but simply wanted to understand what you are referring to. Thank you.

@kdmccormick
Copy link
Member Author

Sure. Upstream refactorings make rebases more difficult, especially as the rebases get larger. Rebasing a week of private commits from your fork onto this commit will likely be much easier than rebasing 6 months of private commits onto it.

@robrap
Copy link
Contributor

robrap commented Oct 31, 2025

Thanks for clarifying @kdmccormick. I'm hoping 2U keeps to very few private commits that aren't on master, and we plan to start fresh with each named release, but we'll see what happens. In either case, BTR is about to test the release, so from that standpoint getting changes merged sooner rather than later means it won't be sitting and possibly broken for a long while.

haftamuk pushed a commit to haftamuk/edx-platform that referenced this pull request Nov 3, 2025
…nedx#35523)

* Consolidates and renames the runtime used as a base for all the others:
  * Before: `xmodule.x_module:DescriptorSystem` and
            `xmodule.mako_block:MakoDescriptorSystem`.
  * After:  `xmodule.x_module:ModuleStoreRuntime`.

* Co-locates and renames the runtimes for importing course OLX:
  * Before: `xmodule.x_module:XMLParsingSystem` and
            `xmodule.modulestore.xml:ImportSystem`.
  * After:  `xmodule.modulestore.xml:XMLParsingModuleStoreRuntime` and
            `xmodule.modulestore.xml:XMLImportingModuleStoreRuntime`.
  * Note: I would have liked to consolidate these, but it would have
          involved nontrivial test refactoring.

* Renames the stub Old Mongo runtime:
  * Before: `xmodule.modulestore.mongo.base:CachingDescriptorSystem`.
  * After: `xmodule.modulestore.mongo.base:OldModuleStoreRuntime`.

* Renames the Split Mongo runtime, the which is what runs courses in LMS and CMS:
  * Before: `xmodule.modulestore.split_mongo.caching_descriptor_system:CachingDescriptorSystem`.
  * After: `xmodule.modulestore.split_mongo.runtime:SplitModuleStoreRuntime`.

* Renames some of the dummy runtimes used only in unit tests.
@open-craft-grove
Copy link

Sandbox deployment failed 💥
Please check the settings and requirements.
Retry deployment by pushing a new commit or updating the requirements/settings in the pull request's description.
📜 Failure Logs
ℹ️ Grove Config, Tutor Config, Tutor Requirements

@open-craft-grove
Copy link

Sandbox deployment failed 💥
Please check the settings and requirements.
Retry deployment by pushing a new commit or updating the requirements/settings in the pull request's description.
📜 Failure Logs
ℹ️ Grove Config, Tutor Config, Tutor Requirements

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

create-sandbox open-craft-grove should create a sandbox environment from this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants