Skip to content

[DEPR]: Support for the FEATURES dictionary in Django settings #37396

Open

Description

@kdmccormick

This is a draft deprecation notice, following up from:

The listed Breaking Changes date is still tentative.
We will formally announce this and mark it as "Transition Unblocked" once the details are determined.

RFC Start Date

N/A -- Already Accepted

Target Plan Accepted Date

N/A -- Already Accepted

Target Transition Unblocked Date

Immediately -- Transition Already Unblocked (assuming you have followed #37345)

Earliest Breaking Changes Unblocked Date

2026-04-14 ("W" release)

Rationale

This completes the work started by:

TBC

Description

TBC

Task List

No response

Activity

  1. added
    deprProposal for deprecation & removal per OEP-21
    on Sep 29, 2025
  2. self-assigned this
    on Sep 29, 2025
  3. Akanshu-2u commented on Oct 9, 2025

    @Akanshu-2u
    Contributor

    While working on this issue, I identified that several instances of the legacy FEATURES dictionary are still present in the edx-platform codebase:

        {
          "name": "FEATURES['CREATE_COURSE_WITH_DEFAULT_ENROLLMENT_START_DATE']",
          "is_active": false,
          "class": "SettingDictToggle",
          "module": "xmodule.course_block"
        },
        {
          "name": "FEATURES['ENABLE_LEARNER_RECORDS']",
          "is_active": true,
          "class": "SettingDictToggle",
          "module": "openedx.core.djangoapps.credentials.helpers"
        },
        {
          "name": "FEATURES['ENABLE_ORA_TEAM_SUBMISSIONS']",
          "is_active": false,
          "class": "SettingDictToggle",
          "module": "lms.djangoapps.teams.toggles"
        },
        {
          "name": "FEATURES['ENTRANCE_EXAMS']",
          "is_active": false,
          "class": "SettingDictToggle",
          "module": "openedx.core.toggles"
        },
        {
          "name": "FEATURES['MILESTONES_APP']",
          "is_active": true,
          "class": "SettingDictToggle",
          "module": "common.djangoapps.util.milestones_helpers"
        },
        {
          "name": "FEATURES['SHOW_PROGRESS_BAR']",
          "is_active": false,
          "class": "SettingDictToggle",
          "module": "xmodule.seq_block"
        },
    

    As a first step toward addressing this, I have opened a pull request to remove the remaining usages of the FEATURES dictionary:

    Summary of Changes:

    • Modified the SettingDictToggle class to SettingToggle.
    • Removed the FEATURES dictionary.

    This PR aims to serve as a solid starting point for the ongoing cleanup effort related to settings and feature toggles in the platform.

  4. robrap commented on Nov 4, 2025

    @robrap
    Contributor

    [inform] Here is a case-sensitive github search for FEATURES that can be used to find references.

    • Note: Other repos and services may use their own FEATURES dict, so this ticket should be scoped to just LMS FEATURES dict references.
  5. added theissue type on Jan 28, 2026
  6. kdmccormick commented on Mar 2, 2026

    @kdmccormick
    MemberAuthor

    @feanil , I'm currently updating references to FEATURES within openedx-platform.

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

Metadata

Metadata

Assignees

Labels

deprProposal for deprecation & removal per OEP-21

Type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions