Skip to content

Commit

Permalink
Update RFC process documentation to reflect **RFC 0130: Stalled RFCs** (
Browse files Browse the repository at this point in the history
#142)

The main sections are largely copy+pasted from the RFC text itself. Minor modifications were made to integrate into the existing document.

- Change to future tense to reflect what actions will be taken in each scenario.
- Fix up some links to be relative to this document.
- Update template message to be a codeblock for easy copy+pasting when used.
  • Loading branch information
kevincox authored Mar 8, 2023
1 parent bee468a commit 557d280
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 2 deletions.
64 changes: 62 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,39 @@ first get the RFC merged into the RFC repository as a markdown file under the
`rfcs` directory. At that point the RFC is accepted and may be implemented
with the goal of eventual inclusion into Nix or Nixpkgs.*

![RFC Process](./rfcs/0036-rfc-process.png)

```mermaid
graph TD
Start((Start)) --> Draft
Draft -->|Ready for Review| Discuss
style Draft fill:#008,color:#FFF
Discuss[Discuss and Refine]
Discuss ---> |On Hold| Draft
Discuss --> |Can't Find Shepherds| NoShepherds
Discuss --> |Motion for FCP| FCP
NoShepherds[Closed - Lack of Interest]:::closed
NoShepherds --> |Renewed Interest| Discuss
FCP[Final Coment Phase]
FCP --> |FCP Canceled| Discuss
FCP --> |Accept| Merged
FCP --> |Reject| Rejected
Merged
style Merged fill:#080,color:#FFF
Rejected[Closed - Rejected]:::closed
Withdrawn[Closed - Withdrawn]:::closed
Discuss & Draft --->|Author Withdraws| Withdrawn
classDef closed fill:#800,color:#FFF
```


0. Have a cool idea!
1. Fill in the RFC. Put care into the details: RFCs that do not present
convincing motivation, demonstrate understanding of the impact of the design,
Expand Down Expand Up @@ -148,10 +181,37 @@ with the goal of eventual inclusion into Nix or Nixpkgs.*
circumstances, that are stopping the discussion to come to another decision,
change.

### Unhappy Cases

![RFC Process](./rfcs/0036-rfc-process.png)
![Review Process](./rfcs/0036-review-process.png)
Ideally every RFC will complete review and be accepted or rejected. Unfortunately this can not always be the case. Much like in distributed systems, timeouts are needed to avoid spending resources monitoring tasks that will never complete.

#### On Hold

If the author is unable or unwilling to update the RFC in a timely fashion they may mark an RFC as "On Hold" to indicate that the RFC should not continue to be pushed forward for the time being.

The author can [mark the PR as a Draft](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#converting-a-pull-request-to-a-draft) and the existing label [status: on hold](https://github.com/NixOS/rfcs/pulls?q=is%3Apr+label%3A%22status%3A+on+hold%22+is%3Aopen) can be applied to the PR by the NixOS RFC Steering Committee for tracking reasons.

RFCs in Draft status will be completely ignored by the NixOS RFC Steering Committee. It is also expected that community members will largely refrain from review until the author has indicated that the RFC is once again ready.

At any point of time the author can either remove the Draft status from the RFC to indicate that they believe that it is ready for additional review and that they have the time to continue the RFC process. Or they can close the RFC to indicate that this RFC is unlikely to to ever move forward.

## Can't Find Shepherds

If an RFC is unable to find an adequate number of shepherds after 1 month of being open, the following message will be added to the PR to suggest ways to find more support:

```markdown
This RFC has not acquired enough shepherds. This typically shows lack of interest from the community. In order to progress [a full shepherd team is required](https://github.com/NixOS/rfcs/#shepherd-team). Consider trying to raise interest by [posting in Discourse](https://discourse.nixos.org/), [talking in Matrix](https://matrix.to/#/#community:nixos.org) or reaching out to people that you know.

If not enough shepherds can be found in the next month we will close this RFC until we can find enough interested participants. The PR can be reopened at any time if more shepherd nominations are made.

[See more info on the Nix RFC process here](https://github.com/NixOS/rfcs/blob/master/README.md)
```

If another month elapses after and a shepherd team still hasn't been assembled the following message will be posted, the `status: insufficient interest` label will be added and the issue will be closed.

```markdown
This RFC is being closed due to lack interest. If enough shepherds are found this issue can be reopened. If you don't have permission to reopen please [open an issue for the NixOS RFC Steering Committee](https://github.com/NixOS/rfc-steering-committee/issues/new) linking to this PR.
```

## The RFC life-cycle

Expand Down
Binary file removed rfcs/0036-review-process.png
Binary file not shown.

0 comments on commit 557d280

Please sign in to comment.