Skip to content

Conversation

overbalance
Copy link
Contributor

@overbalance overbalance commented Sep 10, 2025

DRAFT

What this does

Upgrades TypeScript from 5.0.4 to 5.9.2 and hoists all build devDependencies to the root package.json.

  • Disk space saved: 58MB (7.4% reduction)
  • Package count: 349 fewer packages (12.2% reduction)

Key changes

TypeScript configuration

  • Changed module resolution from node16 to node/bundler (TS 5.9.2 requires file extensions with node16)
  • Added skipLibCheck: true to instrumentation-openai for @types/node compatibility issues

Test fixes

  • Updated karma configs to load plugins from root after dependency hoisting
  • Fixed webpack process polyfill path for ESM compatibility
  • Updated expect import syntax for socket.io tests
  • Fixed AWS SDK mock response Content-Length headers

Dependencies

  • All build devDependencies moved to root package.json
  • Added missing dependencies (formdata-node, etc.)
  • Removed unused jQuery dependencies

Package-specific changes

@opentelemetry/instrumentation-socket.io

  • Changed import * as expect to import expect (expect v29 uses default export)

@opentelemetry/instrumentation-dns

  • Added type annotations for mock resolver callbacks

@opentelemetry/instrumentation-aws-sdk

  • Fixed Bedrock mock response Content-Length headers
  • Added path mapping for semantic-conventions/incubating imports

@opentelemetry/instrumentation-openai

  • Added skipLibCheck: true for @types/node Buffer/ArrayBuffer incompatibilities
  • Added formdata-node dependency

@opentelemetry/resource-detector-gcp

  • Added .mocharc.json for ESM/TypeScript loader
  • Added missing json-bigint and google-logging-utils dependencies

Browser packages (propagator-aws-xray, propagator-instana, instrumentation-user-interaction, instrumentation-long-task)

  • Updated karma.conf.js to load plugins from root package.json

The changes are mostly mechanical fixes required by the TypeScript upgrade and dependency restructuring.

Copy link
Contributor

This package does not have an assigned component owner and is considered unmaintained. As such this package is in feature-freeze and this PR will be closed with 14 days unless a new owner or a sponsor (a member of @open-telemetry/javascript-approvers) for the feature is found. It is the responsibility of the author to find a sponsor for this feature.
Are you familiar with this package? Consider becoming a component owner.

@pichlermarc
Copy link
Member

FYI upgrading typescript is often a breaking change as the typescript project does not follow Semantic Versioning for the output it produces.

@overbalance overbalance force-pushed the overbalance/hoist-all-shared-deps branch 2 times, most recently from cec6ae8 to b162c62 Compare September 10, 2025 16:09
@overbalance overbalance force-pushed the overbalance/hoist-all-shared-deps branch from b162c62 to 7674f99 Compare September 10, 2025 18:25
@overbalance overbalance force-pushed the overbalance/hoist-all-shared-deps branch from 3587cee to 67d76fa Compare September 10, 2025 21:39
@overbalance
Copy link
Contributor Author

overbalance commented Sep 11, 2025

FYI upgrading typescript is often a breaking change as the typescript project does not follow Semantic Versioning for the output it produces.

For sure. I've been playing with the version number to see how far we can comfortably upgrade. It's whack-a-mole with this much code so I'm thinking we leave it at 5.0.4, and focus on consolidating the devdependencies.

@overbalance overbalance force-pushed the overbalance/hoist-all-shared-deps branch from 46d0c8a to dda7df9 Compare September 11, 2025 04:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pkg:auto-configuration-propagators pkg:auto-instrumentations-node pkg:auto-instrumentations-web pkg:host-metrics pkg:id-generator-aws-xray pkg:instrumentation-amqplib pkg:instrumentation-aws-lambda pkg:instrumentation-aws-sdk pkg:instrumentation-bunyan pkg:instrumentation-cassandra-driver pkg:instrumentation-connect pkg:instrumentation-cucumber pkg:instrumentation-dataloader pkg:instrumentation-dns pkg:instrumentation-document-load pkg:instrumentation-express pkg:instrumentation-fastify pkg:instrumentation-fs pkg:instrumentation-generic-pool pkg:instrumentation-graphql pkg:instrumentation-hapi pkg:instrumentation-ioredis pkg:instrumentation-kafkajs pkg:instrumentation-knex pkg:instrumentation-koa pkg:instrumentation-long-task pkg:instrumentation-lru-memoizer pkg:instrumentation-memcached pkg:instrumentation-mongodb pkg:instrumentation-mongoose pkg:instrumentation-mysql pkg:instrumentation-mysql2 pkg:instrumentation-nestjs-core pkg:instrumentation-net pkg:instrumentation-openai pkg:instrumentation-oracledb pkg:instrumentation-pg pkg:instrumentation-pino pkg:instrumentation-redis pkg:instrumentation-restify pkg:instrumentation-router pkg:instrumentation-runtime-node pkg:instrumentation-socket.io pkg:instrumentation-tedious pkg:instrumentation-undici pkg:instrumentation-user-interaction pkg:instrumentation-winston pkg:plugin-react-load pkg:propagation-utils pkg:propagator-aws-xray pkg:propagator-aws-xray-lambda pkg:propagator-instana pkg:propagator-ot-trace pkg:redis-common pkg:resource-detector-alibaba-cloud pkg:resource-detector-aws pkg:resource-detector-azure pkg:resource-detector-container pkg:resource-detector-gcp pkg:resource-detector-github pkg:resource-detector-instana pkg:sampler-aws-xray pkg:sql-common pkg:test-utils pkg-status:unmaintained:autoclose-scheduled pkg-status:unmaintained This package is unmaintained. Only bugfixes may be acceped until a new owner has been found.
Projects
None yet
Development

Successfully merging this pull request may close these issues.