Skip to content

How-to: port a frontend plugin from FPF to frontend-base#1459

Open
arbrandes wants to merge 1 commit into
openedx:mainfrom
arbrandes:arbrandes/port-frontend-plugin-to-frontend-base
Open

How-to: port a frontend plugin from FPF to frontend-base#1459
arbrandes wants to merge 1 commit into
openedx:mainfrom
arbrandes:arbrandes/port-frontend-plugin-to-frontend-base

Conversation

@arbrandes
Copy link
Copy Markdown
Contributor

Description

Adds a site-ops how-to that walks plugin authors through porting both halves of an existing frontend-plugin-framework contribution (the npm package and the accompanying Tutor plugin) to frontend-base. The page lives at source/site_ops/how-tos/port-frontend-plugin-to-frontend-base.rst and is picked up automatically by the directory's glob toctree.

The page covers what changes in the architecture, then provides translation tables for imports (@edx/frontend-platform@openedx/frontend-base, getConfig()getSiteConfig()), slot operations (PLUGIN_OPERATIONSWidgetOperationTypes), slot ids (default_contentsdefaultContent, etc.), and tutor-mfe patch names (mfe-env-config-buildtime-importsmfe-site-config-imports, etc.). It also documents the compat-shim escape hatch (FRONTEND_COMPAT_PLUGINS, FRONTEND_COMPAT_SLOTS) for plugins that can't be ported immediately, with a callout that source-based installs need a working build script since tutor-mfe runs turbo run build against workspace packages but does no transpilation otherwise.

The existing use-frontend-plugin-slots.rst (FPF flow) gets a .. note:: at the top and a matching seealso entry pointing at the new page, so readers landing on the legacy how-to are directed to the modern path.

A worked example referenced from the doc is the frontend-base branch of openedx/sample-plugin.

LLM usage notice

Built with assistance from Claude.

@arbrandes arbrandes linked an issue May 14, 2026 that may be closed by this pull request
+--------------+-------------------------------+----------------+--------------------------------+
| Review Date | Working Group Reviewer | Release |Test situation |
+--------------+-------------------------------+----------------+--------------------------------+
| | | | |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before merge please fill this in :)


See :doc:`../references/frontend-plugin-slots` for a list of available slots.

:doc:`port-frontend-plugin-to-frontend-base`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use :ref: syntax as it's more robust than :doc: (I'm slowly changing this throughout this repo but it's taking awhile) - if you could fix all usages of this in your diff that'd be swell!

Adds a site-ops how-to that walks plugin authors through porting both
halves (npm package + Tutor plugin) of an existing frontend-plugin-framework
contribution to frontend-base, with translation tables for imports, slot
ops, slot ids, and tutor-mfe patches. Cross-linked from the existing
use-frontend-plugin-slots page.

Co-Authored-By: Claude <noreply@anthropic.com>
@arbrandes arbrandes force-pushed the arbrandes/port-frontend-plugin-to-frontend-base branch from 8d4f865 to 6142d48 Compare May 15, 2026 15:36
@sarina
Copy link
Copy Markdown
Contributor

sarina commented May 15, 2026

@arbrandes - the build broke due to upstream changes, if you pull in main the issues have been resolved.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Plugin authors: migration docs

2 participants