Micro-frontends of edX are currently using Node JS v16 that will no longer get support after September 11, 2023. We have to upgrade Node JS version to v18 before that
We have created tickets in each MFE for node upgrade ticket and all the tickets are added in Maintenance board. FED-BOM is creating PRs in each MFEs and adding these in the Maintenance boards as well. FED-BOM is following these steps to upgrade Node JS
Steps to upgrade
First we need to use node v18. The suggested way is to use nvm to use Node v18
Delete the package-lock.json file and run npm install
Identify and update packages according to node v18
Add/Update .nvmrc to use v18
Update CI workflow to use node version from .nvmrc
Update Release workflow to use node version from .nvmrc
Update lockfileversion-check.yml workflow to use openedx/.github/.github/workflows/lockfileversion-check-v3.yml@master
Update Readme according to node v18 changes
Run unit tests, linting and build scripts if exists.
Test extract (pull/push) translations
Start & test the project
Perform consumer testing if its a library to check its impacts on consumers
If its a library and consumers are breaking with node upgrade, it should be release as a major version so renovate doesn’t auto merge its changes in consumers.
Sometimes npm create cache with node 16 and when run on node 18 it might cause some random errors(e.g: axios mock errors). To handle such issues, it is recommended to remove node_modules.
In some cases, we have to update semantic release version to v20 as v20 of semantic release doesn’t support node version <18
In case of any help/queries, you can contact us on slack at #tech-fed-bom.