Skip to content

[DEPR]: Learning Header Actions Slot V1 #681

Description

@ChrisChV

RFC Start Date

2026-08-31

Target Plan Accepted Date

2026-09-14

Target Transition Unblocked Date

2026-09-14

Earliest Breaking Changes Unblocked Date

2026-10-14

Earliest Open edX Named Release with Breaking Changes

Willow - 2026-10

Rationale

The org.openedx.frontend.layout.learning_header_actions.v1 plugin slot is gated behind both showUserDropdown and authenticatedUser, tying it to the visibility of the user dropdown menu. This is unintended: showUserDropdown should only control the AuthenticatedUserDropdown, not the header's action items (notifications tray, help link, and any plugin content injected into this slot). This prevents consumers who set showUserDropdown={false} from still showing notifications/help, and prevents third-party plugins attached to this slot from rendering independently of that flag. See #676

Removal

  • Remove the org.openedx.frontend.layout.learning_header_actions.v1 slot, defined in LearningHeaderActionsSlot/v1/index.jsx, which currently wraps HeaderNotificationsSlot and LearningHelpSlot and is only rendered by v2 when showUserDropdown is true.
  • Delete the v1/ directory entirely. The shared images/ folder stays, since its screenshots remain valid for v2.
  • The root index.jsx will drop the LearningHeaderActionsSlotV1 named export.

Replacement

Replaced by the org.openedx.frontend.layout.learning_header_actions.v2 slot, defined in LearningHeaderActionsSlot/v2/index.jsx. Once v1 is removed, v2 will render HeaderNotificationsSlot and LearningHelpSlot directly and unconditionally, no longer gated by showUserDropdown.

Deprecation

Mark org.openedx.frontend.layout.learning_header_actions.v1 as deprecated in v1/README.md and in the plugin slots index, pointing consumers to .v2.

Open question: Is there no native way to deprecate a plugin slot?

Additional Info

No response

Transition Unblocked Tasks

  • Merge the PR introducing the v2 slot: feat: Add V2 of header actions slot #682
  • Mark v1 as deprecated in v1/README.md and plugin-slots/README.md
  • Announce the migration path on Discourse/Slack so operators and plugin authors update their pluginSlots config from .v1 to .v2

Feature Removal Tasks

  • Remove the v1/ directory (index.jsx, README.md)
  • Update v2/index.jsx to render HeaderNotificationsSlot and LearningHelpSlot directly and unconditionally
  • Remove the LearningHeaderActionsSlotV1 named export from the root index.jsx
  • Update the root README.md and HeaderNotificationsSlot/README.md to remove references to .v1
  • Publish a release and changelog entry noting the removal

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