Skip to content

feat!: Remove Unused Libraries v2 Import API & LTI Tool#38297

Merged
kdmccormick merged 6 commits intomasterfrom
kdmccormick/libraries-cleanup
Apr 8, 2026
Merged

feat!: Remove Unused Libraries v2 Import API & LTI Tool#38297
kdmccormick merged 6 commits intomasterfrom
kdmccormick/libraries-cleanup

Conversation

@kdmccormick
Copy link
Copy Markdown
Member

@kdmccormick kdmccormick commented Apr 7, 2026

Description

This removes two content_libraries features which are unused. Both features were developed during the Blockstore Libraries days (~2021, back when Libraries V2 was pre-alpha). They were ostensibly ported during the Blockstore->Core transition but I don't think we ever tested them and I'd be surprised if they still work. I think we should remove them now in order to avoid having to bring them along through any more refactorings :)

The features:

  • The LTI 1.3 Provider Tool, which exposed library blocks via LTI. I believe this was developed for a HarvardX use case originally.
  • The Course Import API. This was developed by 2U as an original attempt to move course content into V2 libraries, but it did not end up being used by anyone except developers. Please note that this is not the same as the Course Import feature which we are building for Verawood--that is built on the modulestore_migrator API.

Testing

When the sandbox comes up, I'll smoke test libraries, including the real Course Import feature (based on modulestore_migrator) to ensure it's not impacted.

Dev notes

The first commit was all a one-shot prompt to Sonnet 4.6:

let's remove some dead code from openedx-platform, primarily in the openedx/core/djangoapp/content_libraries folder (though there are tendrils elsewhere).

  • the flag ENABLE_CONTENT_LIBRARIES_LTI_TOOL is always disabled. everything behind it is dead code. please remove
  • the entire api/courseware_import.py module and all code that supports it or depends on it.

I reviewed the whole diff afterwards. The rest of the commits are me cleaning it up.

@kdmccormick kdmccormick force-pushed the kdmccormick/libraries-cleanup branch from a98219f to 5e15768 Compare April 7, 2026 15:14
@kdmccormick kdmccormick changed the title feat!: Remove Unused Libraries Import API & LTI_TOOL feat!: Remove Unused Libraries v2 Import API & LTI Tool Apr 7, 2026
@kdmccormick kdmccormick added the create-sandbox open-craft-grove should create a sandbox environment from this PR label Apr 7, 2026
@kdmccormick kdmccormick force-pushed the kdmccormick/libraries-cleanup branch from 5e15768 to 8a4e7d5 Compare April 7, 2026 15:47
@kdmccormick
Copy link
Copy Markdown
Member Author

kdmccormick commented Apr 7, 2026

@arbrandes , I think you were a dev on the LTI_TOOL implementation, right? Can I get your take on whether it makes sense to remove it at this point?

@arbrandes
Copy link
Copy Markdown
Contributor

I'm actually surprised this is still here! I wasn't part of the migration from Blockstore, and it looks significantly different from what I remember.

Which is to say: if this is not a desired feature, I certainly have no objections to it being removed. :)

@kdmccormick kdmccormick marked this pull request as ready for review April 8, 2026 13:52
I believe this is because the M2M field ContentLibrary.authorized_lti_configs
has been removed. That field was being queried in order to compute the
`allow_lti` property when building a ContentLibraryMetadata object.
@kdmccormick kdmccormick force-pushed the kdmccormick/libraries-cleanup branch from 3e1b2c4 to cad7c2d Compare April 8, 2026 13:53
@kdmccormick
Copy link
Copy Markdown
Member Author

@ormsbee @bradenmacdonald Could I get a review from one of you folks on this one? I think it's pretty straightforward, and it will make it easier for me to apply the openedx-core keys rework to openedx-platform next week.

# cms.djangoapps.export_course_metadata.tasks
# -> openedx.core.djangoapps.schedules.content_highlights
# -> lms.djangoapps.courseware.block_render & lms.djangoapps.courseware.model_data
"openedx.core.djangoapps.content_libraries.* -> lms.djangoapps.*.*",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

😁

@kdmccormick kdmccormick merged commit b71d8a7 into master Apr 8, 2026
53 checks passed
@kdmccormick kdmccormick deleted the kdmccormick/libraries-cleanup branch April 8, 2026 15:02
@bradenmacdonald
Copy link
Copy Markdown
Contributor

@kdmccormick Actually we developed the LTI integration for MIT, I believe - to embed library content into canvas. @pdpinch do you know if MIT is still using that?

Was it really permanently disabled / impossible to enable?

@ormsbee
Copy link
Copy Markdown
Contributor

ormsbee commented Apr 8, 2026

My understanding was that it LTI never worked in the post-blockstore library world. @arbrandes: Do I remember correctly that you had context on this?

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.

4 participants