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

Add Versioning Documentation #1388

Merged
merged 16 commits into from
Dec 29, 2020
Merged

Conversation

MrAlias
Copy link
Contributor

@MrAlias MrAlias commented Dec 9, 2020

Include a versioning policy that describes this projects system of versioning principles stability guarantees.

Addresses open-telemetry/opentelemetry-specification#1267

@MrAlias MrAlias added the documentation Provides helpful information label Dec 9, 2020
@MrAlias MrAlias added this to the RC1 milestone Dec 9, 2020
@MrAlias MrAlias marked this pull request as ready for review December 9, 2020 20:52
@tedsuo
Copy link

tedsuo commented Dec 9, 2020

This looks great. I appreciate that you're versioning packages in place to avoid breaking existing beta users when a package becomes stable, and that you've found a balance between a generic cross-language versioning scheme with Go's more stringent requirements.

One request: contrib isn't mentioned here, but it would be good to clarify versioning for contrib packages as well, including the requirement that contrib packages must be kept up to date with the latest release of core.

@MrAlias
Copy link
Contributor Author

MrAlias commented Dec 10, 2020

This looks great. I appreciate that you're versioning packages in place to avoid breaking existing beta users when a package becomes stable, and that you've found a balance between a generic cross-language versioning scheme with Go's more stringent requirements.

One request: contrib isn't mentioned here, but it would be good to clarify versioning for contrib packages as well, including the requirement that contrib packages must be kept up to date with the latest release of core.

@tedsuo I added a section for the contrib project. PTAL

@alolita
Copy link
Member

alolita commented Dec 10, 2020

@MrAlias Excellent writeup. +1 on the distinction between stable and other versions.
A couple of questions -

  1. How does backward compatibility support influence version numbering?
  2. You mention "Users are provided a codebase of value that is stable and secure." - Can you add more clarity about if/how versioning is affected by security CVE patches and backward compat.

@rakyll would love to get your comments.

@MrAlias
Copy link
Contributor Author

MrAlias commented Dec 10, 2020

  1. How does backward compatibility support influence version numbering?

Backwards compatibility is guaranteed by the major version number as specified by semver 2.0

Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced to the public API.

This means modules released with the same major version number will remain backwards compatible.

  1. You mention "Users are provided a codebase of value that is stable and secure." - Can you add more clarity about if/how versioning is affected by security CVE patches and backward compat.

Any type of patching of a bug (e.g. security, performance, correctness) will result in a patch version increment as specified by semver 2.0

Patch version Z (x.y.Z | x > 0) MUST be incremented if only backwards compatible bug fixes are introduced. A bug fix is defined as an internal change that fixes incorrect behavior.

VERSIONING.md Show resolved Hide resolved
VERSIONING.md Outdated Show resolved Hide resolved
VERSIONING.md Outdated Show resolved Hide resolved
VERSIONING.md Outdated Show resolved Hide resolved
VERSIONING.md Show resolved Hide resolved
@jmacd
Copy link
Contributor

jmacd commented Dec 10, 2020

@MrAlias This is really, really, really excellent. 💯

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
Copy link
Contributor

@rakyll rakyll left a comment

Choose a reason for hiding this comment

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

This looks great. I left some more comments on the earlier doc on some edge cases but the versioning scheme here looks good.

VERSIONING.md Outdated Show resolved Hide resolved
VERSIONING.md Outdated Show resolved Hide resolved
VERSIONING.md Outdated Show resolved Hide resolved
Copy link
Member

@krnowak krnowak left a comment

Choose a reason for hiding this comment

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

Typo. Otherwise looks good.

VERSIONING.md Outdated Show resolved Hide resolved
MrAlias and others added 2 commits December 29, 2020 10:24
Co-authored-by: Krzesimir Nowak <qdlacz@gmail.com>
@MrAlias MrAlias merged commit 2def8c3 into open-telemetry:master Dec 29, 2020
@MrAlias MrAlias deleted the versioning branch December 29, 2020 18:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Provides helpful information
Projects
None yet
Development

Successfully merging this pull request may close these issues.