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

Proposal for automated management of issues targeted to release miles… #752

Merged
merged 1 commit into from
Jun 30, 2017

Conversation

pwittrock
Copy link
Member

…tones

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Jun 21, 2017

- *issue owners*: creator, assignees, and user who moved the issue it into a release milestone
- *Y days*: refers to business days (using the location local to the release-manager M-F)
- *post feature freeze* / *code slush*: starts when the master branch only accepts PRs for the release milestone
Copy link
Contributor

Choose a reason for hiding this comment

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

Feature Freeze is an overloaded term. I know PM also uses this to refer to when no additional issues/features are made available in the features repo.
https://github.com/kubernetes/features/blob/master/release-1.7/release-1.7.md

Copy link
Member Author

Choose a reason for hiding this comment

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

ah. :( should we just call this code slush?

The severity is used to triage which issues the release team needs to track as part of cutting
a release. As the release date approaches, release blocking issues are expected to be updated
frequently and have an issue owner present at all burn down meetings until the issue is resolved.

Copy link
Contributor

Choose a reason for hiding this comment

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

are these synonymous with priority/ labels. Will there ever be a priority/critical-urgent issues that is not a release-blocker? Are we just being very explicit?

Copy link
Contributor

Choose a reason for hiding this comment

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

I am wondering the same thing. As proposed, priority/critical-urgent seems to imply release/blocker and priority/important-{soon,longerm} seems to imply release/non-blocker?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes they do - and the doc says they need to match. I wrote this as having both labels because it makes it clear that only critical-urgent issues are release/blocker issues and all critical-urgent issues are release/blockers. Do you think I should just drop the release/blocker labels?

Copy link
Member

Choose a reason for hiding this comment

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

I'd vote that less is more

Copy link
Member Author

Choose a reason for hiding this comment

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

Removed release-blocker

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, I think release/ labels are unnecessary. It should be enough that only issues labelled priority/critical-urgent are release blockers.

@@ -0,0 +1,193 @@
# Targeting issues and PRs to release milestones
Copy link
Contributor

Choose a reason for hiding this comment

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

This document is relevant across repos right?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes.

- `kind/bug`: Fixes a bug.
- were not known at the time the feature was implemented.
- `kind/feature`: New functionality.
- `kind/documentation`: Documentation updates for new features or bug fixes.
Copy link
Contributor

Choose a reason for hiding this comment

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

shouldn't all docs changes be in the docs repo. when would we use this label?

Copy link
Member Author

Choose a reason for hiding this comment

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

good point. deleted


Additional instructions available [here](<link to this doc>)
```
- **If required labels are not applied within 2 days of being moved to the milestone, the issue is moved back out of the milestone. (unless it is critical-urgent)**
Copy link
Contributor

Choose a reason for hiding this comment

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

I think it says 3 days above

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed

Copy link
Contributor

@marun marun left a comment

Choose a reason for hiding this comment

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

Would it be worth separating out the timelines for the bots to expect or take action rather than sprinkling it everywhere? I'm guessing these intervals are likely to be volatile.


## Definitions

- *issue owners*: creator, assignees, and user who moved the issue it into a release milestone
Copy link
Contributor

Choose a reason for hiding this comment

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

s/it//

Copy link
Member Author

Choose a reason for hiding this comment

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

done

bot will attempt to contact the issue creator 3 times (over 3 days)
before automatically removing the issue from the milestone.

Labels categories:
Copy link
Contributor

Choose a reason for hiding this comment

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

s/Labels/Label/

Copy link
Member Author

Choose a reason for hiding this comment

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

Done

The severity is used to triage which issues the release team needs to track as part of cutting
a release. As the release date approaches, release blocking issues are expected to be updated
frequently and have an issue owner present at all burn down meetings until the issue is resolved.

Copy link
Contributor

Choose a reason for hiding this comment

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

I am wondering the same thing. As proposed, priority/critical-urgent seems to imply release/blocker and priority/important-{soon,longerm} seems to imply release/non-blocker?

```
- **If required labels are not applied within 2 days of being moved to the milestone, the issue is moved back out of the milestone. (unless it is critical-urgent)**
- Bot checks that release/blocker issues have critical-urgent priority. (Can be automatically applied).
2. If labels change, bot checks that the needed lables are present and comments with updated meaning.
Copy link
Contributor

Choose a reason for hiding this comment

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

s/lables/labels/

Copy link
Member Author

Choose a reason for hiding this comment

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

Done

- after 2 days without a reply, bot follows escalation procedure derived from priority label
- important-longterm, remove from milestone and notify the owners
- important-soon, escalate to SIG daily for 2 days.
- removal should add the `release/remove-from-milestone` label and contain the following message
Copy link
Contributor

Choose a reason for hiding this comment

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

s/remove/removed/ ?

Copy link
Member Author

Choose a reason for hiding this comment

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

done

ETA: ???
Risks: Root cause unknown.
```
- `release/needs-attention`
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there detail missing here?

Copy link
Member Author

Choose a reason for hiding this comment

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

deleted

- `release/needs-attention`
4. 2 weeks after feature freeze
- **priority/important-* issues**
- bot comments mentioning issue owners, expects the issue to be escalated in priority or removed from milestone
Copy link
Contributor

Choose a reason for hiding this comment

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

What's the timeline for removal?

Copy link
Member Author

Choose a reason for hiding this comment

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

2 days? Added as a strawman

```
**Action Required**:
This issue is marked as priority/important-x, and is in the 1.y milestone. Only critical-urgent issue
are being tracked for the 1.y release. Escalate the priority to critical-urgent immediately, **or the issue
Copy link
Contributor

Choose a reason for hiding this comment

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

s/immediately/within 24h/ ?

Copy link
Member Author

Choose a reason for hiding this comment

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

updated.


## Issues tracked in other repos

Some issues are filed in repos outside the [kubernetes repo]. For these repo's issues
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this is necessary, but maybe puts an unfair burden on sigs that are devolving their work away from the main repo. Could this be automated?

Copy link
Member Author

Choose a reason for hiding this comment

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

Good point. We could start using this: https://github.com/issues for x-repo queries.

Copy link
Member Author

Choose a reason for hiding this comment

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

@marun
Copy link
Contributor

marun commented Jun 22, 2017

Should this proposal also include bot enforcement of the requirement that PRs in the milestone have an associated issue unless a label (e.g. 'no-issue-required') is applied?

@pwittrock
Copy link
Member Author

@marun

Should this proposal also include bot enforcement of the requirement that PRs in the milestone have an associated issue unless a label (e.g. 'no-issue-required') is applied?

I can add that, but want to keep the document scoped to something we can get consensus on. When would this be enforced? Code slush, or throughout the release?

Priority label used by the bot to determine escalation path before moving an issues
out of the release milestone.

- `priority/critical-urgent`: Never automatically move out of a release milestone; continually escalate to contributor and SIG through all available channels.- `priority/critical-urgent`: Never automatically move out of a release milestone; continually escalate to contributor and SIG through all available channels.
Copy link
Member

Choose a reason for hiding this comment

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

duplicated content

Copy link
Member Author

Choose a reason for hiding this comment

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

Done

The severity is used to triage which issues the release team needs to track as part of cutting
a release. As the release date approaches, release blocking issues are expected to be updated
frequently and have an issue owner present at all burn down meetings until the issue is resolved.

Copy link
Member

Choose a reason for hiding this comment

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

I'd vote that less is more

This will also be used to escalate to the correct SIG GitHub team.

- `kind/bug`: Fixes a bug.
- were not known at the time the feature was implemented.
Copy link
Member

Choose a reason for hiding this comment

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

Is this line necessary?

Copy link
Member Author

Choose a reason for hiding this comment

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

unfortunately yes.

Copy link
Member

Choose a reason for hiding this comment

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

Seems obvious, but I'll let it 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.

Update this with some more clarity. The purpose of the label is to get a feel for how many issues we are surprised with. However, it is common to see bug fixes during code slush for issues that have been around since the last release, or were known at the time the feature was developed, but not fixed, to get the feature in before code slush (no "feature development" accepted at this time). The "bug" is then fixed during code slush. Both of these cases create noise when trying to determine - how many issues did we discover during and after code slush that we would have went out with had things not baked for 3 weeks.

Copy link
Member

Choose a reason for hiding this comment

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

Oh! I wasn't asking if kind/bug was required. I totally accept that. I was asking if the text "were not known at the time the feature was implemented." was necessary.

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'll remove it.

@marun
Copy link
Contributor

marun commented Jun 23, 2017

@pwittrock

I can add that, but want to keep the document scoped to something we can get consensus on. When would this be enforced? Code slush, or throughout the release?

Only code slush, when traceability becomes critical.

1. An issue is added to the current release milestone (either through creation or update)
- Bot automatically applies the ''
- Bot checks to make sure all required labels are set on the issue
- Iff any labels are missing, comment listing the missing labels and include a link to this document. Mention all issue owners.
Copy link
Member

Choose a reason for hiding this comment

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

Is this a typo, or intended as "if and only if"?

Copy link
Member Author

Choose a reason for hiding this comment

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

If and only if. This has caused confusion before, so just typed it out.


Additional instructions available [here](<link to this doc>)
```
- Iff all labels are present, comment summarizing the state. Mention all issue owners.
Copy link
Member

Choose a reason for hiding this comment

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

Same here

Copy link
Member Author

Choose a reason for hiding this comment

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

Done


- `priority/critical-urgent`: Never automatically move out of a release milestone; continually escalate to contributor and SIG through all available channels.
- considered a release blocking issue
- post code slush: issue owner update frequency: every 3 days
Copy link
Contributor

@marun marun Jun 23, 2017

Choose a reason for hiding this comment

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

s/post// (for parity with code freeze below)

Or is 'code slush' a point in time vs 'code freeze' being an interval?

Copy link
Member Author

Choose a reason for hiding this comment

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

good point. code slush is an interval

- would require a patch release if left undiscovered until after the minor release.
- `priority/important-soon`: Escalate to the issue owners and SIG owner; move out of milestone after several unsuccessful escalation attempts.
- not considered a release blocking issue
- would not require a patch release
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this line and the one below also apply to priority/important-longterm? So the only difference between the 2 would be the mount of escalation?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yup. Updated to clarify this.

- Priority
- Issue type

### SIG owner label
Copy link
Contributor

@marun marun Jun 23, 2017

Choose a reason for hiding this comment

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

How to handle test infra and issues related to gce/gke/etc? I think we started assigning them to sig/release for 1.7, should that continue for 1.8?

And maybe issues in this vein (related to the infrastructure that supports development rather than the software being developed) require their own issue type?

Copy link
Member

Choose a reason for hiding this comment

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

I think for GCE/GKE, there's going to be a new sig-gcp created if the mailing list discussion pans out. test-infra would go to sig-testing?

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not sure test-infra to sig-testing makes sense. afaik their missions are different.

Copy link
Member Author

Choose a reason for hiding this comment

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

Using sig/testing

## Workflow

1. An issue is added to the current release milestone (either through creation or update)
- Bot automatically applies the ''
Copy link
Contributor

Choose a reason for hiding this comment

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

'' ?

Copy link
Member Author

Choose a reason for hiding this comment

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

No idea. deleted

```
- **If required labels are not applied within 3 days of being moved to the milestone, the issue is moved back out of the milestone. (unless it is critical-urgent)**
2. If labels change, bot checks that the needed labels are present and comments with updated meaning.
3. Post-code slush
Copy link
Contributor

Choose a reason for hiding this comment

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

s/Post-// ?

Copy link
Member Author

Choose a reason for hiding this comment

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

Done

```
ACK. In progress
ETA: DD/MM/YYYY
Risks: Complicate fix required
Copy link
Contributor

Choose a reason for hiding this comment

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

s/Complicate/Complicated/

Copy link
Member Author

Choose a reason for hiding this comment

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

Thanks. Done

SIGs will have issues needing attention escalated through the following channels

- Comment mentioning the sig team appropriate for the issue type
- Email the SIG googlegroup list
Copy link
Contributor

Choose a reason for hiding this comment

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

Im assuming the the bot has persistent configuration. How hard will it be to associate sig labels with email addresses?

Copy link
Member Author

Choose a reason for hiding this comment

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

Should be easy. We should be able to just scrape / copy them from here:
https://github.com/kubernetes/community/blob/master/sig-list.md

Copy link
Member Author

Choose a reason for hiding this comment

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

Updated with a comment.

@pwittrock
Copy link
Member Author

@marun

I can add that, but want to keep the document scoped to something we can get consensus on. When would this be enforced? Code slush, or throughout the release?
Only code slush, when traceability becomes critical.

SGTM. I need to create another proposal for PRs and enforcing labels and comments there for release notes anyway.

@pwittrock
Copy link
Member Author

@ncdc

I'd vote that less is more

Cleaned it up a bit.

@pwittrock
Copy link
Member Author

Most of the comments seemed like non-blockers. I have attempted to addressed all of them. If they need to be refined further, I can create a follow up.

Self merging this since we seem to have achieved lazy consensus.

Thanks for your feedback @ncdc @marun @cblecker @grodrigues3

@pwittrock pwittrock merged commit 7b8fb29 into kubernetes:master Jun 30, 2017
danehans pushed a commit to danehans/community that referenced this pull request Jul 18, 2023
Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants