WebAssembly/WASI

Why the WAI? Please amend

syrusakbary opened this issue · 4 comments

I just learned that WITX is going to be renamed to WAI, a term that Wasmer coined for WebAssembly Interfaces in 2019. We (Wasmer) are even already actively using the .wai file ending to determinate the files for WebAssembly Interfaces.

All this was already showcased in this article that Wasmer published two years ago ("Show me the WAI")
https://medium.com/wasmer/introducing-webassembly-interfaces-bb3c05bc671 (Web Archive version of 2019)

Now, I've just seen that there has been an effort to change the name of witx-bindgen for wai-bindgen. The fact is that we have been actively working on a package with that name. Of course, we just created a package it with our previous implementation in and we published it to crates.io to make sure Wasmer can still operate with the name that we have been working on for already two years.
Perhaps "WebAssembly" and "Interfaces" are too generic names to have them solely attached to one meaning, but I expected as a minimum being alerted or involved on the rename poll (which apparently never happened) as part of the WASI CG so I could provide this input when that proposal came.


In the PR where I learned about the rename it's even mentioned that this has been discussed on the WASI CG meetings, but the fact is that I can't actually find the mentioned consensus anywhere.

bytecodealliance/wit-bindgen#101

This commit renames this repository and everything internally to "wai"
instead of the old name "witx". This has been discussed at previous WASI
group meetings and this change is implementing the current consensus

Perhaps I missed this, but can someone please point me on when this discussion happened and when there was approval in a WASI or WASM CG meeting?
I've already been part of many of those meetings, I've been reading the meetings when I couldn't attend and now is the first time I'm hearing of anyone wanted to use the same name that Wasmer has been using for quite a bit.

https://github.com/WebAssembly/meetings/tree/main/wasi

Note: I could find a indirect mention of "wai" in on the meeting of Oct 21, 2021 but AFAIK there was no official vote from the CG or any anticipation for it so we could provide our thoughts and feedback as an involved entity here.

I trust this was just a slight misdirection with no bad intentions from the BytecodeAlliance or other players participating in WASI but please I will ask that next times this things are done more diligently, as there can be unintended side-effects.


Here's what I think should have happened:

  1. Official poll in the WASI (or WASM CG meeting), organized beforehand so any interested entities can attend the meeting in case they want to provide input or feedback
  2. Being asked privately or publicly about it? That would have been nice if for whatever reason we missed the poll. As a note, the article pointed is the first result when searching "webassembly interfaces" in Google

Adding the chair of the Wasm CG @lukewagner to see how things could have been improved so this situations get smoothed out in the future.

Keep up the good work with WASI and WITX, we are big fans of it.

Best,
Syrus.

As the person who originally proposed using wai as the extension, I want to clarify a few things.

Before proposing the name, I did a pretty extensive search:

  1. I did a web search for file extension "wai", which didn't uncover any relevant hits on the first 10 pages (at which point I stopped looking)
  2. To narrow it down a bit so I wouldn't miss anything, I then also searched for file extension "wai" webassembly, which didn't uncover any relevant hits anywhere
  3. I searched github with the query extension:wai, which resulted in a number of hits for the unrelated Warcraft AI format, and no WebAssembly related hits

This last method now does include the single Wasmer related wai file I could find in existence at all. I finally found that using the query extension:wai i32 after trying various different ones based on guessing what might be in such a file. I assume that my looking at it and finding it in a more narrow query caused Github to increase its relevance for search result purposes. I assume that things that haven't changed in years are by default not included in the results for relatively broad queries like this if they haven't been looked at recently.

As a note, we also considered using widl, and did similar searches, which ruled it out quickly: all the above methods of research quickly show that it's in active use by WasmCloud's waPC.

What I did not do is run the precise Google query you hand-picked. (Even if I had, I'll note that the blog post isn't titled "Show me the WAI" as you claim: "WAI" is only mentioned further down the post, so I would only have seen it by reading the post itself, not just the headline.)

I'm laying all this out to show that there has not been any lack of due diligence in choosing this name.


We really didn’t think this would be contentious to any degree, since we didn’t know it had been used in a WebAssembly context.

As things were, we have had plenty of items on the last few months' agendas about changing the IDL, and Wasmer folks have attended those meetings. Since nobody spoke up against it, we didn't consider the file extension to be potentially contentious.

When I say no one spoke up, that includes Wasmer employees. A Wasmer engineer was in the meeting where we specifically said we’d be using WAI, and there was no objection. I also expected that you were reading the notes to the meetings, since I remember you asking whether notes are published multiple times.

For us, it was just one of many cross-cutting changes to the IDL. And since there was no existing precedent for polling to choose file extensions (including witx which this is replacing, but also wat, wast, and wasm itself), we didn’t even consider that this would need a poll.

Now that we know, i'm happy to add an agenda item to open this up for discussion where you can present to the group the arguments against using the extension wai, including how it might collide with active use of the extension, and we can have a poll.

I'm afraid I missed the meetings where the new file extension and format we discussed :( I have to say, I like the sound of widl.. its a shame is seems to already be used elsewhere.

@syrusakbary As Till points out above, there is no precedent for polling on file extensions.

In the case of something like versioning, it does make sense to poll since that has ecosystem level effects. However, for something like an extension that really doesn’t matter that much but has huge bike shed potential, it feels like too much of a bottleneck to require polling, so I'm uncomfortable introducing that precedent.

For this particular instance, as a courtesy to you, Till volunteered to talk with the involved contributors and see whether another file extension would be acceptable. They settled on wi, which avoids this perceived naming conflict. Till will add an item in the next meeting to make sure that no one sees additional conflicts.

For the future, especially in situations like these where the project you’re referencing is private, could you please ensure that you and your team are communicating so that your team can properly represent your position in meetings? Till coordinated this change as a courtesy to avoid a potential conflict, but contributors to the subgroup shouldn't be expected to retroactively change things like this based on a company's potential use of a file extension. That should only be considered as even possibly necessary when there is widespread use that would cause meaningful ambiguity.

Till has added the agenda item to ensure that using wi as the file extension doesn't present any other conflicts (WebAssembly/meetings#925)