Releases: bytecodealliance/componentize-py
Releases · bytecodealliance/componentize-py
canary
track `full_names` config setting more precisely (#216) Previously, if an app depended on any Python module with a `componentize-py.toml` containing `full_names = true`, that setting would cause full names to be emitted for _all_ interfaces, not just the ones covered by that module. This commit makes the effect of that setting more precise such that only the interfaces covered by that module are affected.
v0.23.0: refactor handling of multiple WIT paths and/or worlds (#213)
This primarily addresses an issue introduced in v0.22.0 such that targeting a specific WIT path and world via the CLI failed if a Python dependency with a `componentize-py.toml` file was found in the specified search path which also had its own WIT path. In that case, we'd return an error because we couldn't find the CLI-specified world in the `componentize-py.toml`-specified WIT path, without bothering to look in the CLI-specified path. We had a test for a similar scenario, but it wasn't covering this exact case. Addressing the issue required significant refactoring of how multiple WIT paths and/or worlds are juggled. Hopefully the result is a bit easier to follow, although it's still pretty hairy.
v0.22.1: make declaration order stable when generating bindings (#212)
* make declaration order stable when generating bindings Previously, the binding generator was non-deterministic in that it would generate different output for the same input across several runs due to the use of randomly-seeded `HashMap`s and `HashSet`s. Now we ensure the iteration order over those maps and sets is deterministic by first converting them to `BTreeMap`s and `BTreeSet`s, respectively. Also, the `Raises` clause we were adding to docstrings had not been updated to point to `componentize_py_types.Err`, so I fixed that as well. * bump version to 0.22.1
v0.22.0: update Wasmtime and WASIp3 WITs, etc. (#211)
* support multiple `-w` options; update to latest Wasmtime This also updates the WASIp3 examples and WIT files to use the latest RC. * add `--full-names` option and refactor public API `clippy` finally convinced me there were too many arguments to the `componentize` function, so now we have methods on structs with named fields instead. Also, print all known worlds and WIT paths if the specified world can't be found. * fix python.rs build * add new WIT files * pin mypy version used for tests * bump Wasmtime version in test.yaml
v0.21.0: add `tcp-p3` example and test (#204)
* add `tcp-p3` example and test Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * keep send side open while receiving in `tcp-p3` example Netcat likes to close the connection if the receive half is closed by the remote host, regardless of whether stdin has been closed, and there's no obvious way to change that behavior. So on the client side we hold both halves open until we've received something, which matches the p2 example behavior. --------- Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> Co-authored-by: Joel Dice <joel.dice@akamai.com>
v0.20.0: update dependencies; bump version to 0.20.0 (#199)
v0.19.3: fix dropping of resource borrows in async-lifted exports (#182)
* fix dropping of resource borrows in async-lifted exports Previously, I had been using a global variable to track borrows which needed to be dropped when returning from an export, which works fine for sync-lifted exports but not so fine for async-lifted ones. In the latter case, we would incorrectly drop borrows from other concurrent calls. Now I've eliminated the global variable in favor of tracking the borrows on a per-call basis. This also includes few minor chores: - Switch CI to use final CPython 3.14.0 release - Update Wasmtime to v39.0.0 - Update to newer wasm-tools commit I had also intended to update to WASI-SDK 29, but it seems to have broken the TCP example. Will debug that later. Signed-off-by: Joel Dice <joel.dice@fermyon.com> * specify wasmtime==38.0.0 when testing sandbox example Signed-off-by: Joel Dice <joel.dice@fermyon.com> --------- Signed-off-by: Joel Dice <joel.dice@fermyon.com>
v0.19.2: fix stream/future tests to handle actual asynchrony (#179)
Due to the `wit-dylib` issue that https://github.com/bytecodealliance/wasm-tools/pull/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 <joel.dice@fermyon.com>
v0.19.1: include built-in `.py` files in bindings output (#176)
Also, bump version to 0.19.1 and update `wasm-tools` dep. Signed-off-by: Joel Dice <joel.dice@fermyon.com>
v0.19.0: add more stream/future/resource tests (#175)
* switch examples to use Wasmtime 38 39 has not yet been released and is not needed for these examples, anyway. Signed-off-by: Joel Dice <joel.dice@fermyon.com> * add more stream/future/resource tests This addresses some gaps in the test coverage and fixes the issued uncovered (e.g. not handling drops of exported resources and not restoring payload ownership after a failed `future.write`). Signed-off-by: Joel Dice <joel.dice@fermyon.com> --------- Signed-off-by: Joel Dice <joel.dice@fermyon.com>