-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Description
The dotnet/docs repo has more than 1500 open issues in our backlog. That's not manageable for us to track work. We're building a plan to bulk close stale issues based on five variables. That will trim the active backlog to a set of issues that we intend to address.
This plan is not intended to avoid the tasks identified in the issues being closed. Rather, it is to organize our backlog so we can effectively manage it. Many of the issues are stale. Many reflect plans that have changed. Others reflect work that has become unnecessary because of other completed tasks. Our intent is to run this process once, with a commitment to stay current on our backlog grooming.
Process
We are building a query script to do the following:
- Find all issues matching any of the criteria listed below.
- Add a "won't fix" label to each of those issues. That will help us find any of these later to understand why they were closed.
- Add a comment that points to this issue clarifying that the issue author may re-open the issue if they feel it should not have been closed.
- Close the issue.
Variables
There are five variables we will use to close issues:
- "P?" priority labels (P0, P1, P2, P3): These have been added by people examining the issue in the past. When none have been set, the script will behave as though "P2" was set.
- "Pri?" Automated labels (Pri1, Pri2, Pri3) set by our label bot: These are added based on the traffic to an article. When none have been set, the script will behave as though "Pri2" was set for any article that has the "document details" codeblock. (Any issue without that codeblock should have "Pri3" assigned, unless assigned a different priority manually):
- Author: We create different criteria for those issues opened by our team and partners, and customers.
- Age: Different criteria are applied to issues based on when it was opened.
Criteria
The following table has our first pass at the criteria. Headers are:
- P: "P?" priority label
- Pri: "Pri?" priority label
- CodeBlock: The presence or absence of a "Document details" block. Its presence indicates an issue filed from the live article.
- Author: Indicates if the author is a team member, or a partner.
- Age: This column indicates how old an issue must be for it to be automatically closed.
The rows with a
strikethroughshould never occur. The labeling bot should always assign "Pri3" to any issue that does not contain the document details block when no other priority label has been set. The script will process any rows that do occur.
The
?in the priority column indicates an issue where no priority label has been applied.
To make suggested changes to the criteria, copy the table below, and make a comment changing the values in the Age column. Add Bold to any you change to help us spot your edits.
| P | Pri | Author | CodeBlock | Age |
|---|---|---|---|---|
| 0 | 1 | External | Yes | No |
| 0 | 1 | Internal | Yes | No |
| 0 | 2 | External | Yes | No |
| 0 | 2 | Internal | Yes | No |
| 0 | 3 | External | Yes | No |
| 0 | 3 | External | No | No |
| 0 | 3 | Internal | Yes | No |
| 0 | 3 | Internal | No | No |
| 0 | ? | External | Yes | No |
| 0 | ? | External | No | No |
| 0 | ? | Internal | Yes | No |
| 0 | ? | Internal | No | No |
| 1 | 1 | External | Yes | 24m |
| 1 | 1 | Internal | Yes | No |
| 1 | 2 | External | Yes | 18m |
| 1 | 2 | Internal | Yes | 12m |
| 1 | 3 | External | Yes | 12m |
| 1 | 3 | External | No | 12m |
| 1 | 3 | Internal | Yes | 12m |
| 1 | 3 | Internal | No | 12m |
| 1 | ? | External | Yes | 18m |
| 1 | ? | External | No | 12m |
| 1 | ? | Internal | Yes | 12m |
| 1 | ? | Internal | No | 18m |
| 2 | 1 | External | Yes | 18m |
| 2 | 1 | Internal | Yes | 12m |
| 2 | 2 | External | Yes | 12m |
| 2 | 2 | Internal | Yes | 9m |
| 2 | 3 | External | Yes | 9m |
| 2 | 3 | External | No | 9m |
| 2 | 3 | Internal | Yes | 9m |
| 2 | 3 | Internal | No | 9m |
| 2 | ? | External | Yes | 12m |
| 2 | ? | External | No | 9m |
| 2 | ? | Internal | Yes | 9m |
| 2 | ? | Internal | No | 12m |
| 3 | 1 | External | Yes | 9m |
| 3 | 1 | Internal | Yes | 9m |
| 3 | 2 | External | Yes | 9m |
| 3 | 2 | Internal | Yes | 6m |
| 3 | 3 | External | Yes | 6m |
| 3 | 3 | External | No | 6m |
| 3 | 3 | Internal | Yes | 3m |
| 3 | 3 | Internal | No | 6m |
| 3 | ? | External | Yes | 9m |
| 3 | ? | External | No | 6m |
| 3 | ? | Internal | Yes | 6m |
| 3 | ? | Internal | No | 9m |
| 2 | 1 | External | Yes | 18m |
| ? | 1 | Internal | Yes | 12m |
| ? | 2 | External | Yes | 12m |
| 2 | 2 | Internal | Yes | 9m |
| ? | 3 | External | Yes | 9m |
| ? | 3 | External | No | 9m |
| ? | 3 | Internal | Yes | 6m |
| ? | 3 | Internal | No | 9m |
| ? | ? | External | Yes | 12m |
| ? | ? | External | No | 9m |
| ? | ? | Internal | Yes | 9m |
| ? | ? | Internal | No | 12m |