Stream: general

Topic: ✔ WIT versioning


view this post on Zulip Frank Rehwinkel (May 01 2024 at 22:20):

Has something already documented how the WIT specification will be evolved and versioned?

I understand wasi wit files tend to have a 0.2.0 version number for now. That's good for their files but I don't know what version of the WIT specification they are built with. What if one wants to document the version of the WIT specification that something is being built against? Do we use a git hash against the WebAssembly/component-model repo? Or maybe a commit hash where the repo's design/mvp/WIT.md was actually updated?

Is a breaking change ever going to be allowed in the specification's evolution?

view this post on Zulip Friedrich Vandenberghe (May 02 2024 at 10:10):

Hey, you can find some information regarding WIT versioning here

WebAssembly System Interface. Contribute to WebAssembly/WASI development by creating an account on GitHub.

view this post on Zulip Frank Rehwinkel (May 02 2024 at 10:35):

Maybe that is specific to the WASI features? The ones that are defined with WIT files? But about the WIT definition itself, I can't find examples of tools or documents that say what version of the WIT spec they are based on. WIT is still being modified I think? Like what are its reserved words, what are the semantics of those reserved words, what are the rules for building one WIT object from other WIT objects in the same or different files and directories.

view this post on Zulip Alex Crichton (May 02 2024 at 11:44):

Currently WIT does not itself have an official version. WASI files are likely going to keep up with the current documentation in the component-model repo, such as using @since and @unstable when they're implemented. It's so early in WIT's lifetime it's pretty doubtful that any guarantee along the lines of "until the end of time this is frozen". That being said given the usage of WIT now any breaking change would be accompanied with a transitionary period at the very least.

view this post on Zulip Frank Rehwinkel (May 02 2024 at 12:06):

Thank you for that response. I wish there were a name you and the primary stack holders were comfortable using for the current WIT but I will just go with using the repo name and the date. (I'm sorry if my question seemed to imply I was looking for things to be frozen. I know there is a lot of thought and work going into this area and things will change; that's why I was looking for a versioning or naming convention.)

Aside from keywords, I'm interested in how a larger project could organize its ".wit" files and the "deps" directories and wasn't sure if the "deps" use was part of the WIT specification or just what the tools had come up with so far to handle type reuse.

Thanks again.

view this post on Zulip Notification Bot (May 02 2024 at 12:06):

Frank Rehwinkel has marked this topic as resolved.

view this post on Zulip Alex Crichton (May 02 2024 at 12:30):

Oh the frozen bits was referring to your question of if there were going to be breaking changes. Nothing major planned right now, but I can't speak for us-in-six-months.

For organization the deps folder is pseudo-official sorta. Not fully specified but implemented in wit-parser which many parser pieces use


Last updated: Dec 23 2024 at 12:05 UTC