-
Notifications
You must be signed in to change notification settings - Fork 517
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: update core dependencies stable ^1.3.1 experimental ^0.29.2 #1042
Conversation
"@opentelemetry/sdk-trace-node": "^1.0.0", | ||
"@opentelemetry/resources": "^1.0.0", | ||
"@opentelemetry/sdk-trace-base": "^1.0.0", | ||
"@opentelemetry/sdk-trace-node": "1.2.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why should we pin an old version?
Such pinning caused a lot problems in previous releases that new SDK was unusable with instrumentations from contrib.
And if pinning is the way to go - why not @opentelemetry/instrumentation
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why should we pin an old version?
That is not an old version, but the version that the entire monorepo is aligned to currently in master.
The CI fails because we mix versions 1.2.0
and 1.3.0
since some of them are pinned in instrumentation dev dep, and others are introduced via transitive dependency on the caret range (like in the fix mentioned above).
I think we should thrive to have the same version everywhere when building and testing contrib.
Such pinning caused a lot problems in previous releases that new SDK was unusable with instrumentations from contrib.
I only changed the test-utils package which is a dev dependency, so to my understanding, it should not affect any usage for users which consume the released packages.
And if pinning is the way to go - why not @opentelemetry/instrumentation
Since instrumentations depend on it with caret, so I wanted to be align to make sure we pull the same version everywhere
Apparently, that did not fix the issue yet.
I am not sure what should be the right fix here 🤷♂️ @Flarna do you have any suggestions? |
What about using caret versions for Another option would be to stop trying to be compatible across versions and pin again everything and release everything once a new SDK was made. But as far as I remember the target was to avoid this. |
@Flarna - can you understand why the build is not happy:
I remember it was fixed by @dyladan after releasing |
ok, got catched by a similar issue by myself now but not bound to Latest contrib and latest core packages are not compatible because caret ranges for GA packages allow minor updates but only patch for experimental. As a result contrib instrumentations pick |
I think we have to update all packages here to depend on We should be aware that a semver minor change in experimental (0.x.y range) is similar for NPM as a semver major in GA ranges. |
That makes sense. But still what I am missing is why ts complains about "Types have separate declarations of a private property '_spanContext'." I remember dan refactored the code to use only interfaces and not concrete types. |
As far as I know typescript doesn't allow to mix classes from two instances of the same module (even if they have the same version). Only interfaces can match but Most likely the reason is that an |
I think only |
Updated the PR to use 1.3.0 and 0.29.0. Hope that will not cause any new issues |
Now
I guess there were some changes in the metrics apis which need to be applied, but I am not very familiar with the metrics 😕 |
Codecov Report
@@ Coverage Diff @@
## main #1042 +/- ##
=======================================
Coverage 95.91% 95.91%
=======================================
Files 13 13
Lines 856 856
Branches 178 178
=======================================
Hits 821 821
Misses 35 35 |
I updated all versions and fixed the built. node tests are green, but browser tests fails because:
I have little experience with browser workflows. Any ideas on how to resolve this? |
With the release of open-telemetry/opentelemetry-js#3013 this should now be fine? |
Don't think so because the actual fix in open-telemetry/opentelemetry-js#3004 changed |
…emetry-js-contrib into test-utils-pin-versions
CI is finally green ✅ |
BEGIN_COMMIT_OVERRIDE
feat: update core dependencies stable ^1.3.1 experimental ^0.29.2
END_COMMIT_OVERRIDE
Which problem is this PR solving?
Update dependencies and dev dependencies to use stable
^1.3.1
and experimental^0.29.2
.The caret is added to dev dependencies since it already pulls the latest version via transitive dependencies on other core packages. If the version is pinned, we end up with multiple core package versions which might not always be compatible. This fix should guarantee that we use the same version everywhere, which was the cause for CI failure in the past few releases.
Since this is a delicate subject, I would appreciate a thorough review and be sure that everyone interested is comfortable with this change.
Short description of the changes