WebAssembly / WASI

WebAssembly System Interface
Other
4.71k stars 240 forks source link

versioning like "WASI 0.2.0" is confusing #588

Closed yamt closed 3 months ago

yamt commented 3 months ago

i'm reading https://github.com/WebAssembly/meetings/blob/main/wasi/2024/WASI-02-22.md

it seem semver is implied there. however, according to https://semver.org/,

Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.

however, in the slide, it's mentioned 0.2.0 is "stable".

if you don't intend to follow the semver semantics, i'd suggest to stop using semver-looking version numbers. it's confusing.

if you want to follow semver, i'd suggest to use preview1 -> 1.0.0 preview2 -> 2.0.0 2.0.0 + eg. timezone support -> 2.n.0 and so on.

programmerjake commented 3 months ago

i'd guess they're using cargo's semvar variant: https://doc.rust-lang.org/cargo/reference/resolver.html#semver-compatibility

sunfishcode commented 3 months ago

Yes; we're effectively following cargo's variant of semver here.

From a standards-body perspective, WASI 0.2 is not a standard. There is work to be done yet to figure out what the process for officially standardizing WASI should be. The "0.2" is in part aimed at communicating this to standards audiences.

From a practical point of view, the WASI Subgroup intends for WASI 0.2.0 to be stable, and for WASI 0.2.x to be backwards-compatible updates, such as adding new features. For contexts where that leading "0." gives the impression that it is not stable, the name "WASIp2" may equivalently be used. See here for details.

For better or worse, the string "0.2.0" is part of WASI 0.2.0's public-facing interface, so we aren't able to change it without breaking compatibility at this point.

If there any further questions about the versioning, please file new issues!