opentelemetry-js
opentelemetry-js copied to clipboard
Versioning of `api-logs`, `instrumentation` and `sdk-logs` with 0.x.x version causes dependency resolution issues in client projects
What happened?
Steps to Reproduce
- Install
@vercel/otelpackage. - Execute
npm cito install dependencies exactly as defined in the lockfile. - Run the build.
Expected Result
The build should work.
Actual Result
It sometimes causes an issue during local development, and sometimes during the build, see logs below
Additional Details
The problem are semantic version ranges in combination with versions starting with 0.x.x.
OpenTelemetry Setup Code
No response
package.json
No response
Relevant log output
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving: @vercel/[email protected]
npm ERR! Found: @opentelemetry/[email protected]
npm ERR! node_modules/@opentelemetry/api
npm ERR! peer @opentelemetry/api@">=1.0.0 <1.9.0" from @opentelemetry/[email protected]
npm ERR! node_modules/@opentelemetry/context-async-hooks
npm ERR! @opentelemetry/context-async-hooks@"^1.23.0" from @sentry/[email protected]
npm ERR! node_modules/@sentry/node
npm ERR! @sentry/node@"8.2.1" from @sentry/[email protected]
npm ERR! node_modules/@sentry/nextjs
npm ERR! @sentry/nextjs@"8.2.1" from the root project
npm ERR! peer @opentelemetry/api@">=1.0.0 <1.9.0" from @opentelemetry/[email protected]
npm ERR! node_modules/@opentelemetry/core
npm ERR! @opentelemetry/core@"^1.8.0" from @opentelemetry/instrumentation-connect@0.[36](https://gitlab.willhaben.at/willhaben/tribe/odin/beast/-/jobs/3036231#L36).0
npm ERR! node_modules/@opentelemetry/instrumentation-connect
npm ERR! @opentelemetry/instrumentation-connect@"0.36.0" from @sentry/[email protected]
npm ERR! node_modules/@sentry/node
npm ERR! @sentry/node@"8.2.1" from @sentry/[email protected]
npm ERR! node_modules/@sentry/nextjs
npm ERR! @opentelemetry/core@"^1.8.0" from @opentelemetry/instrumentation-express@0.[38](https://gitlab.willhaben.at/willhaben/tribe/odin/beast/-/jobs/3036231#L38).0
npm ERR! node_modules/@opentelemetry/instrumentation-express
npm ERR! @opentelemetry/instrumentation-express@"0.38.0" from @sentry/[email protected]
npm ERR! node_modules/@sentry/node
npm ERR! @sentry/node@"8.2.1" from @sentry/[email protected]
npm ERR! node_modules/@sentry/nextjs
npm ERR! 12 more (@opentelemetry/instrumentation-fastify, ...)
npm ERR! 49 more (@opentelemetry/instrumentation-connect, ...)
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer @opentelemetry/sdk-logs@"^0.[46](https://gitlab.willhaben.at/willhaben/tribe/odin/beast/-/jobs/3036231#L46).0" from @vercel/[email protected]
npm ERR! node_modules/@vercel/otel
npm ERR! @vercel/otel@"1.8.3" from the root project
npm ERR!
npm ERR! Conflicting peer dependency: @opentelemetry/[email protected]
npm ERR! node_modules/@opentelemetry/api
npm ERR! peer @opentelemetry/api@">=1.4.0 <1.8.0" from @opentelemetry/[email protected]
npm ERR! node_modules/@opentelemetry/sdk-logs
npm ERR! peer @opentelemetry/sdk-logs@"^0.46.0" from @vercel/[email protected]
npm ERR! node_modules/@vercel/otel
npm ERR! @vercel/otel@"1.8.3" from the root project
Hmm, I think we'd need a reproducer for us to determine if this is actually violating SemVer. :thinking:
When I try it locally, simply installing @vercel/otel does not fail.
Note that 0.x packages are to be considered experimental by SemVer and that every minor bump in that stage should be considered like a major bump for stable (1.x) packages.
See https://github.com/open-telemetry/opentelemetry-js/issues/4548 .
It looks like this specific issue is resolved for the vercel/otel package, and we are still working toward documenting and better enabling compatibility between API and SDK versions. See related issue https://github.com/open-telemetry/opentelemetry-js/issues/4832. I'm going to close this out as it's already being tracked elsewhere, but let me know if I'm missing something on this.