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-23

Earliest Breaking Changes Unblocked Date

2026-10-23

Earliest Open edX Named Release with Breaking Changes

Willow - 2027-01

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

Activity

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