Skip to content

Bump pinned Node 12 (EOL) to a current LTS in pom.xml and CI #15

Open

Description

@lgnap

Contexte

The frontend is built with Node v12.3.1 / Yarn v1.16.0 pinned in web-ui/pom.xml and node-version: '12' in CI. Node 12 has been EOL since April 2022: no security fixes, and the frontend-maven-plugin downloads a binary nobody patches anymore.

Description

Move the pinned Node to a current LTS (20.x) and Yarn 1.22.x, aligning web-ui/pom.xml and .github/workflows/ci.yml. Config only. react-scripts 3.0.1 must still build; if it does not (OpenSSL 3 ERR_OSSL_EVP_UNSUPPORTED is the known trap with webpack 4), stop and report: the react-scripts upgrade is out of scope.

Fichiers concernes

  • web-ui/pom.xml:24-25 — node.version, yarn.version
  • .github/workflows/ci.yml:82 — node-version

Plan d'implementation

  1. Locally: nvm use 20 && cd web-ui/javascript && yarn install && yarn build && yarn test to check react-scripts 3.0.1 under Node 20 (try NODE_OPTIONS=--openssl-legacy-provider only as a diagnostic, not as the fix).
  2. If green: bump the two pom properties and the CI node-version; also try Node 18 if 20 fails.
  3. Full mvn package to make sure the frontend-maven-plugin download + build passes.
  4. Check git diff --exit-code after the build (a regenerated yarn.lock must be committed deliberately, not left behind).

Criteres d'acceptation

  • web-ui/pom.xml and ci.yml point to the same current LTS
  • Maven build + yarn test green on Ubuntu and Windows CI
  • If react-scripts 3 cannot build on any current LTS, the issue is updated with the finding and left open instead of being forced

Complexite

S (M if react-scripts fights back)

Activity

  1. lgnap commented on Sep 11, 2026

    @lgnap
    OwnerAuthor

    Prise en charge par Claude Code (instance tuxedo:40112:d397e957, branche chore/issue-15-node-lts).

  2. lgnap commented on Sep 11, 2026

    @lgnap
    OwnerAuthor

    Finding: blocked by react-scripts 3.0.1, as the ticket anticipated — no PR

    Measured on this machine (yarn build, CI=true, same lockfile):

    Node Result
    12 (pinned today) builds — CI proves it on every PR
    16.20.2 builds — last line webpack 4 works on; EOL since 2023-09
    20.20.2 (LTS) fails: error:0308010C:digital envelope routines::unsupported
    24.18.0 same failure

    Cause: webpack 4 (what react-scripts 3 ships) hashes modules with MD4 through Node's crypto, and OpenSSL 3 — Node ≥ 17 — refuses it. Nothing in this repo can fix that; only webpack ≥ 5.61 (react-scripts 5) can.

    Options, none of which is "just bump the number":

    1. Leave 12 (status quo). Honest and reproducible; the runtime is EOL but it only runs at build time, never on the user's machine.
    2. Bump to 16.20.2. Builds without any trick, 4 years newer than 12, still EOL. Strictly less bad, does not meet the ticket's "current LTS".
    3. Bump to 20 + NODE_OPTIONS=--openssl-legacy-provider in web-ui/pom.xml (frontend-maven-plugin environmentVariables) and in ci.yml. Works today, but it re-enables legacy OpenSSL algorithms for the build, ties the build to a flag Node may drop, and papers over the real problem.

    Recommendation: do not take 3. Take 2 only if someone wants the small win now; otherwise leave this open and let the real fix be the react-scripts 3 → 5 upgrade, which is the item in #3 this ticket said was out of scope. That upgrade also removes the marked/lib/marked.umd.js import wart from antoinevalentinHA#58. It is its own ticket, size M, and the one that actually closes this.

    Leaving open, unassigned.

  3. lgnap commented on Sep 11, 2026

    @lgnap
    OwnerAuthor

    Blocked by #18 (react-scripts 3 → 5), which is the actual fix. This ticket closes with that PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions