You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Use stale bot for commenting on stale issues/PRs in Node.js core repo #28798
Is your feature request related to a problem? Please describe.
Comment by @bnoordhuis in #25209 (comment): we have a long (loooong) backlog of probably-stale issues that no one is looking at, with many where discussion has meandered so much that no one is really sure anymore what they're even about.
Describe the solution you'd like
Use stale bot to comment on stale issues (discuss stale bot config in this thread)
Comment by @sam-github in Using GitHub Lock App for closed issues/PRs on NodeJS core? #25209 (comment): close but don't lock, but I think we'd want to do it based on activity, not time of opening. The literally oldest issues by open date actually have some activity, some of them are long-term tracking issues. Its more in the middle (not oldest, not most recent) where there seem to be some issues that could be dropped if there is no activity.
we have a long (loooong) backlog of probably-stale issues that no one is looking at
I do try to semi-routinely go through the issues backlog oldest-first.
I very much dislike auto-closing old issues, personally.
Maybe that's just because I do triaging weirdly, I don't know.
To me, the reality is that there are going to be a good chunk of unresolved things and, that's ok. At least it's a clear signal that any given issue there wasn't resolved and may be picked up.
Also, all things considered, I think we still do a pretty good job for the size of project we are.
Just to be clear, most of the comments quoted in the description are in favour of closing stale issues, not old issues. Stale would be issues with no activity.
If a ping is published first to notify of upcoming auto-close, it should only take someone replying with "pls keep open" to make it unstale for some time (I'd assume it'd be a couple more months).
If no one can be bothered to post a "please don't close this" into an issue every few months... then I'd call it a good candidate for closing. Closing doesn't mean it can't be reopened on request, or commented on, or searched, or anything really. Primarily, it cuts down the number of things that have to be looked at when the open issues are periodically sieved through by someone generous with their time.
base it on x time since last activity in the issue
Ensure the message added on close makes it clear we want those involved to re-open if it should still be open
Provide a tag that can be used to tag issues that we think are ok to stay open with out activity for a long time. For example (although not a good example necessarily) it may be expected/ok for features requests we've reviewed and agree with to stay open even if there currently no ongoing activity. Backports might be another one, were some will sit waiting for the next SemVer minor release.
Seems like stale bot should be able to be configured along those line.
If a ping is published first to notify of upcoming auto-close, it should only take someone replying with "pls keep open" to make it unstale for some time (I'd assume it'd be a couple more months)
I very much dislike auto-closing old issues, personally.
We can set a big value for daysUntilClose (like 3 or 6 months)
To me, the reality is that there are going to be a good chunk of unresolved things and, that's ok. At least it's a clear signal that any given issue there wasn't resolved and may be picked up.
We can use use exemptLabels tags for such discussions
@mhdawson stalebot does all of that. I would configure it so that an issue/pr become stale after 6 months, and get closed automatically after 1 year? This aligns it with our release cycle: essentially if it did not make it in 2 majors, then it likely won’t happen at all.
The stale comment is just to notify subscribers that issue has been stale for a while (time of inactivity). Six months could be little long for that.
Can we reduce the time of inactivity?
As described in comment probot/stale#224 (comment), it looks like stale bot will comment on issues without staleLabel and remove staleLabel once there's any activity outside of stale bot.
Empirically, I'd say that > 50% of issues that have been dormant for a month, stay dormant.
How about these values?
daysUntilStale: 60
daysUntilClose: 365
The stale bot will comment on all issues without staleLabel after 60 days of inactivity, and close stale issues after 365 days of inactivity.
@targos I recently created config for lock bot (a different bot), which has a config called skipCreatedBefore which skips issues and pull requests created before a given timestamp (docs)
I don't see any such config for staleBot (docs)
I've created a request at probot/stale#227, and added block label for this issue
Stale bot has a config called limitPerRun which defaults to 30
If we introduce stale bot now, I expect to get 30 notifications per hour till all stale issues are marked.
One way we could avoid this is to manually mark issues with staleLabel so that stale bot doesn't comment on them, but they'll be resolved if they are more than daysUntilClose (i.e. 365 days for us) old.
I think it would be better to not limit the bot to a certain date range. Maybe we can set the limitPerRun lower, but we definitely should go through all our issues. At 30/hr it will probably take between 10/20 hours, which sounds reasonable to me, but if that seems overwhelming we can lower it to like 5/hr.
The problem with too many stale bot notifications in the beginning is that some subscribers might miss genuine notifications if they clear all of them. Also, they might raise complaints after getting too many notifications.
The idea with skipCreatedBefore config was to add some date now, and reduce the date by some interval (say 3 months) regularly (say once every other week) so that:
stale bot notifications are spread over time
subscribers get used to stale bot notifications
For example, we start with value 2019-04-01 to skipCreatedBefore:
two weeks from now, reduce it to 2019-01-01
two weeks from then, reduce it to 2018-10-01
two weeks from then, reduce it to 2018-07-01
and so on...
Instead of fixed values (like three months), we can also update skipCreatedBefore based on number of issues/PRs which are stale (say 50 in one go) - with max 5 notifications each spread over 10 hours.
Each config update can be merged when subscribers won't mind notifications (say weekend?)
Are we moving forward with this? We're edging towards 800 open issues...
(Remember when we had only 500 open issues? Good times.)
Aside: Hilariously, I've been trying to keep the number of open PRs down below 300 and was successful for a while, but now it all feels so hopeless. If you have an open PR that is realistically never going to be finished, please do me a favor and close it!
The issue created with stalebot at probot/stale#227 hasn't receive any responses.
There's an experimental PR in Node.js core to use GitHub actions CI for running tests at #29193
I've created new issue at #29232 specific to writing a stale action, as the discussions in this issue were mainly related to stale bot
Activity
sagitsofan commentedon Jul 21, 2019
+1
bnoordhuis commentedon Jul 22, 2019
I still think it's a good idea. It's not as if the number of open issues has gone down since last time, quite to the contrary.
Trott commentedon Jul 24, 2019
@nodejs/tsc
Fishrock123 commentedon Jul 24, 2019
I do try to semi-routinely go through the issues backlog oldest-first.
I very much dislike auto-closing old issues, personally.
Maybe that's just because I do triaging weirdly, I don't know.
To me, the reality is that there are going to be a good chunk of unresolved things and, that's ok. At least it's a clear signal that any given issue there wasn't resolved and may be picked up.
Also, all things considered, I think we still do a pretty good job for the size of project we are.
sam-github commentedon Jul 24, 2019
Just to be clear, most of the comments quoted in the description are in favour of closing stale issues, not old issues. Stale would be issues with no activity.
If a ping is published first to notify of upcoming auto-close, it should only take someone replying with "pls keep open" to make it unstale for some time (I'd assume it'd be a couple more months).
If no one can be bothered to post a "please don't close this" into an issue every few months... then I'd call it a good candidate for closing. Closing doesn't mean it can't be reopened on request, or commented on, or searched, or anything really. Primarily, it cuts down the number of things that have to be looked at when the open issues are periodically sieved through by someone generous with their time.
mhdawson commentedon Jul 24, 2019
My cents would be:
Seems like stale bot should be able to be configured along those line.
trivikr commentedon Jul 24, 2019
The default configuration for staleBot is given in their README
Based on suggestions from @mhdawson:
daysUntilStaleanddaysUntilClosemarkCommentexemptLabelsonlyLabels,exemptProjects,exemptMilestones,exemptAssigneeswhich we can use if requiredtrivikr commentedon Jul 24, 2019
Suggestion from @sam-github:
Their app states under point 2:
So any activity on issue/PR will unmark the issue as stale
trivikr commentedon Jul 24, 2019
Suggestion from @Fishrock123:
daysUntilClose(like 3 or 6 months)exemptLabelstags for such discussionsmcollina commentedon Jul 25, 2019
@mhdawson stalebot does all of that. I would configure it so that an issue/pr become stale after 6 months, and get closed automatically after 1 year? This aligns it with our release cycle: essentially if it did not make it in 2 majors, then it likely won’t happen at all.
trivikr commentedon Jul 25, 2019
The stale comment is just to notify subscribers that issue has been stale for a while (time of inactivity). Six months could be little long for that.
Can we reduce the time of inactivity?
bnoordhuis commentedon Jul 28, 2019
Empirically, I'd say that > 50% of issues that have been dormant for a month, stay dormant.
trivikr commentedon Jul 29, 2019
trivikr commentedon Jul 29, 2019
As described in comment probot/stale#224 (comment), it looks like stale bot will comment on issues without
staleLabeland removestaleLabelonce there's any activity outside of stale bot.How about these values?
daysUntilStale: 60daysUntilClose: 365The stale bot will comment on all issues without
staleLabelafter 60 days of inactivity, and close stale issues after365days of inactivity.2 remaining items
targos commentedon Aug 2, 2019
For reference, here are the permissions requested by the Stale app:
targos commentedon Aug 2, 2019
@trivikr do you know what will happen to existing issues after we enable it?
Are we all going to get hundreds of notifications at the same time?
trivikr commentedon Aug 2, 2019
@targos I recently created config for lock bot (a different bot), which has a config called
skipCreatedBeforewhich skips issues and pull requests created before a given timestamp (docs)I don't see any such config for staleBot (docs)
I've created a request at probot/stale#227, and added block label for this issue
trivikr commentedon Aug 2, 2019
Stale bot has a config called
limitPerRunwhich defaults to 30If we introduce stale bot now, I expect to get 30 notifications per hour till all stale issues are marked.
One way we could avoid this is to manually mark issues with
staleLabelso that stale bot doesn't comment on them, but they'll be resolved if they are more thandaysUntilClose(i.e. 365 days for us) old.EDIT(trivikr): typo still > till
devsnek commentedon Aug 2, 2019
I think it would be better to not limit the bot to a certain date range. Maybe we can set the limitPerRun lower, but we definitely should go through all our issues. At 30/hr it will probably take between 10/20 hours, which sounds reasonable to me, but if that seems overwhelming we can lower it to like 5/hr.
trivikr commentedon Aug 2, 2019
The problem with too many stale bot notifications in the beginning is that some subscribers might miss genuine notifications if they clear all of them. Also, they might raise complaints after getting too many notifications.
The idea with
skipCreatedBeforeconfig was to add some date now, and reduce the date by some interval (say 3 months) regularly (say once every other week) so that:For example, we start with value
2019-04-01toskipCreatedBefore:2019-01-012018-10-012018-07-01Instead of fixed values (like three months), we can also update
skipCreatedBeforebased on number of issues/PRs which are stale (say 50 in one go) - with max 5 notifications each spread over 10 hours.Each config update can be merged when subscribers won't mind notifications (say weekend?)
trivikr commentedon Aug 8, 2019
GitHub announced Actions Beta today, which has an action for posting warnings and closing stale issues and PRs
bnoordhuis commentedon Aug 20, 2019
Are we moving forward with this? We're edging towards 800 open issues...
(Remember when we had only 500 open issues? Good times.)
Trott commentedon Aug 20, 2019
Aside: Hilariously, I've been trying to keep the number of open PRs down below 300 and was successful for a while, but now it all feels so hopeless. If you have an open PR that is realistically never going to be finished, please do me a favor and close it!
trivikr commentedon Aug 20, 2019
Summary of configs discussed in this issue:
The issue created with stalebot at probot/stale#227 hasn't receive any responses.
There's an experimental PR in Node.js core to use GitHub actions CI for running tests at #29193
I've created new issue at #29232 specific to writing a stale action, as the discussions in this issue were mainly related to stale bot
bnoordhuis commentedon Dec 10, 2019
We're over 900 open issues as of today. Can I suggest we move forward with either this issue or #29232?
jasnell commentedon Jan 24, 2021
Does this need to remain open?
trivikr commentedon Jan 25, 2021
Nope, we should go ahead with GitHub Actions discussed in #29232 instead.