edx-platform flattened FEATURES into the settings namespace (openedx/edx-platform#37067). FEATURES is now a proxy bound to the upstream settings module's namespace, so FEATURES["X"] = value in a downstream settings module writes somewhere Django never reads: the toggle silently keeps its default.
#1477 fixes this in Tutor core. Some official plugins still use the same pattern.
Needs fixing
The fix in each case is to assign the flat setting instead, as #1477 does.
Already done
tutor-mfe already sets ENABLE_AUTHN_MICROFRONTEND, ENABLE_CATALOG_MICROFRONTEND and ENABLE_NEW_BULK_EMAIL_EXPERIENCE flat on main.
Not affected
android, cairn, credentials, deck, jupyter, livedeps, minio, xqueue.
tutor-indigo only reads toggles, via settings.FEATURES.get(...) in Mako templates that are verbatim copies of the upstream ones. Those reads resolve against the upstream namespace and so cannot see a flat setting from a downstream module, but the same is true of vanilla Tutor (lms/templates/index.html, courseware/courses.html), so it is upstream's to fix and indigo should stay in sync with it.
LLM usage notice
Investigated with assistance from Claude.
edx-platform flattened
FEATURESinto the settings namespace (openedx/edx-platform#37067).FEATURESis now a proxy bound to the upstream settings module's namespace, soFEATURES["X"] = valuein a downstream settings module writes somewhere Django never reads: the toggle silently keeps its default.#1477 fixes this in Tutor core. Some official plugins still use the same pattern.
Needs fixing
ENABLE_COURSE_DISCOVERY(overhangio/tutor-discovery#124). Note that this toggle is also read via the proxy inlms/templates/index.html,courseware/courses.htmlandheader/navbar-not-authenticated.html, which a flat downstream setting cannot reach.ENABLE_DISCUSSION_SERVICE(overhangio/tutor-forum#78). StillTrueby default upstream, so the forum works today, but it breaks the moment fix: set Open edX feature toggles as flat Django settings #1477 sets core'sENABLE_DISCUSSION_SERVICE = Falseflat. Should be merged along with fix: set Open edX feature toggles as flat Django settings #1477.ENABLE_EDXNOTES(overhangio/tutor-notes#56)The fix in each case is to assign the flat setting instead, as #1477 does.
Already done
tutor-mfe already sets
ENABLE_AUTHN_MICROFRONTEND,ENABLE_CATALOG_MICROFRONTENDandENABLE_NEW_BULK_EMAIL_EXPERIENCEflat onmain.Not affected
android, cairn, credentials, deck, jupyter, livedeps, minio, xqueue.
tutor-indigo only reads toggles, via
settings.FEATURES.get(...)in Mako templates that are verbatim copies of the upstream ones. Those reads resolve against the upstream namespace and so cannot see a flat setting from a downstream module, but the same is true of vanilla Tutor (lms/templates/index.html,courseware/courses.html), so it is upstream's to fix and indigo should stay in sync with it.LLM usage notice
Investigated with assistance from Claude.