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

[docs, .github] Add new issue template for stabilizing a module #8935

Merged
merged 2 commits into from
Nov 21, 2023

Conversation

mx-psi
Copy link
Member

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

Description:

This adds a new release template for stabilizing a module.
The intent is to try this out for pdata and featuregate, and iterate on the template over time.

@mx-psi mx-psi added the Skip Changelog PRs that do not require a CHANGELOG.md entry label Nov 16, 2023
@mx-psi mx-psi marked this pull request as ready for review November 16, 2023 12:01
@mx-psi mx-psi requested review from a team and djaglowski November 16, 2023 12:01
Copy link

codecov bot commented Nov 16, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (df8aaae) 90.87% compared to head (8e0ef70) 90.82%.
Report is 27 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8935      +/-   ##
==========================================
- Coverage   90.87%   90.82%   -0.05%     
==========================================
  Files         317      318       +1     
  Lines       17225    17205      -20     
==========================================
- Hits        15653    15627      -26     
- Misses       1281     1284       +3     
- Partials      291      294       +3     

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

Copy link
Contributor

@codeboten codeboten left a comment

Choose a reason for hiding this comment

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

Nice, I like this idea

- [ ] No open issues or PRs in the module that would require breaking changes
- [ ] No TODOs in the module code that would require breaking changes
- [ ] No deprecated symbols in the module
- [ ] No symbols marked as experimental in the module
Copy link
Member

Choose a reason for hiding this comment

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

Curious why? Seems common for stable module to have experimental APIs, e.g. grpc-go.

Copy link
Member Author

Choose a reason for hiding this comment

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

We discussed a bit about this on #4705 and #4832. Personally, I think grpc-go's approach has caused a lot of pain to end-users; I gathered some issues related to it on #4832 (comment).

We also have the experience of opentelemetry-go, where their decision to have interfaces that can change across minor versions has caused some pain (see open-telemetry/opentelemetry-go/issues/3277)

We can discuss this more explicitly (I think having a more explicit guideline as to how to implement experimental methods is important), but for now I think requiring the 1.0 version to not have experimental symbols is not too onerous

Copy link
Member

Choose a reason for hiding this comment

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

Thanks for the context, I agree the implication of experimental APIs can be a separate discussion. Makes sense to me to not have them for 1.0 to begin with (since relaxing this constraint in the future is feasible).


Before stabilizing a module, an approver or maintainer must make sure that the following criteria are met:

- [ ] One RC release or more have been done of this module
Copy link
Member

Choose a reason for hiding this comment

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

Do we want to do rc releases going forward, given the reported issues?

Copy link
Member Author

Choose a reason for hiding this comment

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

I think doing one or two RC releases makes sense, but I agree that definitely 18 RC releases is too much 😄 We can add some guidance to this document as part of solving #8063 (something like "if we do more than two RCs go back to minor versions until we solve the issue(s) in question")

Copy link
Member

Choose a reason for hiding this comment

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

Maybe we can just require two 0.x versions with all other checkboxes marked instead of jumping back and forth to RC

Copy link
Contributor

Choose a reason for hiding this comment

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

unless there's a strong argument for a RC tag, i would agree that we could call a package out as RC as of version 0.x and avoid unnecessary process and pain

@dmitryax
Copy link
Member

Overall LGTM. Thanks for putting this together!

@mx-psi
Copy link
Member Author

mx-psi commented Nov 17, 2023

Accidentally re-requested Alex's review, feel free to ignore :)

@mx-psi mx-psi mentioned this pull request Nov 17, 2023
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

@codeboten codeboten left a comment

Choose a reason for hiding this comment

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

Re-approved 👍🏻

@codeboten codeboten merged commit 97b7b0f into open-telemetry:main Nov 21, 2023
31 checks passed
@github-actions github-actions bot added this to the next release milestone Nov 21, 2023
codeboten pushed a commit that referenced this pull request Nov 22, 2023
Clarifies our stance regarding RC releases, inspired by
#8935 (comment).
In a nutshell:

- Stabilization criteria have to be met for at least two minor version
releases before moving to the stable module.
- We treat these two (or more) minor releases as release candidates and
do not release under the `-rc` release family.
- After these releases, we move directly to the `1.x` release family.

**Link to tracking Issue:** Fixes #8063 (together with the upcoming 1.0
release for pdata and featuregate)

cc @braydonk

---------

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
pantuza pushed a commit to pantuza/opentelemetry-collector that referenced this pull request Dec 8, 2023
…-telemetry#8935)

This adds a new release template for stabilizing a module.
The intent is to try this out for pdata and featuregate, and iterate on
the template over time.
pantuza pushed a commit to pantuza/opentelemetry-collector that referenced this pull request Dec 8, 2023
Clarifies our stance regarding RC releases, inspired by
open-telemetry#8935 (comment).
In a nutshell:

- Stabilization criteria have to be met for at least two minor version
releases before moving to the stable module.
- We treat these two (or more) minor releases as release candidates and
do not release under the `-rc` release family.
- After these releases, we move directly to the `1.x` release family.

**Link to tracking Issue:** Fixes open-telemetry#8063 (together with the upcoming 1.0
release for pdata and featuregate)

cc @braydonk

---------

Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
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.

5 participants