diff --git a/README.md b/README.md index 892e235..f32b30a 100644 --- a/README.md +++ b/README.md @@ -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, @@ -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 diff --git a/rfcs/0036-review-process.png b/rfcs/0036-review-process.png deleted file mode 100644 index 50498ae..0000000 Binary files a/rfcs/0036-review-process.png and /dev/null differ