openedx / openedx/openedx-platform
[Refactor] Slash-n-Burn Built In XBlocks
@irfanuddinahmad is already working on this.
Since Jun 10, 2026.
- Dominant language
- Python
- Stars
- 8.2k
- Forks
- 4.4k
- Avg merge
- 6d 18h
- Merged PRs (30d)
- 42
Description
This is the successor of the XBlock extraction epic, in which all Built-In XBlock code was copied to xblocks-contrib:
https://github.com/openedx/edx-platform/issues/34827
In this epic we will remove the Built-In XBlock code from edx-platform/xmodule.
Note: The
xblocks-contrib→xblocks-corepackage restructure is postponed. Steps have been simplified accordingly — no rename or PyPI migration needed as a prerequisite.
Pre-conditions
- The extracted XBlock is rolled out and widely adopted by the community.
Per-Block Steps (separate PR per block)
Each block should be removed individually (not in one big PR) so smoke tests can be run per block.
- Review PRs merged into the Built-In XBlock code in edx-platform after the extraction work was done — port any bug fixes or improvements to xblocks-contrib if not already there.
- Remove the toggle — delete the relevant Waffle/Django settings flag from openedx/envs/common.py and all usages.
- Remove the shim — delete the
_BuiltInBlahBlockclass and thefrom xblocks_contrib.blah import BlahBlock as _ExtractedBlahBlockimport statement. - Remove the entrypoint — delete the conflicting Built-In XBlock entrypoint from pyproject.toml.
- Remove remaining assets — clean up any leftover files:
- Python classes and related modules
- JavaScript files
- HTML templates
- CSS/Sass files
- Run smoke tests on the extracted block to verify nothing is broken.
Sub-tasks
One sub-task per block (see linked child issues).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.