### 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:
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).
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).
Description
See the parent issue for the motivation behind this upgrade: https://github.com/openedx/platform-roadmap/issues/363.
Upgrade process
For each MFE, one should do the following, in order:
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
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.
Now create a second (or third) PR that:
Updates
.nvmrc
to use Node 20Regenerates
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 passFixes 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
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: