Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade all frontends to Node 20 (before Sumac?) #686

Open
jristau1984 opened this issue Jun 13, 2024 · 0 comments
Open

Upgrade all frontends to Node 20 (before Sumac?) #686

jristau1984 opened this issue Jun 13, 2024 · 0 comments

Comments

@jristau1984
Copy link

jristau1984 commented Jun 13, 2024

openedx/platform-roadmap#363

The community is trying to support both Node 18 and Node 20 in the same release. Adolfo Brandes is running the overall effort, so make sure to coordinate and communicate with him on when they may introduce updates we are not ready for, and when we may introduce updates to public MFEs and when we are done with our private MFEs.

Adam Stankiewicz
[inform] Node 20 upgrade will also require changes to edx-internal and tubular related to MFEs' build pipeline:

  1. frontend-gocd-pipeline.yaml.j2 (source) relies on a use_node_18 input and utilizes nvm to change Node version to v18 iff use_node_18 is truthy.
    a. MFEs typically define .nvmrc file in their root, disclosing the supported Node version for that MFE (example). Ideally, our GoCD pipeline would rely on the Node version specified in .nvmrc.
  2. Related to the use_node_18 input referenced above, MFEs configure that input here. If we start relying on the .nvmrc file defined per MFE, perhaps the Node 20 upgrade defines a use_mfe_nvm input instead or similar?
  3. Incompatible version of NPM (v8) currently used to install NPM aliases during the GoCD pipeline build step in tubular (source), resulting in "Unsupported engine" warnings about using Node 16; the pinning was not accounted for during Node 18 upgrade.
    a. FWIW, it's a bit odd that we re-install NPM altogether here regardless.

Adam Stankiewicz
Beyond that, while it's alluded to in the linked upstream issue, wanted to explicitly call out that many shared libraries consumed by MFEs use Node 18 during their build/release processes. Example, for most shared libraries, semantic-release is pinned to v22 to rely on a Node 18 compatible version. Once these workflows are running Node 20, we should pin semantic-release to v23 moving forward.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Backlog
Archived in project
Development

No branches or pull requests

1 participant