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

Don't auto-close triaged issues, require re-triage after 1yr #28266

Merged
merged 9 commits into from
Feb 7, 2023

Conversation

tallclair
Copy link
Member

@tallclair tallclair commented Dec 16, 2022

Fixes kubernetes/kubernetes#103151

This PR makes the following workflow changes (separate commits):

  1. Don't auto-close triaged issues, don't mark triaged issues as stale/rotten - Triaged issues have already been vetted by an org member as being relevant and having sufficient information. By ignoring triaged issues for lifecycle changes, this should reduce a lot of unnecessary churn & friction for maintainers.
  2. Require issues to be retriaged when untouched for a set amount of time - This essentially adds a new lifecycle stage with a much greater (1 year vs 90 days) window. The idea is that the project changes a lot in 1 year, and it makes sense for issues that have been untouched for that amount of time to be retriaged, to ensure they are still relevant. Note that once the triage label is removed, the regular stale/rotten/closed lifecycle checks kick back in.
    • critical-urgent - retriage after 30 days of inactivity
    • important-soon - retriage after 90 days of inactivity
    • important-longterm and backlog - retriage after 1 year of inactivity
  3. Don't auto-close important issues - Issues labeled with priority/critical-urgent, priority/important-soon or priority/important-longterm will no longer be auto-closed from the lifecycle/rotten state.
  4. Remove the job that marks important triaged issues as frozen - This is redundant with the changes in (1) and (3).

/hold
for comment

/sig contributor-experience

@k8s-ci-robot k8s-ci-robot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Dec 16, 2022
@k8s-ci-robot k8s-ci-robot requested review from dims and thockin December 16, 2022 19:27
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Dec 16, 2022
@thockin
Copy link
Member

thockin commented Dec 16, 2022

FWIW I am +1 on the idea

@lavalamp
Copy link
Member

Both changes sound great to me!

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Dec 17, 2022
@SergeyKanzhelev
Copy link
Member

I would caution about complicating stale/rotten flow. For example, if triaged PRs will not be marked stale or rotten, there will need to be an exception for PRs that are waiting on author. For example, ones that needs a rebase for a prolonged duration of time are better be staled and closed by robot. In fact we even want to speed up this process. For issues, we may need to make a special case for priority/backlog: stale and rotten. Typically backlog issues are not absolutely required and in the lack of signal they may be fine to be closed.

Perhaps the better option will be to un-triage everything that got staled or rotten. Same as the item 2 in proposal, but faster. Re-triaging is an opportunity to assign somebody to the issue during the triage. And having more opportunities to do it (every 30 days vs. 1 year) is better.

Just my couple cents

@tallclair
Copy link
Member Author

I can see the argument for keeping the current process for PRs. Sometimes we do intentionally hold PRs for a release, but I think the 3 month window for marking stale is still OK for that.

For issues, one of the problems I'm hoping to address with this is the amount of churn that the current automation creates on maintainers. Everytime I check my github inbox for issue updates, approximately half of them are just bot comments marking issues as stale (and people unmarking them).

@sbueringer
Copy link
Member

For issues, one of the problems I'm hoping to address with this is the amount of churn that the current automation creates on maintainers. Everytime I check my github inbox for issue updates, approximately half of them are just bot comments marking issues as stale (and people unmarking them).

I agree and have the exact same experience.

And having more opportunities to do it (every 30 days vs. 1 year) is better.

Having to re-triage everything every 30 days sounds like a lot of work for maintainers.

@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Jan 18, 2023
@SergeyKanzhelev
Copy link
Member

And having more opportunities to do it (every 30 days vs. 1 year) is better.

Having to re-triage everything every 30 days sounds like a lot of work for maintainers.

I don't disagree. But the same time keeping priority/important-soon issues for a year without touching is not ideal either. Those needs to be looked at or priority lowered. Maybe this time can be increased for issues marked as priority/backlog

@MadhavJivrajani
Copy link
Contributor

I am +1 to this change in general. One comment:

And having more opportunities to do it (every 30 days vs. 1 year) is better.

Having to re-triage everything every 30 days sounds like a lot of work for maintainers.

I don't disagree. But the same time keeping priority/important-soon issues for a year without touching is not ideal either. Those needs to be looked at or priority lowered. Maybe this time can be increased for issues marked as priority/backlog

I think this is a very valid point. From the documentation of priority/important-soon:

Must be staffed and worked on either currently, or very soon, ideally in time for the next release.

Although often label description and how they're used differ, I think priority/{important-soon,critical-urgent} and release-blocker are two that are good candidates to consider based on how they're used.
(I don't think release-blocker or even critical-urgent is going to be an issue but for the sake of completeness).

We should consider excluding these and re-prioritising if the current cycle kicks in. The new cycle for priority/backlog / no priority label sounds great.

@tallclair
Copy link
Member Author

I'm open to having a different ruleset for priority/{important-soon,critical-urgent}. What are the proposed changes for those? Just keep the current workflow (ignore triage/accepted)? Or should we keep the same workflow (remove triage first), but just be much more aggressive about removing the label?

I'm leaning towards the second option, of removing triage/accepted more agressively for important issues. Maybe 3 months for priority/important-soon and 1 month for priority/critical-urgent? Or is a separate timeline for those too agressive?

@tallclair
Copy link
Member Author

With regard to moving important issues to backlog, we'll need a separate commenter rule for important issues, so the bot comment can just explain the expectations for important issues, and suggest reprioritizing them.

@mrbobbytables
Copy link
Member

I am also in general support of this idea 👍

@SergeyKanzhelev
Copy link
Member

Removing triage label before it went stale is a good idea. I wonder if the very first comment to triage it back will simply extend the stale period. One thing we can consider is stale AND remove triage at the same time. This will give a better signal to triager that the issue needs attention

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 20, 2023
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 25, 2023
@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Feb 3, 2023
@tallclair
Copy link
Member Author

/assign @BenTheElder

For implementation review

Copy link
Member

@BenTheElder BenTheElder left a comment

Choose a reason for hiding this comment

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

/lgtm
/approve
this looks right, I think

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: BenTheElder, tallclair

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 7, 2023
@k8s-ci-robot k8s-ci-robot removed lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Feb 7, 2023
@tallclair
Copy link
Member Author

/hold cancel
/label tide/merge-method-squash

@k8s-ci-robot k8s-ci-robot added tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges. and removed do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. labels Feb 7, 2023
@BenTheElder
Copy link
Member

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Feb 7, 2023
@k8s-ci-robot k8s-ci-robot merged commit 55d4e9b into kubernetes:master Feb 7, 2023
@k8s-ci-robot
Copy link
Contributor

@tallclair: Updated the job-config configmap in namespace default at cluster test-infra-trusted using the following files:

  • key sig-contribex-k8s-triage-robot.yaml using file config/jobs/kubernetes/sig-k8s-infra/trusted/sig-contribex-k8s-triage-robot.yaml

In response to this:

Fixes kubernetes/kubernetes#103151

This PR makes the following workflow changes (separate commits):

  1. Don't auto-close triaged issues, don't mark triaged issues as stale/rotten - Triaged issues have already been vetted by an org member as being relevant and having sufficient information. By ignoring triaged issues for lifecycle changes, this should reduce a lot of unnecessary churn & friction for maintainers.
  2. Require issues to be retriaged when untouched for a set amount of time - This essentially adds a new lifecycle stage with a much greater (1 year vs 90 days) window. The idea is that the project changes a lot in 1 year, and it makes sense for issues that have been untouched for that amount of time to be retriaged, to ensure they are still relevant. Note that once the triage label is removed, the regular stale/rotten/closed lifecycle checks kick back in.
    • critical-urgent - retriage after 30 days of inactivity
    • important-soon - retriage after 90 days of inactivity
    • important-longterm and backlog - retriage after 1 year of inactivity
  3. Don't auto-close important issues - Issues labeled with priority/critical-urgent, priority/important-soon or priority/important-longterm will no longer be auto-closed from the lifecycle/rotten state.
  4. Remove the job that marks important triaged issues as frozen - This is redundant with the changes in (1) and (3).

/hold
for comment

/sig contributor-experience

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

- |-
--comment=The Kubernetes project currently lacks enough contributors to adequately respond to all PRs.

This bot triages PRs according to the following rules:
Copy link
Member

Choose a reason for hiding this comment

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

@tallclair I think this is missing is:pr

Copy link
Member

@sbueringer sbueringer Feb 8, 2023

Choose a reason for hiding this comment

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

label:triage/accepted
label:priority/critical-urgent
is:issue
- --updated=2160h
Copy link
Member

@sbueringer sbueringer Feb 8, 2023

Choose a reason for hiding this comment

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

Should this be 720h?

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!

#28691

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Auto-closing issues is harmful and causes friction
9 participants