This is the successor of the XBlock extraction epic, in which all Built-In XBlock code was copied to xblocks-contrib:
#34827
In this epic we will remove the Built-In XBlock code from edx-platform/xmodule.
Note: The xblocks-contrib → xblocks-core package 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
_BuiltInBlahBlock class and the from xblocks_contrib.blah import BlahBlock as _ExtractedBlahBlock import 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).
This is the successor of the XBlock extraction epic, in which all Built-In XBlock code was copied to xblocks-contrib:
#34827
In this epic we will remove the Built-In XBlock code from edx-platform/xmodule.
Pre-conditions
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.
_BuiltInBlahBlockclass and thefrom xblocks_contrib.blah import BlahBlock as _ExtractedBlahBlockimport statement.Sub-tasks
One sub-task per block (see linked child issues).