-
Notifications
You must be signed in to change notification settings - Fork 812
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
API Breaking Change Postmortem #4142
Comments
I would like to point out that the versioning guidelines only specify that callers should not be broken and does not specifically state anything about third party SDK developers. The guidelines should be updated to state whether or not third party SDKs should be treated with the same stability guarantees as end-users. I consider the above proposed changes to be temporary until they are either codified in the official spec stability guidelines. |
If I remember correct we had already a discussion in this regard. SemVer minor in API tends to be breaking towards SDK because usually a new/enhanced API requires an implementation in SDK. Sure, there are cases where API just adds some wrapper/something new which works standalone (e.g. The OTel SDK hosted here uses a version range for exactly this reason see here. |
refs: #2769 |
The spec is being updated with more clarity around this situation open-telemetry/opentelemetry-specification#3695 Short version: an SDK implementation should expect that minor versions of the API may include new methods. Minor version stability is guaranteed for users but not implementers. Our existing practice of defining a maximum API level for a given SDK should continue and we should make it clear to third party SDKs that this is the case. |
Made an issue on |
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 14 days. |
This issue was closed because it has been stale for 14 days with no activity. |
Refs:
In version
1.5.0
of@opentelemetry/api
a change was released which was breaking for users ofdd-trace
. The change was reverted and1.6.0
was released with the fix.1.5.0
was deprecated in NPM with the note "Version 1.5.0 of @opentelemetry/api mistakenly contained a breaking change for some users. Please update to 1.6.0 or later."Span#recordException
was updated fromrecordException(exception, time)
to also allowrecordException(exception, attributes, time)
.dd-trace
, which implemented the originalSpan
interface, expected the second argument to betime
but after the change it was possible for it to beattributes
ortime
. The new third argument is ignored by an SDK which implements the old interface.This break does not affect users of the OpenTelemetry JS SDK because the SDK components which implement API interfaces specify a maximum API version. For example, the package
@opentelemetry/[email protected]
depends on@opentelemetry/api@>=1.0.0 <1.5.0
. This means that the release of@opentelemetry/[email protected]
is NOT automatically picked up by@opentelemetry/[email protected]
.dd-trace
depended on@opentelemetry/api@^1.0.0
which is satisfied by any1.x
version.The OTel JS authors were previously, mistakenly, under the assumption that API implementers would be expected to update when any minor change was made to the API. The versioning and stability guidelines of OpenTelemetry state (emphasis added):
Proposed Changes
/cc @ksstoneware
Maintainers assigned for visibility
The text was updated successfully, but these errors were encountered: