Skip to content

Releases: bytecodealliance/componentize-py

canary

20 May 19:39
3d1f1ff

Choose a tag to compare

canary Pre-release
Pre-release
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)

29 May 19:32
911ef76

Choose a tag to compare

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)

29 May 19:34
81d582a

Choose a tag to compare

* 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)

29 May 19:31
1b3d2e9

Choose a tag to compare

* 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)

29 May 19:34
df7c6cc

Choose a tag to compare

* 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)

29 May 19:30
9ec2a80

Choose a tag to compare

v0.19.3: fix dropping of resource borrows in async-lifted exports (#182)

29 May 19:37
1068496

Choose a tag to compare

* 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)

29 May 19:34
b39f84b

Choose a tag to compare

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)

29 May 19:37
16bb51d

Choose a tag to compare

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)

29 May 19:36
3b628a4

Choose a tag to compare

* 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>