dbt-core
dbt-core copied to clipboard
[CT-1202] Conditional issues staleness
Proposal
Keep default staleness at 6 months (status quo)
Issues with awaiting_response
label should go stale more quickly: 3 months. (Let's also make sure that StaleBot's comments do not trigger our AwaitingResponseBot!)
Issues with good_first_issue
or help_wanted
should remain open longer. 12 months? 18 months? These do go stale eventually, especially if the underlying code has changed since we left a comment outlying the resolution pathway.
❓ Should issues with the enhancement
label also remain open longer (for 12 months)? As a general rule, enhancements take longer to scope, schedule, and implement than bug fixes. At the same time, we have been encouraging community members to open longer-term "Big Ideas" as GH Discussions, instead of issues, especially if we're not likely to write code for them in the short term. So the right move here might still be to convert about-to-stale enhancements into discussions, if there's really been no update / progress on them. And, of course, users can leave comments on enhancements they care about, to keep stalebot at bay.
How to implement
It looks like we'd need multiple stale
workflows, rather than just the one. That might make it more annoying to propagate the same workflows to our other repos.
Context: internal Slack thread
Examples:
- https://github.com/actions/stale/issues/625
- https://sonia-corporation.github.io/stale/docs/examples/multiple-cron-example
we get notified for stale issues (when commented on, closed, etc.) and with that in mind I would recommend we ruthlessly convert enhancement issues with no clear path forward to discussions either when they're created or when we notice them going stale
then I'd suggest:
- 6 months as default
- 3 months for
awaiting_response
(there's alsomore_information_needed
?) - 12 months for
good_first_issue
orhelp_wanted
I like that timeline from @lostmygithubaccount
We should be able to do this in a single action with multiple jobs to keep it centralized.
actions/stale has options like only-label
and exempt-issues-stale
. We would need to use the same filter inputs for PRs as needed too.
So we could do something like:
Job 1:
call action for only-label=awaiting_response
Job 2:
call action for only-label=good_first_issue, help_wanted
Job 2:
call action for exempt-issues-stale=awaiting_response, good_first_issue, help_wanted
I'd like to see issues with the label tech_debt
last longer since the underlying problem rarely gets coded away within 6 months. Maybe 2 years to close instead.