Updating @opentelemetry dependencies #3248
-
Hello 👋 I was looking over both the compatibility matrix and the versioning and stability documents and was looking to get clarification/guidance around updating open telemetry dependencies. We have an internal tracing package that has a number of open telemetry packages listed as
But the version ranges we set for these peers are pretty loose, allowing for some consuming apps to end up having
The versioning and stability document had me thinking this should be fine, but the compatibility matrix and the mess of transitive dependencies in such an app has me thinking otherwise. Should I be interpreting the compatibility matrix to mean that we should not be mixing version ranges of the package types (such as using 0.31.x experimental packages with 1.6.x core packages)? I guess I'm ultimately wondering if we should tighten down our peers to only allow for patches and make sure apps are following the compatibility matrix such that any updates to the open telemetry dependencies are 1) done in lock step and 2) align with a row in the matrix. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
It depends a bit on which packages you use. In some cases it's don't care in others its problematic.
One more issue regarding use of ranges is that some packages are GA and others are experimental. NPM acts different for 0.x range:
Therefore pinning experimental and using ~ for Core is likely a good choice for stability. The really hard task is once packages from other repos are used (incl. opentelemetry-js-contrib) as they have their own release cycle and dependency management and I'm not aware of any table to help. |
Beta Was this translation helpful? Give feedback.
It depends a bit on which packages you use. In some cases it's don't care in others its problematic.
Two examples:
@opentelemetry/instrumentation@0.31.0
This depends on
"@opentelemetry/api-metrics": "0.31.0"
and peer depends on"@opentelemetry/api": "^1.0.0"
and transitive to"@opentelemetry/api": "^1.0.0"
Therefore this fits fine with 1.6.0 Core and 1.2.0 API and should work
@opentelemetry/sdk-node@0.31.0
This depends on e.g.
"@opentelemetry/sdk-trace-base": "1.5.0"
(and more pinned 1.5.0 versions)Clearly this is problematic and likely wont work well
One more issue regarding use of ranges is that some packages are GA and others are experimental. NPM acts different for …