Skip to content

Commit 5bd5e0a

Browse files
joeyaiellorjmholt
andauthored
Updated governance and process: Working Groups (WGs) (#274)
* first draft of Working Group process * Update RFC0000-RFC-Process.md * Update RFC0000-RFC-Process.md Co-authored-by: Robert Holt <[email protected]> * Apply suggestions from code review Co-authored-by: Robert Holt <[email protected]>
1 parent bf1dcb1 commit 5bd5e0a

File tree

1 file changed

+59
-31
lines changed

1 file changed

+59
-31
lines changed

RFC0000-RFC-Process.md

+59-31
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,19 @@ This provides the community an opportunity to provide feedback before code is wr
1414
compatibility.
1515
The complete list of RFCs are available at https://github.com/powershell/powershell-rfc
1616

17-
This process was adapted from the Chef RFC process as well as from the DMTF.org process.
17+
This process was adapted from the Chef RFC process as well as from the DMTF.org process,
18+
and then heavily modified based on the experiences of maintaining PowerShell over the first years
19+
of the project.
1820

1921
## Roles
2022

2123
* **Author**: All members of the community are allowed to author new RFCs and can provide feedback to any RFC.
2224
* **PowerShell Committee**: The design committe that votes to accept or reject an RFC.
2325
(Learn more about the PowerShell Committee [here](https://github.com/PowerShell/PowerShell/blob/master/docs/community/governance.md#powershell-committee).)
2426
* **Committee Member**: An individual member of the PowerShell Committee.
27+
* **Working Group (WG)**: A group responsible for deciding whether or not an issue proposal in
28+
PowerShell/PowerShell, as well as for providing feedback within an RFC proposal.
29+
(Learn more about Working Groups [here](https://github.com/PowerShell/PowerShell/blob/master/docs/community/working-group.md).)
2530

2631
## RFC Submission Convention
2732

@@ -35,49 +40,70 @@ All RFC documents shall follow the [RFC template](RFCNNNN-New-RFC-Template.md).
3540

3641
## RFC Workflow
3742

38-
RFCs may go through the following stages:
43+
RFCs go through the following stages:
3944

40-
### Draft
45+
### Draft PR
4146

4247
This is the initial draft of an RFC posted for comments and considered a work-in-progress.
4348

44-
* New proposed drafts should be submitted as a Pull Request from the Author's fork into the `Draft-Accepted` folder.
45-
* The Author shall ensure that the `Allow edits from maintainers` box is checked so that a Committee Member can assign the next RFC number.
46-
* If the Pull Request has followed the correct template and process, a Committee Member will assign the label `Review - Open for comments` to the Pull Request to indicate that anyone can comment on the content of the submission.
47-
Typically, one or two months is allowed for comments, though this may be extended if a submission is particularly contentious or hasn't received enough feedback for the Committee to feel comfortable making a decision.
48-
* When the Committee closes the comment period, the Author should update the RFC and Pull Request with a new commit to address the comments.
49+
* New drafts should not be submitted until the appropriate Working Group has decided in
50+
a PowerShell/PowerShell repository issue that an RFC is required in order for an experimental
51+
implementation to be accepted.
52+
* Drafts should be submitted as a draft Pull Request from the Author's fork into the
53+
`Draft-Accepted` folder.
54+
* The Author shall ensure that the `Allow edits from maintainers` box is checked so that a Committee
55+
Member can assign the next RFC number.
56+
* As a draft PR, contributors are encouraged to comment on the content of the submission.
57+
58+
### Non-Draft PR
59+
60+
* After two months, and when the Author feels that they've addressed feedback on the RFC,
61+
the Author should move the RFC PR out of the draft state.
62+
This signals to the Committee that the RFC is ready for their formal review.
63+
* At this point, the Committee will add a `Review - Committee` label.
64+
65+
### Experimental Feature
66+
67+
Experimental features are used to provide a working example of proposed designs in order for the
68+
Committee and other users to understand real-world usage of the proposal.
69+
70+
* If the Committee feels that the RFC is sound, or that it needs more real-world usage to be finalized,
71+
they will add the `Experimental - Approved` label
72+
to indicate that an implementation is okay (from the Committee perspective) to merge as an
73+
experimental feature in PS/PS.
74+
* The Author may be asked to continue to update the RFC as the usage of the experimental feature
75+
drives new insight into how the feature should be designed.
4976
* The Committee shall vote to merge or reject the RFC.
50-
Note: the Committee may be slower to respond to RFCs where the Author has indicated that they do not plan to implement the RFC.
51-
52-
### Draft-Accepted
53-
54-
The PowerShell Committee has reviewed the RFC and comments, and has voted to accept the RFC as a Draft.
55-
56-
* New comments are not being sought.
57-
* No one has begun implementing the RFC, and there are no current plans to implement the RFC.
58-
In this case, the Committee will create `up-for-grabs` Issues in the [PowerShell](https://github.com/PowerShell/PowerShell) repository.
59-
60-
### Experimental
6177

62-
RFCs in the `Experimental` stage have been accepted by the Committee, and code is being written to provide a working example of the proposed design change to get additional feedback.
63-
64-
### Experimental-Accepted
65-
66-
Feedback from the experimental implementation and RFC have been reviewed.
78+
Note: the Committee may be slower to respond to RFCs where the Author has indicated that they do not plan to implement the RFC.
6779

68-
Because this working prototype already exists in preview builds available on GitHub, the community provide feedback on the implementation as issues in the [PowerShell/PowerShell repository](https://github.com/powershell/powershell)
80+
### Accepted or Rejected
6981

70-
As the engineering team or code contributor works towards a final implementation, they should submit pull requests to PowerShell-RFC in order to keep the RFC in sync with the implementation.
71-
These pull requests shall be reviewed and accepted by the Committee, but a formal vote is not necessary.
72-
The Committee should merely confirm that the changes in the RFC match the working implementation.
82+
* Feedback from the experimental implementation and RFC has been reviewed.
83+
* Because this working prototype already exists in preview builds available on GitHub, the community
84+
provides feedback on the implementation as issues in the [PowerShell/PowerShell repository](https://github.com/powershell/powershell).
85+
* As the engineering team or contributor works towards a final implementation,
86+
the contributor should submit PRs to PowerShell-RFC in order to keep the RFC in sync with the implementation.
87+
* The Committee may ask the Author to continue updating the RFC as real world usage of the experimental
88+
feature provides new information.
89+
* When the Committee feels that they have enough information from their own usage of and user
90+
feedback on the experimental feature to vote on the RFC,
91+
they will vote to accept or reject the RFC.
92+
This will be done through a simple merge/rejection of the RFC PR.
7393

7494
### Rejected
7595

76-
RFCs in the `Rejected` state were rejected by the Committee who decided not to proceed further.
96+
If the Committee decides not to proceed with the RFC, its PR is simply closed before it is merged.
97+
The Committee should also add the `Rejected` label to denote that the Committee
98+
rejected the RFC.
99+
In the future, this can be done automatically with GitHub Actions.
77100

78101
### Withdrawn
79102

80-
RFCs in the `Withdrawn` state were rescinded by the RFC Author.
103+
Similarly, if an Author decides to withdraw their RFC, it will be closed before it is merged.
104+
The Committee should also add the `Withdrawn` label to denote that the author
105+
withdrew the RFC.
106+
In the future, this can be done automatically with GitHub Actions.
81107

82108
### Final
83109

@@ -97,4 +123,6 @@ v1.3 - 9-26-2016 - Added Withdrawn stage. Comments Due field to template. Upda
97123
v1.3.1 - 3-22-2017 - Cleaned up language and made explicit clarifications to process
98124

99125
v1.4 - 3-31-2017 - Revised the RFC process to leverage pull requests for comments instead of issues.
100-
Continued cleanup of language and formatting.
126+
Continued cleanup of language and formatting.
127+
128+
v2.0 - 1-12-2021 - Updated process to leverage draft PRs and Working Groups (WGs) instead of folders.

0 commit comments

Comments
 (0)