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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/stabilization.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Module stabilization
about: Stabilize a module before a 1.0 release
title: 'Stabilize module X'
labels: 'stabilization'
assignees: ''
---

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

- [ ] 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).

- [ ] The module follows the [Coding guidelines](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CONTRIBUTING.md)

Please also make sure to publicly announce our intent to stabilize the module on:

- [ ] The #otel-collector CNCF Slack Channel
- [ ] The #opentelemetry CNCF Slack channel
- [ ] A Collector SIG meeting (if unable to attend, just add to the agenda)

To help other people verify the above criteria, please link to an RC release, the announcement and other links used to complete the above in a comment on this issue.
4 changes: 4 additions & 0 deletions docs/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,10 @@ The following documents the procedure to release a bugfix
7. Once the branch has been merged, it will be auto-deleted. Restore the release branch via GitHub.
8. Once the patch is release, disable the **Merge pull request** setting.

## 1.0 release

Stable modules adhere to our [versioning document guarantees](../VERSIONING.md), so we need to be careful before releasing. Before adding a module to the stable module set and making a first 1.0 release, please [open a new stabilization issue](https://github.com/open-telemetry/opentelemetry-collector/issues/new/choose) and follow the instructions in the issue template.

## Release schedule

| Date | Version | Release manager |
Expand Down
Loading