Closed cdmurph32 closed 5 months ago
Awesome! Can you also bump the clocks package version to 0.2.1-draft
as part of this PR?
Sounds good.
Updating to wit-abi-up-to-date@v19 in .github/workflows/main.yml should update CI to the latest wit-bindgen.
I've filed https://github.com/cdmurph32/wasi-clocks/pull/1 to add @unstable
feature gate support to this PR. That should give us the ability to merge this into wasi:clocks
as a feature which is independently tracked through the phases process. I've also filed https://github.com/WebAssembly/WASI/pull/605 to begin the process of tracking this extension, as well as reserve a canonical feature name (clocks-timezone
).
Thanks @yoshuawuyts . I've merged that.
@cdmurph32 oh heh, one more thing: there is still a merge conflict on this PR. Could you please rebase it on the main branch? I'm hoping that's the last bit left to get this to a state where it can be merged.
Do we need to update wit-bindgen?
wit-bindgen markdown wit --html-in-md
Error: failed to resolve directory while parsing WIT for path [wit]
Caused by:
0: this type is not gated by a feature but its interface is gated by a feature
1: found a reference to a interface which is excluded due to its feature not being activated
--> wit/timezone.wit:5:21
|
5 | use wall-clock.{datetime};
| ^-------
Oh right, yeah — wit-bindgen
has not been updated yet with support for the new gates notation. We probably need to cut a release of wasm-tools
for that first too.
wasm-tools and wit-bindgen are released, and I've now bumped their versions in wit-abi-up-to-date v20. So now, it should be sufficient to just bump the wit-abi-up-to-date version to v20 in .github/workflows/main.yml.
Looks like the version of wit-bindgen-cli in the test needs to be updated.
I've filed https://github.com/WebAssembly/wasi-clocks/pull/67 to update CI, which brings in https://github.com/WebAssembly/wit-abi-up-to-date/pull/26 which was published as part of WebAssembly/wit-abi-up-to-date@v20. I think if we merge that, and then re-run CI here, we should be good.
CI won't pass until we can pass features to wit-abi-up-to-date.
wit-bindgen markdown wit --check --html-in-md --features clocks-timezone
I'm thinking the github action would need something like this:
- uses: WebAssembly/wit-abi-up-to-date@v13
with:
wit-abi-tag: wit-abi-0.12.0
inputs:
features:
- clocks-timezone
And wit-abi-up-to-date would need to add --features={{join .inputs.Features ","}}
I'm not that familiar with Github actions. How would I test this locally?
Is WebAssembly/wit-abi-up-to-date
a Docker container?
With wit-abi-up-to-date v21, it should be possible to pass features to the script.
Ok, we've now got everything sorted out here. Thanks for all your patience here!
Thank you @sunfishcode and @yoshuawuyts !
Hi - I'm one of the champions of the ECMAScript Temporal proposal that will add a richer and timezone-aware set of date/time types to JS engines. @littledan suggested that I take a look at the WASI timezone proposal.
I had a few questions:
name
intended to be a localized string suitable for end users, like "PDT"? Or a software-friendly identifier from the IANA Time Zone Database? Or something else? I'd strongly suggest that the latter is what platforms should offer, because strings like "PDT" are not standardized so it's hard to use them in software, other than for displaying to end users. And if you're intending to use them to display to end users, then those strings should be localized.cc @ptomato @sffc
@justingrant I was intending to use the iana-time-zone crate for the wasmtime implementation. Do you have any concerns with that crate?
@cdmurph32 - I think you'll want @sffc to weigh in here. He's both a Rust expert and a localization guru, and both may be involved in your question above.
Also, is the reason you're not using ICU4X (the Rust implementation of ICU4C/ICU4J) that WASI is intentionally minimal in size and you don't need the full capabilities of ICU? I assume that ICU4X does everything that iana-time-zone does, and much more. @sffc is one of the folks driving ICU4X.
Also, is the system time zone the only time zone that WASI is worried about? There's no need to be able to calculate the offset for a different time zone?
Finally, where are you getting your IANA Time Zone Database data from in order to calculate the offset for the zone at that instant?
Thanks for the feedback @justingrant! - I think it's clear we have room to improve, and we should figure out what the right steps forward are. To that effect I've filed https://github.com/WebAssembly/wasi-clocks/issues/69 to continue our conversation about how we can fix the issues in the current design. Let me know if anything is missing there!
Update README with markdown generation step.