Skip to content

Node 24#355

Draft
rcantin-w wants to merge 5 commits intomainfrom
node-24
Draft

Node 24#355
rcantin-w wants to merge 5 commits intomainfrom
node-24

Conversation

@rcantin-w
Copy link
Contributor

@rcantin-w rcantin-w commented Feb 26, 2026

What does this change?

Upgrade everything to Node 24.
I don't know if it's a bad idea to do it all in one go but as they use a shared tsconfig file, I thought I'd give it a try. (Edit: and it looks like we'd done it this way for Node 20)

I locked them to 24.13.0 to match our local version.

How to test

Test each service

cd api && rm -rf node_modules && yarn cache clean && yarn install && yarn test
cd ../pipeline && rm -rf node_modules && yarn cache clean && yarn install && yarn test
cd ../unpublisher && rm -rf node_modules && yarn cache clean && yarn install && yarn test

Webhook

rm -rf node_modules && rm yarn.lock && yarn
cd webhook && yarn test (tests pass)
cd .. && docker build -f webhook/Dockerfile -t webhook:test . (check it builds)
docker run --rm webhook:test node --version (check it's v24)
docker rmi webhook:test (remove the testing image)

tooling.Dockerfile

docker compose build tooling
docker compose run --rm tooling yarn install --frozen-lockfile
docker compose run --rm tooling bash -c "yarn install --frozen-lockfile && yarn workspace @weco/content-pipeline run package"

Infrastructure

cd infrastructure && terraform init (you might need terraform init -upgrade && terraform get -update)
terraform plan shouldn't show unexpected changes.

At the moment I can see things I'm not sure about so would need someone a bit more in the know.

How can we measure success?

Up to date and aligned everywhere

Have we considered potential risks?

I mean, could be risky, and then we revert.

Copy link
Contributor

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

This PR updates the repository’s Node/TypeScript configuration and deployment tooling to target Node 24 across local dev, CI, Docker, and AWS Lambda infrastructure.

Changes:

  • Bump Node-related TypeScript configs/types to Node 24 (@tsconfig/node24, @types/node), and update shared tsconfig extends.
  • Update Docker base images and esbuild targets from Node 20 to Node 24 for the Lambda packages.
  • Update Terraform Lambda runtimes from nodejs20.x to nodejs24.x, plus CI Node version and local .nvmrc.

Reviewed changes

Copilot reviewed 23 out of 24 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
yarn.lock Lockfile updates reflecting Node 24 tsconfig/types and dependency graph changes.
webhook/package.sh Updates esbuild target to Node 24.
webhook/package.json Switches dev deps to @tsconfig/node24 and @types/node v24 range.
webhook/Dockerfile Updates build image from Node 20 to Node 24.
unpublisher/package.sh Updates esbuild target to Node 24.
unpublisher/package.json Switches dev deps to @tsconfig/node24 and @types/node v24 range.
unpublisher/Dockerfile Updates build image from Node 20 to Node 24.
pipeline/package.sh Updates esbuild target to Node 24.
pipeline/package.json Switches dev deps to @tsconfig/node24 and @types/node v24 range.
pipeline/Dockerfile Updates build image from Node 20 to Node 24.
tsconfig.base.json Base TS config now extends Node 24 defaults.
common/tsconfig.json Common package TS config now extends Node 24 defaults.
api/package.json Aligns @types/node dev dependency to the new v24 range.
package.json Removes Node 20 tsconfig and retains Node 24 tsconfig at the workspace root.
tooling.Dockerfile Updates tooling container base image to Node 24.
infrastructure/prismic-snapshots/lambda_snapshot.tf Updates Lambda runtime to nodejs24.x.
infrastructure/prismic-snapshots/lambda_backup_trigger.tf Updates Lambda runtime to nodejs24.x.
infrastructure/prismic-snapshots/lambda_backup_download.tf Updates Lambda runtime to nodejs24.x.
infrastructure/pipeline_stack/unpublisher_lambda.tf Updates Lambda runtime to nodejs24.x.
infrastructure/pipeline_stack/pipeline_lambda.tf Updates Lambda runtime to nodejs24.x.
.nvmrc Updates local dev Node version to v24.13.0.
.github/workflows/tsc.yml Updates CI TypeScript job to run on Node 24.
.github/dependabot.yml Removes ignores previously blocking Node-dependent updates.
README.md Updates the README’s description of Content API endpoints/scope.

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

# Content API

These are the services that back our [Content API](https://developers.wellcomecollection.org/api/content). The Content API exposes our non-catalogue content: at the moment, that's just articles, but in the future it might include endpoints for events, exhibitions, and functional content.
These are the services that back our [Content API](https://developers.wellcomecollection.org/api/content). The Content API exposes our non-catalogue content. There are endpoints for `articles`, `events`, and `all` (where `all` includes articles, books, events, exhibitions, exhibition texts, exhibition highlight tours (BSL), exhibition highlight tours (audio), pages, projects, seasons, and visual stories).
Copy link

Copilot AI Feb 26, 2026

Choose a reason for hiding this comment

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

This README change is not related to the PR title (“Node 24”) and the PR description doesn’t mention documentation updates. Consider moving this README update to a separate docs PR, or update the PR description/title to reflect that it also changes the documented API surface.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This was a change we did (rightly) but reverted when we reverted to Node 22, so readding it.

Copy link
Contributor

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

Copilot reviewed 28 out of 30 changed files in this pull request and generated no new comments.

Files not reviewed (1)
  • infrastructure/.terraform.lock.hcl: Language not supported

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

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.

2 participants