You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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]>
Copy file name to clipboardExpand all lines: RFC0000-RFC-Process.md
+59-31
Original file line number
Diff line number
Diff line change
@@ -14,14 +14,19 @@ This provides the community an opportunity to provide feedback before code is wr
14
14
compatibility.
15
15
The complete list of RFCs are available at https://github.com/powershell/powershell-rfc
16
16
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.
18
20
19
21
## Roles
20
22
21
23
***Author**: All members of the community are allowed to author new RFCs and can provide feedback to any RFC.
22
24
***PowerShell Committee**: The design committe that votes to accept or reject an RFC.
23
25
(Learn more about the PowerShell Committee [here](https://github.com/PowerShell/PowerShell/blob/master/docs/community/governance.md#powershell-committee).)
24
26
***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).)
25
30
26
31
## RFC Submission Convention
27
32
@@ -35,49 +40,70 @@ All RFC documents shall follow the [RFC template](RFCNNNN-New-RFC-Template.md).
35
40
36
41
## RFC Workflow
37
42
38
-
RFCs may go through the following stages:
43
+
RFCs go through the following stages:
39
44
40
-
### Draft
45
+
### Draft PR
41
46
42
47
This is the initial draft of an RFC posted for comments and considered a work-in-progress.
43
48
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.
49
76
* 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
61
77
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.
67
79
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
69
81
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.
73
93
74
94
### Rejected
75
95
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.
77
100
78
101
### Withdrawn
79
102
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.
81
107
82
108
### Final
83
109
@@ -97,4 +123,6 @@ v1.3 - 9-26-2016 - Added Withdrawn stage. Comments Due field to template. Upda
97
123
v1.3.1 - 3-22-2017 - Cleaned up language and made explicit clarifications to process
98
124
99
125
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