Skip to content

P1: Upgrade to graphql-yoga 5 and Node 22 LTS (#176)#194

Open
dkijania wants to merge 1 commit into
mainfrom
feat/yoga5-node22
Open

P1: Upgrade to graphql-yoga 5 and Node 22 LTS (#176)#194
dkijania wants to merge 1 commit into
mainfrom
feat/yoga5-node22

Conversation

@dkijania

Copy link
Copy Markdown
Contributor

What & why

Part of the production-readiness epic (#163). Closes #176.

Key server deps were a major behind. This brings them current:

  • graphql-yoga 4 → 5
  • @envelop/core 4 → 5, @envelop/graphql-jit 6 → 11, @envelop/disable-introspection 5 → 9, @envelop/opentelemetry 5 → 9
  • Node 20 → 22 LTS across the Dockerfile, Volta pin, and the lint / unit-test / publish / smoke-load workflows

Code impact

Minimal — a single targeted cast: @envelop/opentelemetry@9 types its provider argument against a duplicate @opentelemetry/api copy, so provider is cast to the exact parameter type useOpenTelemetry expects. Everything else compiled unchanged.

Verification

  • npm run build — clean
  • npm run test:unit — all pass
  • npm run lint / npx prettier --debug-check . — clean
  • Built the node:22 image locally — builds and runs v22.23.1
  • (The lightnet Run-Tests + Docker build-and-deploy in CI are the full integration proof.)

Follow-up (not in this PR)

The OpenTelemetry SDK is intentionally not bumped — modern OTel drops the Jaeger exporter for OTLP, so clearing the remaining @opentelemetry/* audit highs is a separate Jaeger→OTLP migration. With Yoga on 5, the graphql-armor meta package (#164 currently uses the individual sub-plugins due to the old envelop-4 peer) could also be revisited.

🤖 Generated with Claude Code

Bring the server stack onto current majors:

- graphql-yoga 4 → 5, @envelop/core 4 → 5, @envelop/graphql-jit 6 → 11,
  @envelop/disable-introspection 5 → 9, @envelop/opentelemetry 5 → 9.
- Node 20 → 22 LTS across the Dockerfile, Volta pin, and the lint / unit-test /
  publish / smoke-load workflows.

The only code change required is a targeted cast where useOpenTelemetry now types
its provider argument against a duplicate @opentelemetry/api copy; the cast
targets the exact expected parameter type. Build, unit tests, lint, and prettier
all pass; the node:22 image builds and runs v22.x locally.

Note: the OpenTelemetry SDK is intentionally not bumped here — the modern OTel
packages drop the Jaeger exporter in favour of OTLP, so clearing the remaining
@opentelemetry/* audit advisories is a separate Jaeger→OTLP migration.

Closes #176.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QSuak9smCHbp4N17xjjLF6
@dkijania dkijania added production-readiness Work toward making the API production-ready / publicly available P1 Strongly recommended before GA labels Jun 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P1 Strongly recommended before GA production-readiness Work toward making the API production-ready / publicly available

Projects

None yet

Development

Successfully merging this pull request may close these issues.

P1: Dependency upgrades — graphql-yoga 4→5, Node 20→22 LTS

1 participant