Aman-Mittal opened a new pull request, #863:
URL: https://github.com/apache/fineract-backoffice-ui/pull/863

   Node 26 "Lithium" became the active LTS line in October, which moved Node 24 
to maintenance. Read from `nodejs.org/dist/index.json` rather than assumed — 
the newest release carrying an `lts` codename is **v26.13.0** (npm 11.20.0).
   
   Angular 22 already supports it: every `@angular/*` package in the tree 
declares
   
   ```
   engines.node: ^22.22.3 || ^24.15.0 || >=26.0.0
   ```
   
   so this moves onto a supported runtime rather than ahead of one.
   
   ## What actually needed changing
   
   The jobs that ask `setup-node` for `lts/*` needed nothing — they began 
resolving to 26 the moment the line went LTS. That is precisely the gap this 
closes: the two places pinned **by digest** could not follow, so the container 
builds were a full major behind every other job.
   
   | | from | to |
   | --- | --- | --- |
   | `deploy/Dockerfile` build stage | `node:24-alpine@sha256:d32cdf61…` | 
`node:26-alpine@sha256:c6ad9e9c…` |
   | `ci.yml` offline-build (install + build steps) | same digest | same new 
digest |
   | `package.json` `engines.node` | `>=22.22.3` | `>=26.0.0` |
   | `README.md`, `SETUP.md`, `AGENTS.md` | `>=22.22.3` | `>=26.0.0` |
   | `DOCS/CI_CHECKS.md` prose and snippets | `node:24-alpine` | 
`node:26-alpine` |
   
   The digest is the current `node:26-alpine` manifest-list digest, read from 
the registry. Pinning by digest is deliberate here and the Dockerfile explains 
why, so the tag stays in the comment for a human to read.
   
   On `engines.node`: npm treats a mismatch as a **warning**, not an error, and 
there is no `.npmrc` setting `engine-strict`, so a contributor still on 22 or 
24 is told rather than blocked. Worth knowing before merge, since it is the one 
change that touches everyone's console.
   
   ## Verification
   
   Not inferred from the version string — run in the image this pins, 
reproducing the `offline-build` job step for step:
   
   ```
   node --version  →  v26.13.0
   npm --version   →  11.20.0
   npm ci                                    → 704 packages
   npm run build -- --configuration production   (--network none)  → exit 0
   ```
   
   Both steps ran inside `node:26-alpine@sha256:c6ad9e9c…` against an isolated 
worktree, so the install resolved musl-native optional dependencies in the same 
environment the build then used — the reason `ci.yml` installs inside the 
container rather than on the runner. The build's only warning is the 
pre-existing `header.component.ts` style budget, unchanged by this.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to