openedx / public-engineering

General public issue repository for the Open edX engineering community
3 stars 1 forks source link

Update all Released MFEs to use Node 20 #267

Open feanil opened 5 months ago

feanil commented 5 months ago

Description

See the parent issue for the motivation behind this upgrade: https://github.com/openedx/platform-roadmap/issues/363.

### General tasks
- [ ] Announce the deprecation of Node 18
- [ ] 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:

    https://github.com/openedx/frontend-template-application/pull/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:

    https://github.com/openedx/frontend-template-application/pull/744

  4. 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 tutor-mfe is flipped over to use Node 20 for its builds (see the tracking issue).

    Example PR:

    https://github.com/openedx/frontend-template-application/pull/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-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/new
- [ ] https://github.com/openedx/frontend-app-enterprise-public-catalog/issues/new
- [ ] https://github.com/openedx/frontend-app-learner-portal-enterprise/issues/new
- [ ] https://github.com/openedx/frontend-app-learner-portal-programs/issues/new
- [ ] https://github.com/openedx/frontend-app-library-authoring/issues/new
- [ ] https://github.com/openedx/frontend-app-program-console/issues/new
- [ ] https://github.com/openedx/frontend-app-publisher/issues/new
- [ ] https://github.com/openedx/frontend-app-shell/issues/new
- [ ] https://github.com/openedx/frontend-app-support-tools/issues/new
github-actions[bot] commented 3 weeks ago

Thanks for your submission, @openedx/open-edx-project-managers will review shortly.