openedx / openedx/openedx-platform

[Refactor] Slash-n-Burn Built In XBlocks

Open
#37,819 1 comment 0 reactions 1 assignee View on GitHub

@irfanuddinahmad is already working on this.

Since Jun 10, 2026.

epic willow
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-contribxblocks-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.

  1. 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.
  2. Remove the toggle — delete the relevant Waffle/Django settings flag from openedx/envs/common.py and all usages.
  3. Remove the shim — delete the _BuiltInBlahBlock class and the from xblocks_contrib.blah import BlahBlock as _ExtractedBlahBlock import statement.
  4. Remove the entrypoint — delete the conflicting Built-In XBlock entrypoint from pyproject.toml.
  5. Remove remaining assets — clean up any leftover files:
    • Python classes and related modules
    • JavaScript files
    • HTML templates
    • CSS/Sass files
  6. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.