-
Notifications
You must be signed in to change notification settings - Fork 264
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
Provide stronger symbolic stability guarantees #432
Provide stronger symbolic stability guarantees #432
Conversation
@bogdandrutu @Aneurysm9 @dyladan @MrAlias @carlosalberto @ocelotl @aabmass @jsuereth please review. |
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.
You seem to try to offer "generated" code compatibility, which may be fine, but I think we should agree on that if this is what we want.
Yes. I updated the PR description to make the goal clear. |
I support this definition. I believe it reflects the consensus resulting from discussion on #400 and also what the user community expects from OTLP. |
My opinion here is that this extra set of stability restrictions / guarantees on ourselves just alleviates downstream consumption friction. I don't think we need to allow ourselves extra flexibility here that seems to be contested. I do agree that generated code should not be exposed as stable, but instead hidden behind interfaces. HOwever, that's a downstream concern we shouldn't enforce here. I'm in favor of this change and would approve if it wasn't a Draft. |
Here is the PR that only adds guarantees necessary for OTLP/JSON: #435 |
The guarantees mostly mirror the proposal for OTLP (open-telemetry/opentelemetry-proto#432), the primary difference being that OpAMP has no gRPC services defined and does not need any guarantees for service definitions.
The guarantees mostly mirror the proposal for OTLP (open-telemetry/opentelemetry-proto#432), the primary difference being that OpAMP has no gRPC services defined and does not need any guarantees for service definitions. Resolves open-telemetry#134
This PR explicitly lists the additive changes allowed and adds a requirement that such additive changes must be accompanied by interoperability explanation when necessary. This is a subset of open-telemetry#432 that contains other guarantees that we did not yet agree to. I believe this particular subset is necessary regardless of what we decide about open-telemetry#432.
This PR explicitly lists the additive changes allowed and adds a requirement that such additive changes must be accompanied by interoperability explanation when necessary. This is a subset of #432 that contains other guarantees that we did not yet agree to. I believe this particular subset is necessary regardless of what we decide about #432.
bf866ac
to
217a212
Compare
217a212
to
9cba87a
Compare
@open-telemetry/specs-approvers I updated this PR to make it clear what this is about: it provides stronger symbolic stability guarantees (without making any claims about the behavior of the code generator). I think this is one the last major remaining issues that we need to agree on before we can mark this repo 1.0. Please review and comment. Particularly I need opinions whether you think we should provide the stronger symbolic guarantees or not. If we disagree with the idea then the whole PR is pointless and should be discarded. Please bring arguments in favour of your position to help make a decision. |
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.
While this strictness isn't necessary, it avoid a serious of churn that I think will be beneficial to the community. I'm in favor of limiting ourselves this way.
The TC re-reviewed this and the final outcome was to go ahead. Thanks for the reviews and sorry for the delay! |
We merged the open-telemetry#432 without clarifying when exactly the guarantees start applying. The intent was that the guarantees are needed for 1.0 release but we didn't make this explicit. We are now making this explicit and until 1.0 released we should be free to fix the remaining known issues listed here: open-telemetry#456 Once 1.0 release is made we can remove the [from 1.0.0] labels from the README.md.
A follow-up PR to make it clear that symbolic guarantees go into effect only when 1.0 is released: #467 |
We merged the #432 without clarifying when exactly the guarantees start applying. The intent was that the guarantees are needed for 1.0 release but we didn't make this explicit. We are now making this explicit and until 1.0 released we should be free to fix the remaining known issues listed here: #456 Once 1.0 release is made we can remove the [from 1.0.0] labels from the README.md.
The guarantees mostly mirror the proposal for OTLP (open-telemetry/opentelemetry-proto#432), the primary difference being that OpAMP has no gRPC services defined and does not need any guarantees for service definitions. Resolves open-telemetry#134
The guarantees mostly mirror the proposal for OTLP (open-telemetry/opentelemetry-proto#432), the primary difference being that OpAMP has no gRPC services defined and does not need any guarantees for service definitions. Resolves #134
This PR explicitly lists the additive changes allowed and adds a requirement that such additive changes must be accompanied by interoperability explanation when necessary. This is a subset of open-telemetry#432 that contains other guarantees that we did not yet agree to. I believe this particular subset is necessary regardless of what we decide about open-telemetry#432.
…metry#467) We merged the open-telemetry#432 without clarifying when exactly the guarantees start applying. The intent was that the guarantees are needed for 1.0 release but we didn't make this explicit. We are now making this explicit and until 1.0 released we should be free to fix the remaining known issues listed here: open-telemetry#456 Once 1.0 release is made we can remove the [from 1.0.0] labels from the README.md.
This PR explicitly lists the additive changes allowed and adds a requirement that such additive changes must be accompanied by interoperability explanation when necessary. This is a subset of open-telemetry#432 that contains other guarantees that we did not yet agree to. I believe this particular subset is necessary regardless of what we decide about open-telemetry#432.
…metry#467) We merged the open-telemetry#432 without clarifying when exactly the guarantees start applying. The intent was that the guarantees are needed for 1.0 release but we didn't make this explicit. We are now making this explicit and until 1.0 released we should be free to fix the remaining known issues listed here: open-telemetry#456 Once 1.0 release is made we can remove the [from 1.0.0] labels from the README.md.
This PR explicitly lists the additive changes allowed and adds a requirement that such additive changes must be accompanied by interoperability explanation when necessary. This is a subset of open-telemetry#432 that contains other guarantees that we did not yet agree to. I believe this particular subset is necessary regardless of what we decide about open-telemetry#432.
…metry#467) We merged the open-telemetry#432 without clarifying when exactly the guarantees start applying. The intent was that the guarantees are needed for 1.0 release but we didn't make this explicit. We are now making this explicit and until 1.0 released we should be free to fix the remaining known issues listed here: open-telemetry#456 Once 1.0 release is made we can remove the [from 1.0.0] labels from the README.md.
This PR explicitly lists the additive changes allowed and adds a requirement that such additive changes must be accompanied by interoperability explanation when necessary. This is a subset of open-telemetry#432 that contains other guarantees that we did not yet agree to. I believe this particular subset is necessary regardless of what we decide about open-telemetry#432.
…metry#467) We merged the open-telemetry#432 without clarifying when exactly the guarantees start applying. The intent was that the guarantees are needed for 1.0 release but we didn't make this explicit. We are now making this explicit and until 1.0 released we should be free to fix the remaining known issues listed here: open-telemetry#456 Once 1.0 release is made we can remove the [from 1.0.0] labels from the README.md.
Resolves #400
What this PR aims to guarantee stronger backward compatibility of symbols in .proto files. This means that if the same generator is used then most likely the generated code will be backward compatible, i.e. upgrading to a newer version of generated code should not break the build of a codebase that consumes the generated code and should not change the behavior (applies both to senders and receivers).
We do not guarantee the behavior of the generator itself. The notice about this remains in our README.
I think this is the last major remaining issue that we need to agree on before we can mark this repo 1.0.
Please review and comment. Particularly I need opinions whether you think we should provide the stronger symbolic guarantees or not. If we disagree with the idea then the whole PR is pointless and should be discarded.
Please bring arguments in favour of your position to help make a decision.