Skip to content

Bump to node 24#236

Merged
sfreeman422 merged 3 commits intomasterfrom
feature/bump-node
Apr 10, 2026
Merged

Bump to node 24#236
sfreeman422 merged 3 commits intomasterfrom
feature/bump-node

Conversation

@sfreeman422
Copy link
Copy Markdown
Collaborator

@sfreeman422 sfreeman422 commented Apr 9, 2026

This pull request upgrades the project to require Node.js version 24.14.1 across all environments, replacing the previous Node.js 20.x requirement. The update touches CI/CD workflows, Dockerfiles, documentation, and package configurations to ensure consistency and compatibility with Node.js 24.14.1.

Node.js version upgrade

  • Updated Node.js version to 24.14.1 in all GitHub Actions workflows, including CI, deploy, and setup steps (.github/workflows/ci.yml, .github/workflows/deploy.yml, .github/workflows/deploy-frontend.yml, .github/actions/setup/action.yml). [1] [2] [3] [4] [5]
  • Changed the .nvmrc file to specify 24.14.1 as the required Node.js version.
  • Updated the Docker build and runtime images in packages/backend/Dockerfile to use Node.js 24.14.1-based images. [1] [2]

Configuration and documentation updates

  • Added engines fields to package.json files in the root, backend, and frontend to enforce Node.js >=24.14.1 <25. [1] [2] [3]
  • Updated the mocker/README.md to reflect the new Node.js version requirement.
  • Changed the esbuild minify script in packages/backend/package.json to target Node.js 24.

These changes ensure the project is fully aligned on Node.js 24.14.1, improving compatibility and leveraging the latest LTS features.

Copilot AI review requested due to automatic review settings April 9, 2026 21:46
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the repo’s development/build/runtime environment to Node.js 24 (including local tooling, CI, and Docker) to standardize on the latest LTS.

Changes:

  • Bumped Node version references across docs, .nvmrc, GitHub Actions workflows, and package.json engines.
  • Updated backend Docker images and esbuild target to Node 24.
  • Regenerated package-lock.json after reinstall.

Reviewed changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
README.md Updates documented Node prerequisite to 24.14.1.
.nvmrc Pins local Node version to 24.14.1.
package.json Adds root engines.node constraint for Node 24.
package-lock.json Reflects lockfile updates after reinstall + engines propagation.
packages/frontend/package.json Adds frontend engines.node constraint for Node 24.
packages/backend/package.json Adds backend engines.node constraint and updates esbuild target to node24.
packages/backend/Dockerfile Moves build/release images to Node 24 variants.
.github/workflows/ci.yml Runs CI on Node 24.14.1.
.github/workflows/deploy.yml Runs backend deploy workflow on Node 24.14.1.
.github/workflows/deploy-frontend.yml Runs frontend deploy workflow on Node 24.14.1.
.github/actions/setup/action.yml Updates shared composite action to set up Node 24.14.1.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/backend/Dockerfile Outdated
# PREVIOUS_RELEASE_SHA="$(git rev-parse HEAD^ 2>/dev/null || true)" \
# node packages/backend/scripts/write-release-metadata.js packages/backend/release-metadata.json
FROM node:20-alpine AS build
FROM node:24.14.1-alpine3.23 AS build
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build stage uses an Alpine image but the release stage uses a Debian-based distroless image, and the Dockerfile copies node_modules from build to release. With native deps like sharp, this can install musl binaries in the build stage that won’t load on the Debian (glibc) runtime image. Align the build and runtime OS (e.g., use a Debian-based Node image for the build stage, or use a matching runtime base) so native modules are built/installed for the same libc.

Suggested change
FROM node:24.14.1-alpine3.23 AS build
FROM node:24.14.1-bookworm-slim AS build

Copilot uses AI. Check for mistakes.
Comment on lines +6 to +8
"engines": {
"node": ">=24.14.1 <25"
},
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

engines.node was bumped to Node 24, but @types/node is still pinned to a 20.x version in this package. This can cause type mismatches/missing Node 24 APIs in TS builds; update @types/node to a 24.x-compatible version (and regenerate the lockfile) to keep types aligned with the runtime target.

Copilot uses AI. Check for mistakes.
Comment thread README.md Outdated
### Prerequisites

- **Node.js** 20+ (for backend and frontend development)
- **Node.js** 24.14.1 (current latest 24.x LTS at time of update, for backend and frontend development)
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This prerequisite line hard-codes a specific patch version and also claims it is the “current latest” LTS, which will become incorrect over time. Consider wording this as “Node.js 24 LTS (>=24.14.1)” (or similar) so the README stays accurate without needing frequent updates.

Suggested change
- **Node.js** 24.14.1 (current latest 24.x LTS at time of update, for backend and frontend development)
- **Node.js** 24 LTS (>=24.14.1, for backend and frontend development)

Copilot uses AI. Check for mistakes.
Comment thread .github/actions/setup/action.yml Outdated
- uses: actions/setup-node@v4
with:
node-version: '20'
node-version: '24.14.1'
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Node version is now duplicated across several workflows, this composite action, .nvmrc, and package.json engines. To reduce drift, consider switching actions/setup-node to node-version-file: '.nvmrc' (or another single source of truth) and referencing that consistently across workflows/actions.

Suggested change
node-version: '24.14.1'
node-version-file: '.nvmrc'

Copilot uses AI. Check for mistakes.
@sfreeman422
Copy link
Copy Markdown
Collaborator Author

@copilot DO IT ALL

Copy link
Copy Markdown

Copilot AI commented Apr 9, 2026

@copilot DO IT ALL

Done in commit 45afbd8. All 4 suggestions applied:

  • Dockerfile: build stage now uses node:24.14.1-bookworm-slim to match the Debian-based distroless runtime (fixes libc mismatch for native deps like sharp)
  • @types/node: bumped from ^20.19.37^24.0.0 (resolved to 24.12.2), lockfile regenerated
  • README.md: prerequisite reworded to "Node.js 24 LTS (>=24.14.1, ...)" to avoid going stale
  • action.yml: switched to node-version-file: '.nvmrc' as the single source of truth for the Node version

@sfreeman422 sfreeman422 merged commit b62ebd3 into master Apr 10, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants