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
Copy file name to clipboardExpand all lines: _sips/process-specification.md
+16-10Lines changed: 16 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -48,6 +48,8 @@ from an idea to the inclusion in the language.
48
48
- SIP Reviewers: a subset of Committee Members assigned by the Chairperson to
49
49
review in detail a particular SIP. The same person cannot be both a SIP Author
50
50
and a SIP Reviewer for the same SIP.
51
+
- SIP Manager: one of the SIP Reviewers who is responsible for all the
52
+
communications related to the SIP, throughout its entire life-cycle. This includes requesting a vote on the SIP from the whole Committee, presenting the SIP to the Committee at the plenary meetings, merging or closing the corresponding PR, reporting to the community on the vote outcome, and announcing when it is available for testing.
51
53
52
54
## Stages
53
55
@@ -127,8 +129,9 @@ To submit a SIP, a SIP Author writes a pull request to the
127
129
repository, following the [tutorial]({% link _sips/sip-tutorial.md %}), and
128
130
pointing to the Pre-SIP discussion. If the proposal correctly follows the
129
131
template, and the Pre-SIP discussion seems to show some community support,
130
-
the Chairperson will accept the SIP for review, assign a SIP number, and assign
131
-
3 reviewers to the SIP among the Committee Members. Since "community support" is
132
+
the Chairperson will accept the SIP for review, assign a SIP number, assign
133
+
3 reviewers to the SIP among the Committee Members, and assign one of the reviewers
134
+
to be the Manager of that SIP. Since "community support" is
132
135
loosely defined, any Committee Member can also comment on the PR to accept the
133
136
SIP for review (this is meant mostly as an escape hatch to prevent the
134
137
Chairperson from unilaterally blocking a SIP from entering the process). From
@@ -169,7 +172,7 @@ After each request for a new review, the reviewers have 3 weeks to do another
169
172
round.
170
173
171
174
When the reviewers are confident that the SIP is in good shape to be discussed
172
-
with the full Committee, they set its status to "Vote Requested" and decide on a
175
+
with the full Committee, the Manager sets its status to "Vote Requested" and decide on a
173
176
Vote Recommendation that they will bring to the Committee. A Vote Recommendation
174
177
is either "Recommend Accept" or "Recommend Reject". The proposal is then
175
178
scheduled on the agenda of the next Committee meeting (which happens once a
@@ -183,7 +186,7 @@ the SIP will automatically be considered to be Withdrawn.
183
186
184
187
### Design Stage -- Vote
185
188
186
-
During the Committee meeting, the reviewers of any scheduled SIP present the SIP
189
+
During the Committee meeting, the Managers of any scheduled SIP present the SIP
187
190
to the Committee, their recommendation, and explain why they made that
188
191
recommendation. After discussion, the Committee votes for advancing the SIP to
189
192
the Implementation Stage. There are three possible outcomes:
@@ -203,11 +206,13 @@ must gather strictly more than 50% of "Advance" votes among the whole Committee.
203
206
204
207
For instance, if the Committee is made of 11 members, at least 6 members have to vote "Advance" for the SIP to move to the next stage.
205
208
206
-
If there was a strict majority in favor of "Advance", the PR for the SIP is Merged at this point.
209
+
If there was a strict majority in favor of "Advance", the PR for the SIP is Merged at this point by its Manager.
207
210
Otherwise, a second vote between
208
211
Reject and Keep will be used. A proposal needs more than 50% "Reject" votes to
209
212
be rejected in that case. Otherwise, it is kept.
210
213
214
+
The SIP Manager shares the outcome of the vote with the community by posting a comment to proposal’s Pre-SIP discussion.
215
+
211
216
### Implementation Stage
212
217
213
218
Once in the implementation stage, the Committee is not concerned with the SIP
@@ -216,16 +221,16 @@ The SIP is now a recommendation for the compiler team or any other individual or
216
221
group of people to provide an implementation of the proposal, as a pull request
217
222
to the Scala 3 compiler repository. There is no set timeline for this phase.
218
223
219
-
An implementation will be reviewed by the compiler team, and once the
220
-
implementation is deemed good enough, it can ship as an Experimental feature in
221
-
the following practical release of the compiler.
222
-
223
224
Often, proposals not only need to be implemented in the compiler, but also in
224
225
several other tools (IDEs, syntax highlighters, code formatters, etc.). As soon
225
-
as a proposal reaches the implementation stage, the Committee notifies the
226
+
as a proposal reaches the implementation stage, the Chairperson notifies the
226
227
impacted tools that they should start implementing support for it. A list of
227
228
tools of the ecosystem is maintained in [this document][tooling ecosystem].
228
229
230
+
An implementation will be reviewed by the compiler team, and once the
231
+
implementation is deemed good enough, it can ship as an Experimental feature in
232
+
the next release of the compiler where it's practical to do so. At that point, the SIP Manager posts a follow-up comment on the Pre-SIP discussion to invite the community to test the feature and provide feedback.
233
+
229
234
The implementers may hit challenges that were not foreseen by the Committee.
230
235
Early users may also provide feedback based on practical experience with the
231
236
Experimental feature. This feedback can be sent back to the Committee by
@@ -299,6 +304,7 @@ If a Committee Member cannot attend a meeting, they are welcome to share their f
299
304
4. Explain the latest progress in every meeting.
300
305
- Play a role in the discussions, learn in advance about the topic if needed,
301
306
and make up their mind in the voting process.
307
+
- Establish communication channels with the community to share updates about the evolution of proposals and collect feedback.
0 commit comments