opentelemetry-js icon indicating copy to clipboard operation
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

Open fabb opened this issue 1 year ago • 2 comments
trafficstars

What happened?

Steps to Reproduce

  • Install @vercel/otel package.
  • Execute npm ci to 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

fabb avatar May 28 '24 09:05 fabb

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.

pichlermarc avatar Jun 11 '24 12:06 pichlermarc

See https://github.com/open-telemetry/opentelemetry-js/issues/4548 .

jaydenseric avatar Jun 12 '24 00:06 jaydenseric

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.

JamieDanielson avatar Jul 24 '24 16:07 JamieDanielson