Skip to content
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.md] Reorganize and clarify compatibility guarantees #8812

Merged
merged 5 commits into from
Dec 11, 2023

Conversation

mx-psi
Copy link
Member

@mx-psi mx-psi commented Nov 7, 2023

Description: Reorganize VERSIONING.md, specify compatibility guarantees that have already been discussed and answer questions on #8002.

Three new guarantees in the document had already been discussed elsewhere:

Regarding the questions mentioned on #8002:

Does adding new validation rules mean a breaking change?

Generally, yes except when the configuration was already invalid (i.e. the Collector did not work properly with it).

Should we offer a "NewDefault...." for each config and say that the behavior of the config is stable only if initialized with NewDefault?

I did not add anything for this one. I think we should discuss it, but:

  • I don't think there is a sensible output for NewDefault... for all configurations (e.g. for confignet.TCPAddr, what would the default be?)
  • It seems to me that we should handle configuration validity through Validate, and not through NewDefault.... NewDefault may help but ultimately we need to verify through Validate.

Is adding new fields means breaking change? Let's assume someone "squash" the message into another message, then adding a field with same mapstruct value will be a breaking change, what do we do with that? What are the rules we follow.

This was already in this document, where we had decided that adding new fields was okay. I think it would be too stringent to bar us from adding new fields.

Link to tracking Issue: Fixes #8002

@mx-psi mx-psi requested review from a team and jpkrohling November 7, 2023 13:05
@mx-psi mx-psi added the Skip Changelog PRs that do not require a CHANGELOG.md entry label Nov 7, 2023
@mx-psi mx-psi requested a review from songy23 November 7, 2023 13:06
Copy link

codecov bot commented Nov 7, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (f3a241a) 91.57% compared to head (2ca687e) 91.57%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #8812   +/-   ##
=======================================
  Coverage   91.57%   91.57%           
=======================================
  Files         316      316           
  Lines       17147    17147           
=======================================
  Hits        15702    15702           
  Misses       1150     1150           
  Partials      295      295           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Member

@songy23 songy23 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

This PR was marked stale due to lack of activity. It will be closed in 14 days.

@github-actions github-actions bot added the Stale label Nov 24, 2023
@github-actions github-actions bot removed the Stale label Dec 6, 2023
Comment on lines +29 to +30
* **String representation**. The `String` method of any struct is intended to be human-readable and may change its output
in any way.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Unless otherwise specified in the documentation, the following may change in any way between minor versions:
* **String representation**. The `String` method of any struct is intended to be human-readable and may change its output
in any way.
* **Go version compatibility**. Removing support for an unsupported Go version is not considered a breaking change.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does unsupported here mean unsupported by Go or unsupported by us.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Supported by the Go team. This is mostly a rephrasing of what is already on the README https://github.com/open-telemetry/opentelemetry-collector?tab=readme-ov-file#compatibility

Copy link
Member

@dmitryax dmitryax left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks for putting this together.

@mx-psi mx-psi merged commit a5cb92a into open-telemetry:main Dec 11, 2023
@github-actions github-actions bot added this to the next release milestone Dec 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Skip Changelog PRs that do not require a CHANGELOG.md entry
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Document Go API stability guarantees
6 participants