Skip to content

Commit 5797283

Browse files
authored
Merge pull request #32 from ericgregory/main
Update interfaces page to add proposals and proposal process (source)
2 parents 6941535 + b1c6b54 commit 5797283

2 files changed

Lines changed: 115 additions & 3 deletions

File tree

docs/interfaces.md

Lines changed: 114 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,118 @@ WASI P1 APIs were defined with WITX Interface Description Language (IDL), which
3535

3636
## Proposals for the standard
3737

38-
All WASI APIs are **proposals** for standardization by the WASI Subgroup. The API proposals in WASI 0.1 and 0.2 met implementation and portability criteria for inclusion at the time of those releases.
38+
All WASI APIs are **proposals** for standardization by the WASI Subgroup. The API proposals in WASI 0.1 and 0.2 met implementation and portability criteria for inclusion at the time of those releases. A proposal advances through the following stages as defined in the [WebAssembly W3C process](https://github.com/WebAssembly/meetings/blob/main/process/phases.md):
3939

40-
All active WASI API proposals can be found on the [WASI GitHub repository](https://github.com/WebAssembly/WASI/blob/main/Proposals.md), along with the [process for making a proposal](https://github.com/WebAssembly/WASI/blob/main/Contributing.md#the-phase-process).
40+
* **Phase 0 - Pre-proposal**: The pre-proposal phase serves as a way to share ideas. At this phase, the WASI subgroup has not yet decided that the pre-proposal is in scope for WASI, and there may be overlap between pre-proposals.
41+
* **Phase 1 - Feature proposal**: In this phase, the proposal is added to the proposal list and a new fork of the spec repo is created.
42+
* **Phase 2 - Proposed spec text available**: During this phase, one or more implementations prototype the feature and a test suite is added.
43+
* **Phase 3 - Implementation phase**: At this phase, project champions create releases following the conventions of semantic versioning (semver).
44+
* **Phase 4 - Standardize the feature:** At this point, the feature is fully handed off to the Working Group, where edge cases are considered and only minor changes occur.
45+
* **Phase 5 - The feature is standardized**: Once the Working Group reaches consensus that the feature is complete, editors perform final editorial tweaks and merge the feature into the main branch of the primary spec repo.
46+
47+
Proposals are first made to the **WASI Subgroup** of the [WebAssembly Community Group](https://www.w3.org/community/webassembly/). (See the [WASI Subgroup's meeting schedule](https://github.com/WebAssembly/meetings/tree/main/wasi).)
48+
49+
All active WASI API proposals can be found on the [WASI GitHub repository](https://github.com/WebAssembly/WASI/blob/main/Proposals.md), along with the [process for making a proposal](https://github.com/WebAssembly/WASI/blob/main/Contributing.md#the-phase-process).
50+
51+
## Active Proposals
52+
53+
### Phase 5 - The Feature is Standardized (WG)
54+
55+
| API Proposal | Repository |
56+
| ----------------------------------------------------------------------| -------------------------------------- |
57+
58+
### Phase 4 - Standardize the Feature (WG)
59+
60+
| API Proposal | Repository |
61+
| ----------------------------------------------------------------------| -------------------------------------- |
62+
63+
### Phase 3 - Implementation Phase (CG + WG)
64+
65+
| API Proposal | Repository |
66+
| --------------------------------------------------------------------- | -------------------------------------- |
67+
| [I/O][wasi-io] | https://github.com/WebAssembly/wasi-io |
68+
| [Clocks][wasi-clocks] | https://github.com/WebAssembly/wasi-clocks |
69+
| [Random][wasi-random] | https://github.com/WebAssembly/wasi-random |
70+
| [Filesystem][wasi-filesystem] | https://github.com/WebAssembly/wasi-filesystem |
71+
| [Sockets][wasi-sockets] | https://github.com/WebAssembly/wasi-sockets |
72+
| [CLI][wasi-cli] | https://github.com/WebAssembly/wasi-cli |
73+
| [HTTP][wasi-http] | https://github.com/WebAssembly/wasi-http |
74+
75+
### Phase 2 - Proposed Spec Text Available (CG + WG)
76+
77+
| API Proposal | Repository |
78+
| ----------------------------------------------------- | -------------------------------------------- |
79+
| [Machine Learning (wasi-nn)][wasi-nn] | https://github.com/WebAssembly/wasi-nn |
80+
| [Clocks: Timezone][wasi-clocks] | https://github.com/WebAssembly/wasi-clocks |
81+
82+
### Phase 1 - Feature Proposal (CG)
83+
84+
| API Proposal | Repository |
85+
| ------------------------------------------------------------------------ | -------------------------------------- |
86+
| [Blob Store][wasi-blob-store] | https://github.com/WebAssembly/wasi-blob-store |
87+
| [Crypto][wasi-crypto] | https://github.com/WebAssembly/wasi-crypto |
88+
| [Digital I/O][wasi-digital-io] | https://github.com/WebAssembly/wasi-digital-io |
89+
| [Distributed Lock Service][wasi-distributed-lock-service] | https://github.com/WebAssembly/wasi-distributed-lock-service |
90+
| [I2C][wasi-i2c] | https://github.com/WebAssembly/wasi-i2c |
91+
| [Key-value Store][wasi-kv-store] | https://github.com/WebAssembly/wasi-kv-store |
92+
| [Logging][wasi-logging] | https://github.com/WebAssembly/wasi-logging |
93+
| [Messaging][wasi-messaging] | https://github.com/WebAssembly/wasi-messaging |
94+
| [Observe][wasi-observe] | https://github.com/dylibso/wasi-observe |
95+
| [Parallel][wasi-parallel] | https://github.com/WebAssembly/wasi-parallel |
96+
| [Pattern Match][wasi-pattern-match] | https://github.com/WebAssembly/wasi-pattern-match |
97+
| [Runtime Config][wasi-runtime-config] | https://github.com/WebAssembly/wasi-runtime-config |
98+
| [SPI][wasi-spi] | https://github.com/WebAssembly/wasi-spi |
99+
| [SQL][wasi-sql] | https://github.com/WebAssembly/wasi-sql |
100+
| [SQL Embed][wasi-sql-embed] | https://github.com/WebAssembly/wasi-sql-embed |
101+
| [Threads][wasi-threads] | https://github.com/WebAssembly/wasi-native-threads |
102+
| [URL][wasi-url] | https://github.com/WebAssembly/wasi-url |
103+
| [USB][wasi-usb] | https://github.com/WebAssembly/wasi-usb |
104+
| [WebGPU][wasi-webgpu] | https://github.com/WebAssembly/wasi-webgpu |
105+
106+
### Phase 0 - Pre-Proposal (CG)
107+
108+
| Proposal | Repository |
109+
| -------------------------------------------------------------------------------- | -------------------------------------- |
110+
| [proxy-wasm/spec][wasi-proxy-wasm] (will advance as multiple, smaller proposals) | https://github.com/proxy-wasm/spec |
111+
112+
## Versioning
113+
114+
Proposals remain in the 0.x semver range until they reach Phase 5 and are fully standardized. At that point, a 1.0 release should be made available.
115+
116+
For some APIs, it makes sense to add new features after the API itself has reached Phase 5. These feature additions should go through the same standardization process. Once they have reached Phase 5, the minor version number of the release should be incremented.
117+
118+
Some APIs may require backwards-incompatible changes over time. In these cases, proposals are allowed to increment the major version number _only if_ the old API can be implmented in terms of the new API. As part of the new version, champions are expected to provide a tool that enables this backwards-compatibility. If that is not possible, then a new API proposal with a new name should be started. The original API can then be deprecated over time if it makes sense to do so.
119+
120+
[WebAssembly CG Phases process]: https://github.com/WebAssembly/meetings/blob/master/process/phases.md
121+
[witx]: https://github.com/WebAssembly/WASI/blob/main/tools/witx-docs.md
122+
[ephemeral/snapshot/old process]: https://github.com/WebAssembly/WASI/blob/master/phases/README.md
123+
124+
[wasi-blob-store]: https://github.com/WebAssembly/wasi-blob-store
125+
[wasi-clocks]: https://github.com/WebAssembly/wasi-clocks
126+
[wasi-crypto]: https://github.com/WebAssembly/wasi-crypto
127+
[wasi-data]: https://github.com/singlestore-labs/wasi-data
128+
[wasi-digital-io]: https://github.com/WebAssembly/wasi-digital-io
129+
[wasi-distributed-lock-service]: https://github.com/WebAssembly/wasi-distributed-lock-service
130+
[wasi-filesystem]: https://github.com/WebAssembly/wasi-filesystem
131+
[wasi-http]: https://github.com/WebAssembly/wasi-http
132+
[wasi-i2c]: https://github.com/WebAssembly/wasi-i2c
133+
[wasi-io]: https://github.com/WebAssembly/wasi-io
134+
[wasi-kv-store]: https://github.com/WebAssembly/wasi-kv-store
135+
[wasi-logging]: https://github.com/WebAssembly/wasi-logging
136+
[wasi-messaging]: https://github.com/WebAssembly/wasi-messaging
137+
[wasi-nn]: https://github.com/WebAssembly/wasi-nn
138+
[wasi-observe]: https://github.com/dylibso/wasi-observe
139+
[wasi-parallel]: https://github.com/WebAssembly/wasi-parallel
140+
[wasi-pattern-match]: https://github.com/WebAssembly/wasi-pattern-match
141+
[wasi-proxy-wasm]: https://github.com/proxy-wasm/spec
142+
[wasi-random]: https://github.com/WebAssembly/wasi-random
143+
[wasi-runtime-config]: https://github.com/WebAssembly/wasi-runtime-config
144+
[wasi-sockets]: https://github.com/WebAssembly/wasi-sockets
145+
[wasi-spi]: https://github.com/WebAssembly/wasi-spi
146+
[wasi-sql]: https://github.com/WebAssembly/wasi-sql
147+
[wasi-sql-embed]: https://github.com/WebAssembly/wasi-sql-embed
148+
[wasi-threads]: https://github.com/WebAssembly/wasi-native-threads
149+
[wasi-url]: https://github.com/WebAssembly/wasi-url
150+
[wasi-usb]: https://github.com/WebAssembly/wasi-usb
151+
[wasi-webgpu]: https://github.com/WebAssembly/wasi-webgpu
152+
[wasi-cli]: https://github.com/WebAssembly/wasi-cli

docusaurus.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ const config = {
8383
items: [
8484
{
8585
label: 'Introduction',
86-
to: '/docs/intro',
86+
to: '/',
8787
},
8888
],
8989
},

0 commit comments

Comments
 (0)