Skip to content

Update all Released MFEs and Libraries to use Node 20 #267

Closed
@feanil

Description

@feanil

Description

See the parent issue for the motivation behind this upgrade: openedx/platform-roadmap#363.

### General tasks
- [x] Announce the deprecation of Node 18
- [x] Create an issue to track the upgrade on each MFE
- [x] Create an issue to track the upgrade on tutor-mfe

Upgrade process

For each MFE, one should do the following, in order:

  1. Create and merge a PR that does nothing else but add Node 20 to the test matrix in a non-blocking manner (using continue-on-error).

    Example PR:

    test: Add Node 20 to CI matrix frontend-template-application#743

  2. If failures are detected on Node 20, create a second PR that addresses those failures while making sure Node 18 still works correctly. Get it merged.

  3. Now create a second (or third) PR that:

    • Updates .nvmrc to use Node 20

    • Regenerates package-lock.json from scratch using it (hint: nvm use && rm package-lock.json && npm install.)

    • Migrates the lockfile check workflow to v3.

    • Removes continue-on-error so Node 20 tests must pass

    • Fixes any issues in the codebase that arise from the above. At this point both NPM versions are supported, but Node 20 is used for development.

    Example PR:

    build: Upgrade to Node 20 frontend-template-application#744

  4. Create/update DEPR ticket for Node 18

  5. Create a final PR that removes Node 18 from the test matrix. If the MFE is officially supported by Tutor, wait to merge it until the DEPR is complete and tutor-mfe is flipped over to use Node 20 for its builds (see the tracking issue).

    Example PR:

    test: Remove support for Node 18 frontend-template-application#745

The following task list will track the above for individual MFEs:

### Tutor-supported MFEs
- [ ] https://github.com/overhangio/tutor-mfe/issues/198
- [ ] https://github.com/openedx/frontend-app-authn/issues/1196
- [ ] https://github.com/openedx/frontend-app-account/issues/1008
- [ ] https://github.com/openedx/frontend-app-communications/issues/199
- [ ] https://github.com/openedx/frontend-app-course-authoring/issues/873
- [ ] https://github.com/openedx/frontend-app-discussions/issues/678
- [ ] https://github.com/openedx/frontend-app-ecommerce/issues/374
- [ ] https://github.com/openedx/frontend-app-gradebook/issues/385
- [ ] https://github.com/openedx/frontend-app-learning/issues/1316
- [ ] https://github.com/openedx/frontend-app-learner-dashboard/issues/298
- [ ] https://github.com/openedx/frontend-app-learner-record/issues/298
- [ ] https://github.com/openedx/frontend-app-ora-grading/issues/319
- [ ] https://github.com/openedx/frontend-app-payment/issues/858
- [ ] https://github.com/openedx/frontend-app-profile/issues/980
### Other MFEs
- [ ] https://github.com/openedx/frontend-template-application/issues/742
- [ ] https://github.com/openedx/frontend-app-admin-portal/issues/1277
- [ ] https://github.com/openedx/frontend-app-enterprise-public-catalog/issues/438
- [ ] https://github.com/openedx/frontend-app-learner-portal-enterprise/issues/1161
- [ ] https://github.com/openedx/frontend-app-learner-portal-programs/issues/325
- [ ] https://github.com/openedx/frontend-app-ora/issues/237
- [ ] https://github.com/openedx/frontend-app-publisher/issues/977
- [ ] https://github.com/openedx/frontend-app-shell/issues/16
- [ ] https://github.com/openedx/frontend-app-support-tools/issues/404
- [ ] https://github.com/openedx/edx-enterprise/issues/2213
### Libraries/Other
- [ ] https://github.com/openedx/browserslist-config/issues/13
- [ ] https://github.com/openedx/cypress-e2e-tests/issues/125
- [ ] https://github.com/openedx/edx-bootstrap/issues/300
- [ ] https://github.com/openedx/eslint-config/issues/159
- [ ] https://github.com/openedx/frontend-build/issues/594
- [ ] https://github.com/openedx/frontend-component-cookie-policy-banner/issues/444
- [ ] https://github.com/openedx/frontend-component-footer/issues/466
- [ ] https://github.com/openedx/frontend-component-header/issues/532
- [ ] https://github.com/openedx/frontend-lib-special-exams/issues/151
- [ ] https://github.com/openedx/frontend-platform/issues/731
- [ ] https://github.com/openedx/frontend-plugin-framework/issues/85
- [ ] https://github.com/openedx/mockprock/issues/53
- [ ] https://github.com/openedx/paragon/issues/3233
- [ ] https://github.com/openedx/reactifex/issues/27
- [ ] https://github.com/openedx/react-unit-test-utils/issues/34
- [ ] https://github.com/openedx/stylelint-config-edx/issues/45

Metadata

Metadata

Assignees

Labels

epicLarge unit of work, consisting of multiple tasksmaintenanceRoutine upkeep necessary for the health of the platform

Type

No type

Projects

Status

Done

Status

Closed

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions