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

[RFC 0124] Do not auto-close stale Nix issues and PRs, matching Nixpkgs's policy #124

Merged
merged 5 commits into from
Jun 19, 2022

Conversation

Ericson2314
Copy link
Member

@Ericson2314 Ericson2314 commented Apr 18, 2022

Do not auto-close Nix issues and PRs.

Make the policy clear, and harmonize Nix's with Nixpkgs's, which was approved by RFC 51.

Rendered

@Ericson2314 Ericson2314 changed the title Stale nix no close [RFC 0124] Stale nix no close Apr 18, 2022
@Ericson2314 Ericson2314 changed the title [RFC 0124] Stale nix no close [RFC 0124] Do not auto-close Nix issues and PRs, matching Nixpkgs's policy Apr 18, 2022
@Ericson2314 Ericson2314 changed the title [RFC 0124] Do not auto-close Nix issues and PRs, matching Nixpkgs's policy [RFC 0124] Do not auto-close stale Nix issues and PRs, matching Nixpkgs's policy Apr 18, 2022
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/stale-bot-for-nix-just-closed-a-bunch-of-stuff/18661/4

Firstly, whatever the policy is, it should be clearly announced.

Without a big announcement of this decision, many of us were caught of guard when issues were closed the other day.
Anyone that just saw the previous stale bot "marking stale" messages probably assumed stale bot was configured like Nixpkgs.
Copy link
Member

Choose a reason for hiding this comment

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

Especially true given that the message was not adapted to differ from nixpkgs and explain what would happen!

@lheckemann lheckemann added the status: open for nominations Open for shepherding team nominations label Apr 20, 2022
@edolstra
Copy link
Member

To me, a stale bot that doesn't auto-close eventually is pretty useless and really just produces unnecessary GitHub comment spam. The whole point is to clean up the backlog of outdated issues/PRs, and so we ask contributors to confirm that their issue/PR is still relevant.

I agree that the "stale" message should inform people that their issue/PR will be closed unless action is taken.

@Ericson2314
Copy link
Member Author

Ericson2314 commented Apr 21, 2022

IMO the main problem with stale bot (in general) is less than the closing itself, but that "closed fixed" vs "closed expired" is not differentiated". That's a lost of information.

The second problem is that having to "reawaken" all legit longstanding issues is a chore. If one could tag something "never stale" or "goes stale N times as slowly", that would help.

A stale bot that didn't close but also didn't post a message, would perhaps still provide some value (does github let one filter by last modified date?) but not be so spammy.

@alyssais
Copy link
Member

The whole point is to clean up the backlog of outdated issues/PRs, and so we ask contributors to confirm that their issue/PR is still relevant.

It feels unfair to ask contributors to do this (sometimes multiple times in a row) when it's not them who's blocking the process. Most often, Nix PRs and issues I see are blocked waiting for review/merge, rather than waiting for the contributor to do anything. So putting the burden on the contributor to keep taking action to keep their PR open, with no end in sight, is going to make them feel unappreciated and resentful, and then burn them out.

@ryantm
Copy link
Member

ryantm commented Apr 26, 2022

If one could tag something "never stale" or "goes stale N times as slowly", that would help.

https://github.com/NixOS/nix/blob/fb5f13fb654e29915b26e49bffada522652bb403/.github/stale.yml#L5

https://github.com/NixOS/nixpkgs/blob/ca3c297d867f59859ba464c5b818086385b76e8c/.github/stale.yml#L6

I volunteer to shepherd this. My experience is that I authored the nixpkgs stale bot RFC. I feel I don't have the experience of the Nix development process though, so I hope some other person with more experience there is on the shepherd team.

@joepie91
Copy link
Contributor

joepie91 commented Apr 28, 2022

The whole point is to clean up the backlog of outdated issues/PRs, and so we ask contributors to confirm that their issue/PR is still relevant.

It feels unfair to ask contributors to do this (sometimes multiple times in a row) when it's not them who's blocking the process. Most often, Nix PRs and issues I see are blocked waiting for review/merge, rather than waiting for the contributor to do anything. So putting the burden on the contributor to keep taking action to keep their PR open, with no end in sight, is going to make them feel unappreciated and resentful, and then burn them out.

This is precisely my experience with the constant 'stale' notifications in nixpkgs already, and it's only barely acceptable (despite the notification spam) due to the issues at least not being closed automatically.

Auto-closing is, frankly, not useful - the only thing it really achieves is that the "open issues" count goes down. A stale issue doesn't cost anything, and concluding that an issue is no longer relevant just because it didn't get updated is incorrect - the reporter may have stopped using NixOS, or gotten tired of being asked to reproduce multiple times, and so on.

It does however drive away contributors (as already mentioned), and cause issues that occur rarely to disappear into the void. Such issues are not likely to be frequently re-reported, especially not if tracking down the issue requires a lot of effort that most users won't put in.

Issue reports are contributions to the project; it is not reasonable to throw them away merely because a maintainer hasn't gotten around to reproducing and/or fixing it yet. And if the desire is to auto-close stale issues that are missing information, then auto-closing should be scoped specifically to issues tagged as such, not just "any issue that has been quiet for a while".

Edit: Auto-closing of issues is why I stopped reporting issues to Fedora, by the way.

@nh2
Copy link
Contributor

nh2 commented Apr 29, 2022

To give some more insight on the effect the stalebot has, here is my inbox:

(Note this shows Nix's stalebot alone, it does not include the 100s of other repositories in which I'm subscribed to 1000s of issues.)

image

On some days, like 16/04/2022, I just don't have the time to deal with all this.

So I give up. I imagine it's the same for many others.

With a stalebot that closes, the issue will then quite certainly be closed, even thout I that most of these weren't fixed. The project will then lose track of those well-reported problems. The open-issue search will no longer show them when people search for their problems.

Auto-closing of issues is why I stopped reporting issues to Fedora

Yeah. Auto-closing of issues is why I stopped contributing to Signal. It sucks to be working into the bin.

@kamadorueda
Copy link
Member

Given:

  • The significant amount of spam, which can be interpreted as a big portion of issues not having someone with the skills work on them
  • The fact that users are required to constantly refresh their issue until someone with the skills come and solve it (but as the spam shows nobody will probably come)

Then probably the most honest thing to do is just saying "We don't have enough humans over here, so please don't ask for feature requests, we just accept bug/performance/documentation PRs, and flakes related feedback"

That would reduce the spam, would save people time since they won't give feedback that produces no progress, and would remove such bot wall which feels just too cold to me

The bot is just a cheap solution to the real problem: we don't have enough empowered and skilled humans over there as to handle the target audience size

One should always try to solve the root of the problem

@nh2
Copy link
Contributor

nh2 commented Apr 29, 2022

Then probably the most honest thing to do is just saying "We don't have enough humans over here, so please don't ask for feature requests, we just accept bug/performance/documentation PRs, and flakes related feedback"

It's good to have feature request tickets where people can discuss how stuff should work, add upvotes to indicate desire, and so on.

There is no fundamental problem with having a high issue count number. It should correctly reflect the number of bugs and feature requests in the project.

The only thing to prevent is to have open issues that are in fact solved. For this one needs a triaging system, to keep track of which issues contributers with free time should look at to weed those out.

This was the original motivation of the non-closing stale bot in nixpkgs: Help with triage, and track the info that it is unknown whether the issue was solved by now. That's what "stale" means. It doen't mean "probably fixed". It means "maybe, possibly, unlikely, fixed, we don't know".

(The chance of a bug fixing itself over time is small; my guess is that < 5% of issues get solved without the person fixing it being unaware of the corresponding issue. So I personally question the positive impact it can have. In nixpkgs the self-fixing rate may be slightly higher than in nix, simply because of upstream packages changing. In any case, it's not an unreasonable desire to close out those 5% of fixed-but-fogotten issues, if it doesn't make working with the other 95% a pain.)

A good system would be a triage queue where a stale label is attached, and then contributors with free time for triaging can round-robin through that (e.g. with this view with label:"2.status: stale" sorted by Least recently updated). Github + the stale bot implement this only poorly, because:

  • The bot messages spam everybody subscribed.
  • The spam could be avoided if the bot just attached the stale label (that doesn't send an email). But then it cannot post a message that explains what that label means and link to the bot's policy (useful for new contributors).

The above two are less bad when the bot just labels and explains, but doesn't auto-close: Then you can at least ignore the notifiactions in your email program with a filter (you'll still see the spam in the Github notifications page, but that's less bad).

But if the bot closes, you cannot filter away the email.

This is why the bot should not auto-close: It destroys this not-great-but-acceptable triage system.

@ryantm
Copy link
Member

ryantm commented Apr 29, 2022

useful for new contributors

It would be great if it only posted a comment on the user's first stale issue/pr.

@nh2
Copy link
Contributor

nh2 commented Apr 29, 2022

Maybe we should stop making the bot post a message at all.

You can attach a description to the label that explains its meaning. Until now, the 2.status: stale label didn't have such a description. But I just added one, and this is what it looks on hover:

image

Maybe this is good enough?

@ryantm
Copy link
Member

ryantm commented Apr 29, 2022

That's awesome. What happens when you try to add a link there?

@ryantm
Copy link
Member

ryantm commented Apr 29, 2022

image
It isn't clickable.

@nh2
Copy link
Contributor

nh2 commented Apr 29, 2022

It isn't clickable.

I have created a Github feature request: Allow links in issue label descriptions.

In any case, I the hoverable description might be a better solution than what we have now, even without a clickable link.

@Ericson2314
Copy link
Member Author

@nh2 Would you like to shepherd this too?

@nh2
Copy link
Contributor

nh2 commented Apr 29, 2022

@nh2 Would you like to shepherd this too?

OK!

@joepie91
Copy link
Contributor

joepie91 commented Apr 30, 2022

This is more about the nixpkgs repository than about the nix repository, but I have no idea where else to post this, so I'll just put it here for now in case it's useful; I built a proof-of-concept a while ago that automatically classifies open issues based on what nixpkgs package they appear to be about.

The proof-of-concept is slow and not perfect, but it demonstrates that even a simple substring-based classification approach could be an effective way to get a better picture of outstanding issues and find potential duplicates:

image

Perhaps this could help in reducing the amount of stale issues, by making it less of a shapeless issue pile.

The code is here: https://git.cryto.net/joepie91/nixpkgs-gh-issues

SuperSandro2000 pushed a commit to NixOS/nixpkgs that referenced this pull request May 26, 2022
Niklas Hambüchen noted in

NixOS/rfcs#124 (comment)

that we can add a label description for the stale label that appears
when you hover over the label, or look on

https://github.com/NixOS/nixpkgs/labels

I set the description to be

> https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md

which is our page explaining the stale bot.

The stale bot comments/emails are a significant burden on our most
prodigious contributors, and the reason for their existence to orient
new contributors.

Since our stale bot's configuration is benign enough to ignore (it
does not close), I believe it is good enough to satisfy the new
contributor orientation with the label description.

Therefore, this commit disables commenting when labeling an issue or
PR stale.

3. Making the Nix policy not auto-close, in light of the special situation of how the backlog arose in the first place.

# Detailed design
Copy link
Member

Choose a reason for hiding this comment

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

As written I feel the detailed design is more specific than necessary. Maybe it could be just "Follow the stale policy of nixpkgs, except Nix may have different exempt labels."

If you do want to keep the details, we should make it match how nixpkgs is now:

  1. change markComment to false
  2. add a bullet to add a good description for the stale 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.

Sure

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, let me know if it's good.

Copy link
Member

Choose a reason for hiding this comment

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

Looks fine to me now.

@ryantm
Copy link
Member

ryantm commented Jun 1, 2022

@nh2 @infinisil I feel like this is pretty close to ready, and we aren't seeing much opposition to it. I don't feel like we need to have a synchronous meeting to push this through, but please let me know if you disagree and I can work on scheduling something.

Could you please review the RFC text for any nits you have?

@Ericson2314 Ericson2314 force-pushed the stale-nix-no-close branch from 6aba5df to b298d1a Compare June 2, 2022 00:28
@nh2
Copy link
Contributor

nh2 commented Jun 2, 2022

I don't feel like we need to have a synchronous meeting to push this through, but please let me know if you disagree

It's good by me.

Thanks!

Co-authored-by: Niklas Hambüchen <mail@nh2.me>
Copy link
Member

@infinisil infinisil left a comment

Choose a reason for hiding this comment

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

@ryantm Agreed, I think this RFC has overwhelming support and should be accepted, no need for a synchronous meeting. I checked the text and it looks good to me!

@ryantm
Copy link
Member

ryantm commented Jun 3, 2022

The Final Comment Period for RFC 0124 has started with disposition to merge and, barring any blocking issues, will be merged after 2022-06-14. Your opinions, comments, and approvals are welcome!

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/rfc-0124-do-not-auto-close-stale-nix-issues-and-prs-matching-nixpkgss-policy/19499/1

@abathur
Copy link
Member

abathur commented Jun 4, 2022

I mentioned this on the discourse thread when this came up (and elsewhere over the past few years--sorry if I'm a broken record), but I see a lot of back-and-forth over it here, so I'll link it (https://discourse.nixos.org/t/stale-bot-for-nix-just-closed-a-bunch-of-stuff/18661/3) and reiterate that I think the ~compromise exit scenario is a bot/workflow that lets human maintainers manually request feedback and queue issues for closure if feedback isn't provided.

This gives maintainers a lever for reducing the human logistical work of keeping track of whether issues have enough information to be actionable, while not degrading users/contributors with bot-driven hoop-jumping. This is most of the up-side of auto-close without most of the down-side. The progress GH is making towards their roadmap suggests that the key bits for building a well-automated triage-queue view could be in place this year?

@edolstra edolstra added status: FCP in Final Comment Period and removed status: in discussion labels Jun 15, 2022
@edolstra
Copy link
Member

@ryantm Since FCP has passed, do you want to go ahead and merge this?

@ryantm
Copy link
Member

ryantm commented Jun 15, 2022

@edolstra yes, please go ahead and merge it. I cannot.

@ryantm
Copy link
Member

ryantm commented Jun 19, 2022

@NixOS/rfc-steering-committee the FCP has passed with no additional comments. Please merge this RFC.

@kevincox kevincox merged commit 1b1b1d1 into NixOS:master Jun 19, 2022
@Ericson2314 Ericson2314 deleted the stale-nix-no-close branch July 10, 2022 21:49
@7c6f434c 7c6f434c mentioned this pull request Sep 21, 2022
@alyssais
Copy link
Member

In the interests of implementing point 2 of the design of this RFC, I've generated a list of PRs that were closed by stalebot and have not yet been reopened.

The list
https://github.com/NixOS/nix/issues/63
https://github.com/NixOS/nix/issues/105
https://github.com/NixOS/nix/issues/125
https://github.com/NixOS/nix/issues/137
https://github.com/NixOS/nix/issues/148
https://github.com/NixOS/nix/issues/193
https://github.com/NixOS/nix/issues/239
https://github.com/NixOS/nix/issues/286
https://github.com/NixOS/nix/issues/287
https://github.com/NixOS/nix/issues/301
https://github.com/NixOS/nix/issues/306
https://github.com/NixOS/nix/issues/311
https://github.com/NixOS/nix/issues/340
https://github.com/NixOS/nix/issues/374
https://github.com/NixOS/nix/issues/389
https://github.com/NixOS/nix/issues/393
https://github.com/NixOS/nix/issues/394
https://github.com/NixOS/nix/issues/424
https://github.com/NixOS/nix/issues/426
https://github.com/NixOS/nix/issues/430
https://github.com/NixOS/nix/issues/438
https://github.com/NixOS/nix/issues/446
https://github.com/NixOS/nix/issues/449
https://github.com/NixOS/nix/issues/450
https://github.com/NixOS/nix/issues/457
https://github.com/NixOS/nix/issues/468
https://github.com/NixOS/nix/issues/471
https://github.com/NixOS/nix/issues/478
https://github.com/NixOS/nix/issues/483
https://github.com/NixOS/nix/issues/494
https://github.com/NixOS/nix/issues/496
https://github.com/NixOS/nix/issues/498
https://github.com/NixOS/nix/issues/512
https://github.com/NixOS/nix/issues/518
https://github.com/NixOS/nix/issues/529
https://github.com/NixOS/nix/issues/536
https://github.com/NixOS/nix/issues/539
https://github.com/NixOS/nix/issues/540
https://github.com/NixOS/nix/issues/543
https://github.com/NixOS/nix/issues/547
https://github.com/NixOS/nix/issues/553
https://github.com/NixOS/nix/issues/554
https://github.com/NixOS/nix/issues/563
https://github.com/NixOS/nix/issues/568
https://github.com/NixOS/nix/issues/579
https://github.com/NixOS/nix/issues/592
https://github.com/NixOS/nix/issues/596
https://github.com/NixOS/nix/issues/601
https://github.com/NixOS/nix/issues/603
https://github.com/NixOS/nix/issues/604
https://github.com/NixOS/nix/issues/607
https://github.com/NixOS/nix/issues/610
https://github.com/NixOS/nix/issues/620
https://github.com/NixOS/nix/issues/621
https://github.com/NixOS/nix/issues/639
https://github.com/NixOS/nix/issues/644
https://github.com/NixOS/nix/issues/647
https://github.com/NixOS/nix/issues/660
https://github.com/NixOS/nix/issues/673
https://github.com/NixOS/nix/issues/687
https://github.com/NixOS/nix/issues/692
https://github.com/NixOS/nix/issues/693
https://github.com/NixOS/nix/issues/696
https://github.com/NixOS/nix/issues/698
https://github.com/NixOS/nix/issues/715
https://github.com/NixOS/nix/issues/728
https://github.com/NixOS/nix/issues/743
https://github.com/NixOS/nix/issues/756
https://github.com/NixOS/nix/issues/761
https://github.com/NixOS/nix/issues/765
https://github.com/NixOS/nix/issues/766
https://github.com/NixOS/nix/issues/768
https://github.com/NixOS/nix/issues/769
https://github.com/NixOS/nix/issues/777
https://github.com/NixOS/nix/issues/780
https://github.com/NixOS/nix/issues/801
https://github.com/NixOS/nix/issues/807
https://github.com/NixOS/nix/issues/811
https://github.com/NixOS/nix/issues/817
https://github.com/NixOS/nix/issues/818
https://github.com/NixOS/nix/issues/820
https://github.com/NixOS/nix/issues/821
https://github.com/NixOS/nix/issues/832
https://github.com/NixOS/nix/issues/836
https://github.com/NixOS/nix/issues/838
https://github.com/NixOS/nix/issues/847
https://github.com/NixOS/nix/issues/856
https://github.com/NixOS/nix/issues/861
https://github.com/NixOS/nix/issues/863
https://github.com/NixOS/nix/issues/874
https://github.com/NixOS/nix/issues/875
https://github.com/NixOS/nix/issues/885
https://github.com/NixOS/nix/issues/888
https://github.com/NixOS/nix/issues/889
https://github.com/NixOS/nix/issues/890
https://github.com/NixOS/nix/issues/897
https://github.com/NixOS/nix/issues/899
https://github.com/NixOS/nix/issues/900
https://github.com/NixOS/nix/issues/902
https://github.com/NixOS/nix/issues/905
https://github.com/NixOS/nix/issues/907
https://github.com/NixOS/nix/issues/908
https://github.com/NixOS/nix/issues/909
https://github.com/NixOS/nix/issues/911
https://github.com/NixOS/nix/issues/912
https://github.com/NixOS/nix/issues/916
https://github.com/NixOS/nix/issues/922
https://github.com/NixOS/nix/issues/930
https://github.com/NixOS/nix/issues/935
https://github.com/NixOS/nix/issues/942
https://github.com/NixOS/nix/issues/943
https://github.com/NixOS/nix/issues/954
https://github.com/NixOS/nix/issues/962
https://github.com/NixOS/nix/issues/964
https://github.com/NixOS/nix/issues/966
https://github.com/NixOS/nix/issues/995
https://github.com/NixOS/nix/issues/996
https://github.com/NixOS/nix/issues/1009
https://github.com/NixOS/nix/issues/1010
https://github.com/NixOS/nix/issues/1017
https://github.com/NixOS/nix/issues/1035
https://github.com/NixOS/nix/issues/1036
https://github.com/NixOS/nix/issues/1039
https://github.com/NixOS/nix/issues/1043
https://github.com/NixOS/nix/issues/1044
https://github.com/NixOS/nix/issues/1047
https://github.com/NixOS/nix/issues/1058
https://github.com/NixOS/nix/issues/1062
https://github.com/NixOS/nix/issues/1089
https://github.com/NixOS/nix/issues/1112
https://github.com/NixOS/nix/issues/1123
https://github.com/NixOS/nix/issues/1125
https://github.com/NixOS/nix/issues/1126
https://github.com/NixOS/nix/issues/1130
https://github.com/NixOS/nix/issues/1148
https://github.com/NixOS/nix/issues/1163
https://github.com/NixOS/nix/issues/1164
https://github.com/NixOS/nix/issues/1175
https://github.com/NixOS/nix/issues/1180
https://github.com/NixOS/nix/issues/1353
https://github.com/NixOS/nix/issues/1379
https://github.com/NixOS/nix/issues/1667
https://github.com/NixOS/nix/issues/1701
https://github.com/NixOS/nix/issues/1807
https://github.com/NixOS/nix/issues/1975
https://github.com/NixOS/nix/issues/2029
https://github.com/NixOS/nix/issues/2038
https://github.com/NixOS/nix/issues/2039
https://github.com/NixOS/nix/issues/2044
https://github.com/NixOS/nix/issues/2048
https://github.com/NixOS/nix/issues/2081
https://github.com/NixOS/nix/issues/2095
https://github.com/NixOS/nix/issues/2105
https://github.com/NixOS/nix/issues/2108
https://github.com/NixOS/nix/issues/2113
https://github.com/NixOS/nix/issues/2115
https://github.com/NixOS/nix/issues/2119
https://github.com/NixOS/nix/issues/2120
https://github.com/NixOS/nix/issues/2123
https://github.com/NixOS/nix/issues/2125
https://github.com/NixOS/nix/issues/2131
https://github.com/NixOS/nix/issues/2133
https://github.com/NixOS/nix/issues/2134
https://github.com/NixOS/nix/issues/2141
https://github.com/NixOS/nix/issues/2144
https://github.com/NixOS/nix/issues/2148
https://github.com/NixOS/nix/issues/2156
https://github.com/NixOS/nix/issues/2172
https://github.com/NixOS/nix/issues/2174
https://github.com/NixOS/nix/issues/2184
https://github.com/NixOS/nix/issues/2196
https://github.com/NixOS/nix/issues/2204
https://github.com/NixOS/nix/issues/2210
https://github.com/NixOS/nix/issues/2213
https://github.com/NixOS/nix/issues/2214
https://github.com/NixOS/nix/issues/2218
https://github.com/NixOS/nix/issues/2219
https://github.com/NixOS/nix/issues/2222
https://github.com/NixOS/nix/issues/2227
https://github.com/NixOS/nix/issues/2233
https://github.com/NixOS/nix/issues/2235
https://github.com/NixOS/nix/issues/2242
https://github.com/NixOS/nix/issues/2246
https://github.com/NixOS/nix/issues/2252
https://github.com/NixOS/nix/issues/2253
https://github.com/NixOS/nix/issues/2262
https://github.com/NixOS/nix/issues/2264
https://github.com/NixOS/nix/issues/2267
https://github.com/NixOS/nix/issues/2271
https://github.com/NixOS/nix/issues/2272
https://github.com/NixOS/nix/issues/2285
https://github.com/NixOS/nix/issues/2289
https://github.com/NixOS/nix/issues/2296
https://github.com/NixOS/nix/issues/2298
https://github.com/NixOS/nix/issues/2300
https://github.com/NixOS/nix/issues/2301
https://github.com/NixOS/nix/issues/2304
https://github.com/NixOS/nix/issues/2307
https://github.com/NixOS/nix/issues/2308
https://github.com/NixOS/nix/issues/2310
https://github.com/NixOS/nix/issues/2324
https://github.com/NixOS/nix/issues/2328
https://github.com/NixOS/nix/issues/2337
https://github.com/NixOS/nix/issues/2343
https://github.com/NixOS/nix/issues/2344
https://github.com/NixOS/nix/issues/2345
https://github.com/NixOS/nix/issues/2348
https://github.com/NixOS/nix/issues/2353
https://github.com/NixOS/nix/issues/2355
https://github.com/NixOS/nix/issues/2369
https://github.com/NixOS/nix/issues/2370
https://github.com/NixOS/nix/issues/2372
https://github.com/NixOS/nix/issues/2381
https://github.com/NixOS/nix/issues/2389
https://github.com/NixOS/nix/issues/2399
https://github.com/NixOS/nix/issues/2408
https://github.com/NixOS/nix/issues/2410
https://github.com/NixOS/nix/issues/2411
https://github.com/NixOS/nix/issues/2413
https://github.com/NixOS/nix/issues/2414
https://github.com/NixOS/nix/issues/2415
https://github.com/NixOS/nix/issues/2421
https://github.com/NixOS/nix/issues/2440
https://github.com/NixOS/nix/issues/2449
https://github.com/NixOS/nix/issues/2463
https://github.com/NixOS/nix/issues/2472
https://github.com/NixOS/nix/issues/2473
https://github.com/NixOS/nix/issues/2475
https://github.com/NixOS/nix/issues/2477
https://github.com/NixOS/nix/issues/2480
https://github.com/NixOS/nix/issues/2496
https://github.com/NixOS/nix/issues/2497
https://github.com/NixOS/nix/issues/2499
https://github.com/NixOS/nix/issues/2507
https://github.com/NixOS/nix/issues/2512
https://github.com/NixOS/nix/issues/2513
https://github.com/NixOS/nix/issues/2520
https://github.com/NixOS/nix/issues/2521
https://github.com/NixOS/nix/issues/2522
https://github.com/NixOS/nix/issues/2532
https://github.com/NixOS/nix/issues/2536
https://github.com/NixOS/nix/issues/2537
https://github.com/NixOS/nix/issues/2539
https://github.com/NixOS/nix/issues/2540
https://github.com/NixOS/nix/issues/2543
https://github.com/NixOS/nix/issues/2545
https://github.com/NixOS/nix/issues/2548
https://github.com/NixOS/nix/issues/2553
https://github.com/NixOS/nix/issues/2556
https://github.com/NixOS/nix/issues/2567
https://github.com/NixOS/nix/issues/2581
https://github.com/NixOS/nix/issues/2592
https://github.com/NixOS/nix/issues/2593
https://github.com/NixOS/nix/issues/2605
https://github.com/NixOS/nix/issues/2610
https://github.com/NixOS/nix/issues/2614
https://github.com/NixOS/nix/issues/2615
https://github.com/NixOS/nix/issues/2620
https://github.com/NixOS/nix/issues/2621
https://github.com/NixOS/nix/issues/2624
https://github.com/NixOS/nix/issues/2630
https://github.com/NixOS/nix/issues/2631
https://github.com/NixOS/nix/issues/2636
https://github.com/NixOS/nix/issues/2642
https://github.com/NixOS/nix/issues/2644
https://github.com/NixOS/nix/issues/2645
https://github.com/NixOS/nix/issues/2659
https://github.com/NixOS/nix/issues/2661
https://github.com/NixOS/nix/issues/2662
https://github.com/NixOS/nix/issues/2668
https://github.com/NixOS/nix/issues/2671
https://github.com/NixOS/nix/issues/2672
https://github.com/NixOS/nix/issues/2676
https://github.com/NixOS/nix/issues/2682
https://github.com/NixOS/nix/issues/2684
https://github.com/NixOS/nix/issues/2691
https://github.com/NixOS/nix/issues/2702
https://github.com/NixOS/nix/issues/2711
https://github.com/NixOS/nix/issues/2712
https://github.com/NixOS/nix/issues/2713
https://github.com/NixOS/nix/issues/2714
https://github.com/NixOS/nix/issues/2716
https://github.com/NixOS/nix/issues/2732
https://github.com/NixOS/nix/issues/2736
https://github.com/NixOS/nix/issues/2738
https://github.com/NixOS/nix/issues/2740
https://github.com/NixOS/nix/issues/2742
https://github.com/NixOS/nix/issues/2747
https://github.com/NixOS/nix/issues/2754
https://github.com/NixOS/nix/issues/2755
https://github.com/NixOS/nix/issues/2758
https://github.com/NixOS/nix/issues/2762
https://github.com/NixOS/nix/issues/2768
https://github.com/NixOS/nix/issues/2769
https://github.com/NixOS/nix/issues/2771
https://github.com/NixOS/nix/issues/2773
https://github.com/NixOS/nix/issues/2783
https://github.com/NixOS/nix/issues/2786
https://github.com/NixOS/nix/issues/2787
https://github.com/NixOS/nix/issues/2807
https://github.com/NixOS/nix/issues/2811
https://github.com/NixOS/nix/issues/2870
https://github.com/NixOS/nix/issues/2906
https://github.com/NixOS/nix/issues/2908
https://github.com/NixOS/nix/issues/2915
https://github.com/NixOS/nix/issues/2916
https://github.com/NixOS/nix/issues/2919
https://github.com/NixOS/nix/issues/2933
https://github.com/NixOS/nix/issues/2941
https://github.com/NixOS/nix/issues/2942
https://github.com/NixOS/nix/issues/2954
https://github.com/NixOS/nix/issues/2956
https://github.com/NixOS/nix/issues/2976
https://github.com/NixOS/nix/issues/2980
https://github.com/NixOS/nix/issues/2985
https://github.com/NixOS/nix/issues/2996
https://github.com/NixOS/nix/issues/2999
https://github.com/NixOS/nix/issues/3001
https://github.com/NixOS/nix/issues/3002
https://github.com/NixOS/nix/issues/3011
https://github.com/NixOS/nix/issues/3018
https://github.com/NixOS/nix/issues/3027
https://github.com/NixOS/nix/issues/3033
https://github.com/NixOS/nix/issues/3035
https://github.com/NixOS/nix/issues/3043
https://github.com/NixOS/nix/issues/3047
https://github.com/NixOS/nix/issues/3049
https://github.com/NixOS/nix/issues/3050
https://github.com/NixOS/nix/issues/3061
https://github.com/NixOS/nix/issues/3067
https://github.com/NixOS/nix/issues/3077
https://github.com/NixOS/nix/issues/3085
https://github.com/NixOS/nix/issues/3100
https://github.com/NixOS/nix/issues/3105
https://github.com/NixOS/nix/issues/3117
https://github.com/NixOS/nix/issues/3139
https://github.com/NixOS/nix/issues/3162
https://github.com/NixOS/nix/issues/3176
https://github.com/NixOS/nix/issues/3181
https://github.com/NixOS/nix/issues/3215
https://github.com/NixOS/nix/issues/3233
https://github.com/NixOS/nix/issues/3235
https://github.com/NixOS/nix/issues/3254
https://github.com/NixOS/nix/issues/3258
https://github.com/NixOS/nix/issues/3263
https://github.com/NixOS/nix/issues/3267
https://github.com/NixOS/nix/issues/3275
https://github.com/NixOS/nix/issues/3277
https://github.com/NixOS/nix/issues/3279
https://github.com/NixOS/nix/issues/3285
https://github.com/NixOS/nix/issues/3295
https://github.com/NixOS/nix/issues/3304
https://github.com/NixOS/nix/issues/3306
https://github.com/NixOS/nix/issues/3314
https://github.com/NixOS/nix/issues/3319
https://github.com/NixOS/nix/issues/3320
https://github.com/NixOS/nix/issues/3334
https://github.com/NixOS/nix/issues/3360
https://github.com/NixOS/nix/issues/3362
https://github.com/NixOS/nix/issues/3367
https://github.com/NixOS/nix/issues/3369
https://github.com/NixOS/nix/issues/3382
https://github.com/NixOS/nix/issues/3390
https://github.com/NixOS/nix/issues/3391
https://github.com/NixOS/nix/issues/3401
https://github.com/NixOS/nix/issues/3402
https://github.com/NixOS/nix/issues/3411
https://github.com/NixOS/nix/issues/3417
https://github.com/NixOS/nix/issues/3420
https://github.com/NixOS/nix/issues/3421
https://github.com/NixOS/nix/issues/3423
https://github.com/NixOS/nix/issues/3436
https://github.com/NixOS/nix/issues/3452
https://github.com/NixOS/nix/issues/3454
https://github.com/NixOS/nix/issues/3467
https://github.com/NixOS/nix/issues/3507
https://github.com/NixOS/nix/issues/3521
https://github.com/NixOS/nix/issues/3530
https://github.com/NixOS/nix/issues/3789
https://github.com/NixOS/nix/issues/3887
https://github.com/NixOS/nix/issues/3954
https://github.com/NixOS/nix/issues/3956
https://github.com/NixOS/nix/issues/3968
https://github.com/NixOS/nix/issues/3973
https://github.com/NixOS/nix/issues/3974
https://github.com/NixOS/nix/issues/3986
https://github.com/NixOS/nix/issues/3993
https://github.com/NixOS/nix/issues/3998
https://github.com/NixOS/nix/issues/4007
https://github.com/NixOS/nix/issues/4031
https://github.com/NixOS/nix/issues/4034
https://github.com/NixOS/nix/issues/4045
https://github.com/NixOS/nix/issues/4067
https://github.com/NixOS/nix/issues/4075
https://github.com/NixOS/nix/issues/4095

I've checked a random sample of 10 to check there were no false positives, so the list should be accurate.

To reopen all the issues (if they felt that's the right way to go about implementing point 2), somebody with triage permissions on the Nix repo would need to run the following, with the issue list on stdin:

xargs -n 1 gh issue reopen

@alyssais
Copy link
Member

Finally implemented with NixOS/nix#7817 (comment).

@Ericson2314
Copy link
Member Author

Thanks again for @alyssais for prodding this to completion!

@infinisil infinisil added status: accepted and removed status: FCP in Final Comment Period labels Aug 23, 2023
KAction pushed a commit to KAction/rfcs that referenced this pull request Apr 13, 2024
…gs's policy (NixOS#124)

* nix-mark-stale-issues: Copy template

* nix-mark-stale-issues: First draft

* stale-nix-no-close: Update

* stale-nix-no-close: Make the diff less normative

* nix-mark-stale-issues: Fix typo

Thanks!

Co-authored-by: Niklas Hambüchen <mail@nh2.me>

Co-authored-by: Niklas Hambüchen <mail@nh2.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.