mirror of
https://github.com/NixOS/rfcs.git
synced 2025-11-09 12:06:11 +01:00
[RFC 0124] Do not auto-close stale Nix issues and PRs, matching Nixpkgs's policy (#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>
This commit is contained in:
parent
01d0c0798a
commit
1b1b1d14a7
1 changed files with 112 additions and 0 deletions
112
rfcs/0000-nix-mark-stale-issues.md
Normal file
112
rfcs/0000-nix-mark-stale-issues.md
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
---
|
||||
feature: nix-mark-stale-issues
|
||||
start-date: 2022-04-18
|
||||
author: John Ericson (@Ericson2314)
|
||||
co-authors: (find a buddy later to help out with the RFC)
|
||||
shepherd-team: @ryantm, @nh2, @infinisil
|
||||
shepherd-leader: @ryantm
|
||||
related-issues: (will contain links to implementation PRs)
|
||||
---
|
||||
|
||||
# Summary
|
||||
[summary]: #summary
|
||||
|
||||
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](https://github.com/NixOS/rfcs/blob/master/rfcs/0051-mark-stale-issues.md).
|
||||
|
||||
# Motivation
|
||||
[motivation]: #motivation
|
||||
|
||||
## Background
|
||||
|
||||
In 2019, after much discussion,
|
||||
[RFC 51](https://github.com/NixOS/rfcs/blob/master/rfcs/0051-mark-stale-issues.md) was approved to mark old Nixpkgs issues and PRs as stale,
|
||||
but not close anything.
|
||||
|
||||
In 2021, @garbas contributed [Nix PR 4526](https://github.com/NixOS/nix/pull/4526),
|
||||
which initially just made a stale bot configuration in line with Nixpkgs.
|
||||
But @edolstra [specifically requested](https://github.com/NixOS/nix/pull/4526#discussion_r571687438) that stale items do be closed.
|
||||
To be clear, there *is* no formal violation, as that RFC was just about Nixpkgs, but we should reconsider whether this was a good idea.
|
||||
|
||||
## Clear policy
|
||||
|
||||
Firstly, whatever the policy is, it should be clearly announced.
|
||||
|
||||
Without a big announcement of this decision, many of us were caught off 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.
|
||||
Without knowing that auto-closing was enabled, people who might have bothered to aggressively triage stale issues before the auto-close deadline didn't.
|
||||
For the social aspects of the stale bot auto-closing to work as intended, it is very important people *do* know the policy, because incentivizing that triaging by the threat of auto-closing is precisely the point!
|
||||
|
||||
This RFC, no matter the outcome, can help make the policy clear and known to all.
|
||||
|
||||
## Consistent policy
|
||||
|
||||
All things equal, it is probably not a good idea to pick a different policy for Nix than the one decided by the community for Nixpkgs.
|
||||
The strong opinions in RFC 51 attest do attest that the community doesn't like auto-closing in that context.
|
||||
Many of those strong opinions apply to issue tracking for open source project in general, not just for Nixpkgs in particular.
|
||||
|
||||
## Nix's particular backlog
|
||||
|
||||
Still, we might ask whether the situation in Nix is different from Nixpkgs in ways that would motivate a different decision.
|
||||
We would in fact argue the opposite: that Nix is an especially *poor* candidate for auto-closing.
|
||||
Nix's backlog in particular reflects a long history of the community being able to raise issues without being empowered to address their own issues.
|
||||
This asymmetry inevitably led an ever-growing backlog.
|
||||
|
||||
We are doing somewhat better now, but have been busy just trying to keep up with new issues, and not yet working retroactively through the backlog as a team.
|
||||
To finish turning a new leaf, it would be very healthy gesture to go through that backlog, atoning for the prior state of affairs.
|
||||
Closing the backlog without review forfeits that opportunity.
|
||||
|
||||
## Summary
|
||||
|
||||
For these reasons, we advocate in priority order:
|
||||
|
||||
1. Making the policy, whatever it may be, loud and clear.
|
||||
|
||||
2. Making the Nix policy match the Nixpkgs policy, for simplicity.
|
||||
|
||||
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
|
||||
[design]: #detailed-design
|
||||
|
||||
1. Follow the stale policy of nixpkgs, except Nix may have different exempt labels.
|
||||
|
||||
That should look something like this diff to the `.github/stale.yml` configuration file:
|
||||
```diff
|
||||
diff --git a/.github/stale.yml b/.github/stale.yml
|
||||
index fe24942f4..539720b6d 100644
|
||||
--- a/.github/stale.yml
|
||||
+++ b/.github/stale.yml
|
||||
@@ -1,10 +1,8 @@
|
||||
# Configuration for probot-stale - https://github.com/probot/stale
|
||||
daysUntilStale: 180
|
||||
-daysUntilClose: 365
|
||||
+daysUntilClose: false
|
||||
exemptLabels:
|
||||
- "critical"
|
||||
+ - "never-stale"
|
||||
staleLabel: "stale"
|
||||
-markComment: |
|
||||
- I marked this as stale due to inactivity. → [More info](https://github.com/NixOS/nix/blob/master/.github/STALE-BOT.md)
|
||||
-closeComment: |
|
||||
- I closed this issue due to inactivity. → [More info](https://github.com/NixOS/nix/blob/master/.github/STALE-BOT.md)
|
||||
+markComment: false
|
||||
+closeComment: false
|
||||
```
|
||||
|
||||
2. Reopen recently auto-closed items, either automatically *en masse*, or manually allowing some triage.
|
||||
The route will be chosen based on human resourcing constraints; it is unclear which is less work.
|
||||
|
||||
# Drawbacks
|
||||
[drawbacks]: #drawbacks
|
||||
|
||||
Manually combing through the backlog takes time.
|
||||
|
||||
# Alternatives
|
||||
[alternatives]: #alternatives
|
||||
|
||||
1. Align Nixpkgs's and Nix's configs some other way.
|
||||
|
||||
2. Leave config as-is.
|
||||
Loading…
Add table
Add a link
Reference in a new issue