Skip to content

Commit b39f84b

Browse files
authored
fix stream/future tests to handle actual asynchrony (#179)
Due to the `wit-dylib` issue that bytecodealliance/wasm-tools#2371 addresses, these tests weren't actually testing what I thought they were. Fixing that revealed a couple of bugs involving stream writes, which this fixes. Also, bump version to 0.19.2 Signed-off-by: Joel Dice <[email protected]>
1 parent 16bb51d commit b39f84b

File tree

12 files changed

+76
-58
lines changed

12 files changed

+76
-58
lines changed

Cargo.lock

Lines changed: 31 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "componentize-py"
3-
version = "0.19.1"
3+
version = "0.19.2"
44
edition = "2024"
55
exclude = ["cpython"]
66

@@ -14,12 +14,15 @@ clap = { version = "4.5.20", features = ["derive"] }
1414
tar = "0.4.42"
1515
tempfile = "3.13.0"
1616
zstd = "0.13.2"
17-
# TODO: switch to wasm-tools release once https://github.com/bytecodealliance/wasm-tools/pull/2367 has been merged and released
18-
wasm-encoder = { git = "https://github.com/bytecodealliance/wasm-tools", rev = "fac9fb50", features = ["wasmparser"] }
19-
wit-dylib = { git = "https://github.com/bytecodealliance/wasm-tools", rev = "fac9fb50" }
20-
wit-parser = { git = "https://github.com/bytecodealliance/wasm-tools", rev = "fac9fb50" }
21-
wit-component = { git = "https://github.com/bytecodealliance/wasm-tools", rev = "fac9fb50" }
22-
wasmparser = { git = "https://github.com/bytecodealliance/wasm-tools", rev = "fac9fb50" }
17+
# TODO: switch to wasm-tools release once
18+
# https://github.com/bytecodealliance/wasm-tools/pull/2367 and
19+
# https://github.com/bytecodealliance/wasm-tools/pull/2371 have been merged and
20+
# released
21+
wasm-encoder = { git = "https://github.com/bytecodealliance/wasm-tools", rev = "37f05db5", features = ["wasmparser"] }
22+
wit-dylib = { git = "https://github.com/bytecodealliance/wasm-tools", rev = "37f05db5" }
23+
wit-parser = { git = "https://github.com/bytecodealliance/wasm-tools", rev = "37f05db5" }
24+
wit-component = { git = "https://github.com/bytecodealliance/wasm-tools", rev = "37f05db5" }
25+
wasmparser = { git = "https://github.com/bytecodealliance/wasm-tools", rev = "37f05db5" }
2326
indexmap = "2.6.0"
2427
bincode = "1.3.3"
2528
heck = "0.5.0"

bundled/componentize_py_async_support/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,9 @@ def callback(event0: int, event1: int, event2: int) -> int:
483483
case _:
484484
# todo
485485
raise NotImplementedError
486+
case _Event.STREAM_READ | _Event.STREAM_WRITE | _Event.FUTURE_READ | _Event.FUTURE_WRITE:
487+
componentize_py_runtime.waitable_join(event1, 0)
488+
future_state.futures.pop(event1).set_result(event2)
486489
case _:
487490
# todo
488491
raise NotImplementedError

examples/cli/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ run a Python-based component targetting the [wasi-cli] `command` world.
1010
## Prerequisites
1111

1212
* `Wasmtime` 38.0.0 or later
13-
* `componentize-py` 0.19.1
13+
* `componentize-py` 0.19.2
1414

1515
Below, we use [Rust](https://rustup.rs/)'s `cargo` to install `Wasmtime`. If
1616
you don't have `cargo`, you can download and install from
1717
https://github.com/bytecodealliance/wasmtime/releases/tag/v38.0.0.
1818

1919
```
2020
cargo install --version 38.0.0 wasmtime-cli
21-
pip install componentize-py==0.19.1
21+
pip install componentize-py==0.19.2
2222
```
2323

2424
## Running the demo

examples/http-p3/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ run a Python-based component targetting version `0.3.0-rc-2025-09-16` of the
1111
## Prerequisites
1212

1313
* `Wasmtime` 38.0.0 or later
14-
* `componentize-py` 0.19.1
14+
* `componentize-py` 0.19.2
1515

1616
Below, we use [Rust](https://rustup.rs/)'s `cargo` to install `Wasmtime`. If
1717
you don't have `cargo`, you can download and install from
1818
https://github.com/bytecodealliance/wasmtime/releases/tag/v38.0.0.
1919

2020
```
2121
cargo install --version 38.0.0 wasmtime-cli
22-
pip install componentize-py==0.19.1
22+
pip install componentize-py==0.19.2
2323
```
2424

2525
## Running the demo

examples/http/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ run a Python-based component targetting the [wasi-http] `proxy` world.
1010
## Prerequisites
1111

1212
* `Wasmtime` 38.0.0 or later
13-
* `componentize-py` 0.19.1
13+
* `componentize-py` 0.19.2
1414

1515
Below, we use [Rust](https://rustup.rs/)'s `cargo` to install `Wasmtime`. If
1616
you don't have `cargo`, you can download and install from
1717
https://github.com/bytecodealliance/wasmtime/releases/tag/v38.0.0.
1818

1919
```
2020
cargo install --version 38.0.0 wasmtime-cli
21-
pip install componentize-py==0.19.1
21+
pip install componentize-py==0.19.2
2222
```
2323

2424
## Running the demo

examples/matrix-math/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ within a guest component.
1111
## Prerequisites
1212

1313
* `wasmtime` 38.0.0 or later
14-
* `componentize-py` 0.19.1
14+
* `componentize-py` 0.19.2
1515
* `NumPy`, built for WASI
1616

1717
Note that we use an unofficial build of NumPy since the upstream project does
@@ -23,7 +23,7 @@ https://github.com/bytecodealliance/wasmtime/releases/tag/v38.0.0.
2323

2424
```
2525
cargo install --version 38.0.0 wasmtime-cli
26-
pip install componentize-py==0.19.1
26+
pip install componentize-py==0.19.2
2727
curl -OL https://github.com/dicej/wasi-wheels/releases/download/v0.0.2/numpy-wasi.tar.gz
2828
tar xf numpy-wasi.tar.gz
2929
```

examples/sandbox/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ sandboxed Python code snippets from within a Python app.
88
## Prerequisites
99

1010
* `wasmtime-py` 38.0.0 or later
11-
* `componentize-py` 0.19.1
11+
* `componentize-py` 0.19.2
1212

1313
```
14-
pip install componentize-py==0.19.1 wasmtime==38.0.0
14+
pip install componentize-py==0.19.2 wasmtime==38.0.0
1515
```
1616

1717
## Running the demo

examples/tcp/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ making an outbound TCP request using `wasi-sockets`.
1111
## Prerequisites
1212

1313
* `Wasmtime` 38.0.0 or later
14-
* `componentize-py` 0.19.1
14+
* `componentize-py` 0.19.2
1515

1616
Below, we use [Rust](https://rustup.rs/)'s `cargo` to install `Wasmtime`. If
1717
you don't have `cargo`, you can download and install from
1818
https://github.com/bytecodealliance/wasmtime/releases/tag/v38.0.0.
1919

2020
```
2121
cargo install --version 38.0.0 wasmtime-cli
22-
pip install componentize-py==0.19.1
22+
pip install componentize-py==0.19.2
2323
```
2424

2525
## Running the demo

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ features = ["pyo3/extension-module"]
77

88
[project]
99
name = "componentize-py"
10-
version = "0.19.1"
10+
version = "0.19.2"
1111
description = "Tool to package Python applications as WebAssembly components"
1212
readme = "README.md"
1313
license = { file = "LICENSE" }

0 commit comments

Comments
 (0)