@@ -109,3 +109,41 @@ Phases 4 and 5 are where a feature is finished and standardized. As WASI matures
109
109
[ proposal template ] : https://github.com/WebAssembly/wasi-proposal-template
110
110
[ WASI meeting agenda ] : https://github.com/WebAssembly/meetings/tree/main/wasi
111
111
[ WebAssembly CG's Phase Process ] : https://github.com/WebAssembly/meetings/blob/main/process/phases.md
112
+
113
+ ## Filing changes to existing phase 3 proposals
114
+
115
+ Extending existing phase 3 WASI proposals follows a different process than filing
116
+ new proposals. Because the scope of a phase 3 proposal is already set, further
117
+ changes to its APIs are tracked independently as phase 2 proposals behind an
118
+ ` @unstable ` gate in WIT. Once an extension is sufficiently developed, and meets
119
+ the phase 3 criteria, it must go through a vote in the WASI SG to reach
120
+ phase 3. Once that's done, the ` @unstable ` gate can be replaced with ` @since ` ,
121
+ and the extension can be included in a future WASI release.
122
+
123
+ To submit an extension to an existing phase 3 WASI proposal, the following
124
+ process should be followed:
125
+
126
+ 1 . File a PR to a WASI proposal repo with the feature extensions behind an
127
+ ` @unstable ` gate. Feature gate names all exist in a shared namespace, so they
128
+ should be prefixed with the parent proposal name. An unstable "timezone"
129
+ feature for the "clocks" proposal should be named ` clocks-timezone ` .
130
+ 2 . Accepting changes to proposals is done at the discretion of the proposal
131
+ champions. They will review and work with the PR submitter to get it to a
132
+ state where it can be merged, or explain why the extension is presently not
133
+ the right fit for the existing proposal.
134
+ 3 . Once the champion is ready to merge the proposal, they will submit a PR to
135
+ the WASI repository (this repository) to file for a new phase 2 feature.
136
+ 4 . Once the feature is tracked on the WASI repository the champion can now merge
137
+ the extension. This would also be a good time to inform the WASI SG that an
138
+ extension has landed - in the interest of keeping relevant parties informed.
139
+ 5 . Implementers should now be free to begin implementing the extension behind
140
+ feature flags. The goal at this phase is to implement and iterate on the
141
+ extension until it is ready to advance to phase 3.
142
+ 6 . Once the champion believes the phase 3 advancement criteria are met, they
143
+ should bring it to the WASI SG for a vote.
144
+ 7 . Once the proposal is voted to advance to phase 3, the ` @unstable ` gate should
145
+ be replaced with a ` @since ` gate containing the version of the next WASI
146
+ release. It is encouraged to preserve the ` feature ` field in the ` @since ` gate to
147
+ help the transition from the ` @unstable ` feature to the newly stabilized
148
+ ` @since ` gate.
149
+ 8 . The proposal is now ready to be released as part of the next WASI version.
0 commit comments