Skip to content

Frontend base Migration - #210

Open
jesusbalderramawgu wants to merge 15 commits into
openedx:masterfrom
WGU-Open-edX:frontend-base
Open

Frontend base Migration#210
jesusbalderramawgu wants to merge 15 commits into
openedx:masterfrom
WGU-Open-edX:frontend-base

Conversation

@jesusbalderramawgu

@jesusbalderramawgu jesusbalderramawgu commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Description

PR to migrate this repository to frontend base. It closes this issue.
Turning the MFE into a library that runs inside the
frontend-base shell. Follows the official "Migrating an MFE to frontend-base" guide.

How I have tested this change?

  • Ran unit tests
  • Built the project
  • Ran the project locally and tested manually the different views

Screenshots

Screenshot 2026-08-19 at 11 31 06 a m Screenshot 2026-08-19 at 11 31 28 a m Screenshot 2026-08-19 at 11 31 39 a m

Closes #211

@openedx-webhooks openedx-webhooks added the open-source-contribution PR author is not from Axim or 2U label Aug 19, 2026
@openedx-webhooks

Copy link
Copy Markdown

Thanks for the pull request, @jesusbalderramawgu!

This repository is currently maintained by @openedx/committers-frontend.

Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review.

🔘 Get product approval

If you haven't already, check this list to see if your contribution needs to go through the product review process.

  • If it does, you'll need to submit a product proposal for your contribution, and have it reviewed by the Product Working Group.
    • This process (including the steps you'll need to take) is documented here.
  • If it doesn't, simply proceed with the next step.
🔘 Provide context

To help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:

  • Dependencies

    This PR must be merged before / after / at the same time as ...

  • Blockers

    This PR is waiting for OEP-1234 to be accepted.

  • Timeline information

    This PR must be merged by XX date because ...

  • Partner information

    This is for a course on edx.org.

  • Supporting documentation
  • Relevant Open edX discussion forum threads
🔘 Get a green build

If one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green.

Details
Where can I find more information?

If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources:

When can I expect my changes to be merged?

Our goal is to get community contributions seen and reviewed as efficiently as possible.

However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:

  • The size and impact of the changes that it introduces
  • The need for product review
  • Maintenance status of the parent repository

💡 As a result it may take up to several weeks or months to complete a review and merge your PR.

Comment thread src/authz-module/components/TableControlBar/types.ts Outdated
Comment thread src/authz-module/components/TableCells.test.tsx Outdated
@codecov

codecov Bot commented Aug 25, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.47328% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 98.52%. Comparing base (36cc825) to head (758e7f6).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
src/app.ts 0.00% 1 Missing ⚠️
src/providers.ts 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #210      +/-   ##
==========================================
+ Coverage   97.65%   98.52%   +0.86%     
==========================================
  Files          68       73       +5     
  Lines        1665     1288     -377     
  Branches      443      421      -22     
==========================================
- Hits         1626     1269     -357     
+ Misses         39       19      -20     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@jesusbalderramawgu

Copy link
Copy Markdown
Contributor Author

I have updated the PR with the latest changes from frontend base.

I rebased this branch and noticed that codecov is complaining, I will check to cover the pending test coverage.
anything please let me know. Thank you!

Comment thread src/routes.tsx Outdated
Comment thread src/routes.tsx
Comment on lines +6 to +9
{
id: 'org.openedx.frontend.route.adminConsole.main',
path: '/authz/*',
Component: Main,

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.

The app no longer requires an authenticated user. Please add loader: authenticatedLoader to the route.

Comment thread src/app.ts Outdated
Comment thread package.json Outdated
Comment thread src/data/utils.ts Outdated
Comment thread Makefile Outdated
Comment thread Makefile Outdated
Comment thread site.config.test.tsx Outdated
Comment thread .npmignore Outdated
Comment thread .gitignore Outdated
Comment thread package.json Outdated
@arbrandes

Copy link
Copy Markdown
Contributor

Also, please rebase on latest master so we don't lose any new features/fixes. I see a couple landed, recently.

@jesusbalderramawgu

Copy link
Copy Markdown
Contributor Author

Thank you @arbrandes for your great feedback!
I have addressed your comments, anything please let me know!

@arbrandes arbrandes left a comment

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.

Thanks! Next round!

</Button>
<Button
as={Hyperlink}
destination={`${getAppConfig(appId).COURSE_AUTHORING_MICROFRONTEND_URL}`}

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.

Use destination={getUrlByRouteRole('org.openedx.frontend.role.courseAuthoring')}, drop the getAppConfig/appId imports, and remove the now-dead COURSE_AUTHORING_MICROFRONTEND_URL entry in site.config.test.tsx.

Comment thread tsconfig.build.json
Comment on lines +11 to +18
"exclude": [
"src/**/*.test.ts",
"src/**/*.test.tsx",
"src/**/*.spec.ts",
"src/**/*.spec.tsx",
"src/__mocks__/**/*",
"src/setupTest.tsx"
]

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.

Add "src/testUtils.tsx" here, and delete the stray file named tsconfig.build.json (with a trailing space) that the exclusion landed in instead.

Comment on lines +4 to +8
import { SiteContext } from '@openedx/frontend-base';
import userEvent from '@testing-library/user-event';
import { MemoryRouter, Route, Routes } from 'react-router-dom';
import { mockHttpClient, mockAppContext } from '@src/setupTest';
import { IntlProvider } from '@edx/frontend-platform/i18n';
import { mockHttpClient, mockAppContext } from '@src/testUtils';
import { IntlProvider } from '@openedx/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.

Merge these two @openedx/frontend-base imports. They're non-adjacent, so the earlier sweep missed them; this is the last file with two.

Comment thread src/slots/README.md Outdated

This directory contains the slots that this frontend app _offers_ for host sites to customize. Slots are implemented with the `<Slot />` component from [`@openedx/frontend-base`](https://github.com/openedx/frontend-base); see the [slot naming and lifecycle ADR](https://github.com/openedx/frontend-base/blob/main/docs/decisions/0009-slot-naming-and-lifecycle.rst) for the API and conventions.

Slots that this app _uses_ from other packages are declared in `src/slots.tsx`.

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.

Drop this line - src/slots.tsx doesn't exist, so it points readers at a dead path.

Comment thread package.json Outdated
"react-intl": "6.8.9"
},
"dependencies": {
"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3",

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.

Remove @edx/brand - nothing in the repo imports it (the dev harness gets branding via @openedx/frontend-base/shell/style), so as a hard dependency it just makes every consumer install a brand alias they don't use. lodash.debounce and react-error-boundary moving here was right.

Comment thread package.json Outdated
"ts-jest": "^29.4.5"
"@types/react-helmet": "^6.1.11",
"nodemon": "^3.1.14",
"ts-jest": "^29.4.5",

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.

ts-jest isn't referenced by jest.config.js or babel.config.js, and neither frontend-app-catalog nor frontend-app-instructor-dashboard carries it.

Comment thread package.json Outdated
Comment on lines +83 to +85
"overrides": {
"react-intl": "6.8.9"
},

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.

This should go away, and the repo fixed up for the version frontend-base provides.

@jesusbalderramawgu

Copy link
Copy Markdown
Contributor Author

Thanks! Next round!

comments addressed! thank you!

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

Labels

mao-onboarding Reviewing this will help onboard devs from an Axim mission-aligned organization (MAO). open-source-contribution PR author is not from Axim or 2U

Projects

Status: In Eng Review

Development

Successfully merging this pull request may close these issues.

Convert the app to frontend-base

5 participants