Skip to content

build: standardize on Node 26 - #272

Merged
LouisHaftmann merged 3 commits into
devfrom
build/node-26
Oct 1, 2026
Merged

LouisHaftmann merged 3 commits into
devfrom
build/node-26

Conversation

@LouisHaftmann

@LouisHaftmann LouisHaftmann commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

📝 Summary

The server and Docker images still targeted Node 25, while release automation selected the latest LTS independently. Use Node 26 throughout so development, CI, releases, and both image variants share the same major version. Replace the unavailable MinIO test image with a pinned RustFS release so fresh CI runners can start the S3 tests.

📦 Changes

  • Require Node 26 and refresh its type definitions and lockfile.
  • Build standard and caged images on Node 26.
  • Read the release workflow's Node version from package.json, matching CI.
  • Use rustfs/rustfs:1.0.0-glibc for the S3 test fixture and local Compose service, creating buckets through the S3 API.

✅ Verification

  • pnpm run lint:ci: passed on Node 26.10.0.
  • pnpm run type-check: passed on Node 26.10.0.
  • pnpm run test:matrix: all nine combinations passed on Node 26.10.0 before the fixture change, using the locally cached MinIO image.
  • VITEST_DB_DRIVER=sqlite VITEST_STORAGE_DRIVER=s3 pnpm run test:run: 45 passed, 2 backend-specific skips with RustFS 1.0.0-glibc.
  • Anonymous docker pull rustfs/rustfs:1.0.0-glibc and docker compose config --quiet: passed.
  • Isolated Compose startup: automatic bucket creation, authenticated bucket access, and console health passed.
  • docker build --pull -t cache-server-node26:verify -: passed using a context containing the tracked working-tree files, including the production install and build.
  • docker build --pull --build-arg BASE_IMAGE=platformatic/node-caged:26-alpine -t cache-server-node26-caged:verify -: passed with the same context.
  • Both amd64 images passed HTTP health and database-backed metrics checks. Standard image ran Node 26.10.0 with SQLite; caged ran Node 26.8.2 with PostgreSQL, since caged already disallows SQLite.

🔍 Reviews

Review Found Fixed
Manual diff review 0 0

⚠️ Needs attention

  • Node 26 is currently in the Current release phase.
  • The test dependency ssh2 cannot compile its optional crypto accelerator on Node 26. Its installer succeeds with the JavaScript fallback.

Fresh CI runners cannot pull the original MinIO images. Use a pinned release of the maintained Silo fork for the S3 test fixture and local Compose service.
Pin the stable glibc image, create test buckets through S3, and initialize the Compose bucket after startup.
@LouisHaftmann
LouisHaftmann merged commit c87603b into dev Oct 1, 2026
32 of 36 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.

1 participant