From 557d2807fee9b6deea7cc77982b000fcecf26210 Mon Sep 17 00:00:00 2001 From: Kevin Cox Date: Wed, 8 Mar 2023 08:39:55 -0500 Subject: [PATCH] Update RFC process documentation to reflect **RFC 0130: Stalled RFCs** (#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. --- README.md | 64 +++++++++++++++++++++++++++++++++-- rfcs/0036-review-process.png | Bin 27481 -> 0 bytes 2 files changed, 62 insertions(+), 2 deletions(-) delete mode 100644 rfcs/0036-review-process.png diff --git a/README.md b/README.md index 892e23595..f32b30af2 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 50498aec285ab5a9e86d531af926cfe63c94e425..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27481 zcmeFZWmF!`)-8&=1_%(G;0__UYjAfD?k>UICAfQVcbA0V?!hg%yTfhZ-DmIp{XApb zdw!fd#*>k(bahpCRd=nq=9;TRWTizB;Xc5DfPf&1eG!re0RdA0{$Rp@0sq6gC)o}B z1#T}OrU(NAv#=(!3Iak1A|}MI=%RhlhUjpw?D1UjU}9V+OM``iI3sLPD)+5g5BU_z z5`p@6XHqvu@cd7U9upyC4Fpb% z0{ZehLGXFrPX2;Q0pktw^7{jk<&FhS2m%KDmWe?&&z0LzY2S{;A?t%c@BzP04WQBT z0Ba89YZu;UdI)bPyM%$njcVMA)V`fB%M#^)2|+fy zu>QG^_n;J+4QCN1{IBN&Hv#^C=q5CwAP5=4A&%a@jx^e)`7JUkEd3GRoCdF-*c zgGLEg#dR&byjCv3;P`dF!!Fu%A?n=E&t{zXlOt5e=B_O~UaxpvPOEsWqh(@6*q}hd zpnwkDG9U!TfIN0z)i<;qZlzk|iysFK>>|6bf;VYe6>0|75ZZu&E^c#zqR{!h&Qv%S zD8))JDf-&m%B1mu3^;=kYC^p(2o@ulY&)t1#V^oTlg$St?ihlv5#e=C8NLFm`!PY* zAN`lVQb^|rx&T{_+0!2FBQWWzwenyU~%M`$2xOs`K!XE3nL5vl^HNN*-A&=EPv zFT>Y0^g;ayvWZjWPmKF!q5&OAgZK}2iF8iDn~GuK===4@IIgxTP*j&v6omEY?KTON z#4*{ip+{o~hfs&o6b#Z1D-D=&;3H9WCw!jQ$-0`$8E==~n3mqpTxK%!?KD9FMi;?H z?Ir?Mj*Btl*js4XXQ9+)FyD02V?l)@ujvo&)CMUNC!#Y9kSr=Rs+p72WDs|4qsH9O zWFS^7{G~>!GMYD`R#x}8q2;9h?BeDQ_ckiu!m*5XLcw?&zr>7Fgfo2= z-TMReB@v(>uNUcr-v!LC7bSfe@2TUv{DxTdY+O&{32uR`+!fpX`q(58J$%%SrPC zhi0BmEHaoSIOnlEJ-jv5mR_pq5oPSOPRd65B`qVnJr59{7(3SD=w$Bq3Z|@nv9?uj zD9&l7X_Tk46Cg(}MRf1l-esIfiD1q;7hkSlHrcKWnH^5L4jqSWnQxmj@_s_qSXwMQ zvZ531#eTL}cFJn5!_swEINx`IUXW1Wd7kpMZ*Tc<88uqQsqB0%*I{kcT`n_SkWg

>redoz)9~yQ{+=^t-VQWbs>bBTTj=Z_>UZ; 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