-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Versioning question: WithTLSConfig method removed between versions 1.11.1 and 1.11.2 #3548
Comments
Your link is to a type in an internal package. We follow the Go pattern here regarding internal packages, they are not included in our stability guarantees and are intended to only be used internal to the project. Both exported options to configure TLS still remain available and backwards compatible12. I would recommend you use those as they are covered by our stability guarantees and we ensure their use remains backwards compatible across minor and patch versions. Footnotes |
I believe this was still a breaking change--updating to a new version of Consider the following steps in some external module.
Do you intend to require your users to update every go.opentelemetry.io module every time they update any of the modules so they can avoid breaking changes? EDIT: Thinking more about this, if deleting exported methods from internal packages used by other modules is a practice you want to continue, perhaps you could retract versions in the other affected modules. I'm not sure when your users would be alerted immediately, but they'd be more likely to find out about the problematic versions. |
@MrAlias, would you reconsider this one? Current breaking in exactly the way described above. |
Breaking for me |
Unfortunately (for the users), OTel Go shares internal packages between modules which causes problems like described. Because of this, currently, OTel Go packages are compatible only between the versions that were released from the same commit. E.g. users should only use We could address the problem e.g. by using "code generation" to "copy/paste" the common code that is shared between modules. However, it is not something that we will address in timely manner. But maybe I am wrong and someone from this thread has time to contribute and create PR. 😉 For now I do not think we can do anything more than describing this inconvenience in |
Yes, I think the underlying problem is that we have dependencies on the internal package of different modules. To that effort, I created a script to show where we have created these dependencies. |
Until OTEL has the generators described in #3548 (comment) (or a different approach), what do you think about a policy of releasing a major version whenever there is a breaking-to-other-OTEL-modules change in an internal directory? I've been wracking my brain on this for a couple of weeks, and I think a major-on-internal-breaks is the only policy that keeps your integrators from random breaks, even though it is some pain for both OTEL and integrators. (As a "bonus", the policy may discourage those internally breaking changes due to the pain of a major release and the many import changes that come along with it.) |
I do not think it is worth going that path. It would be a big burden for most of the users that do not have this problem as they will need to update import path (they would need to add the major version suffix). Also I do not believe we did this intentionally and we currently do not detect internal breaking changes...
Assigning to myself. I will start working on it in near future. |
Awesome. Thanks! |
I think this issue can be split into at least 2 issues:
In the beginning, I will try to make a PoC for the first one. |
I created a "parent" issue #3846 that could address this bug for future releases. |
remove `buf` in tools that create an incompatibility with open telemetry in kubo (yes it's really anoying) see: open-telemetry/opentelemetry-go#3548 Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com>
remove `buf` in tools that create an incompatibility with open telemetry in kubo (yes it's really anoying) see: open-telemetry/opentelemetry-go#3548 Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com>
remove `buf` in tools that create an incompatibility with open telemetry in kubo (yes it's really anoying) see: open-telemetry/opentelemetry-go#3548 Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com>
Description
A public method https://github.com/open-telemetry/opentelemetry-go/blob/v1.11.1/exporters/otlp/internal/envconfig/envconfig.go#L94 was removed between 1.11.1 and 1.11.2. Due to updates to our project's dependencies the result was the following indirect requires:
This results in the build breaking since otlptrace 1.11.1 uses envconfig.WithTLSConfig from otel which is no longer there in 1.11.2.
Is the general intention that minor/patch versions should be backwards compatible and this instance was an error, or should we ensure that we keep all the versions of the opentel dependencies in a project on the same minor/patch versions?
The text was updated successfully, but these errors were encountered: