Change Log
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Changelog entries will contain a link to the pull request implementing that change, where applicable.
Note: The project was renamed from
wit-pack
towasmer-pack
in version 0.5.0. Changelog entries from 0.4.2 and earlier use the old name.
Unreleased - ReleaseDate
0.7.2 - 2024-02-12
0.7.2 - 2024-02-12
0.7.2 - 2024-02-12
0.7.2 - 2024-02-12
0.7.2 - 2024-02-12
0.7.2 - 2024-02-12
0.7.2 - 2024-02-12
Changed
- Allow packages with
.
in their names. This is useful for packagesmy-website.com
. Internally, the.
is converted into a-
to make it a valid binding name.
Added
- Added ability to pass in a user-specified name for the generated
bindings. This can be done by passing in the
--name
flag in the CLI or by passing thename
option when calling thegenerate_*
functions.
Fixed
-
Fixed the
python-wasi
test inwasmer-pack
crate to use poetry instead of pipenv. This is because poetry is used everywhere else, except in this one place. -
Fixed flaky integration tests by specifying a valid webc file for wasmer-pack in both
test_wasmer_pack.py
(pytest) andindex.test.ts
(jest) -
Pass in
BindingsOptions
by reference so it's easier to implement builder pattern later on.
0.7.1 - 2023-06-12
Added
- Upgraded the
webc
crate to5.0.4
so we now have support for*.webc
files in both the v1 and v2 formats (#131)
Changed
- Raised the MSRV from
1.64.0
to1.67.0
to matchwapm-targz-to-pirita
(#131)
Fixed
- Fixed the "Releases" job in CI so
wasmer/wasmer-pack-cli
would be published and not justwasmer/wasmer-pack
(#124)
0.7.0 - 2023-02-10
💥 Breaking Changes 💥
- Restructured the
wasmer/wasmer-pack
WAPM package's API (#118)- The
Package
type has been changed from arecord
to aresource
with methods - There are now convenience functions for loading a
Package
from known binary formats (e.g. WEBC)
- The
Added
- Moved the logic for loading a
wasmer_pack::Package
from a WEBC binary out ofwasmer-pack-cli
into the mainwasmer-pack
crate (#118)
Fixed
- Replaced the naive ABI detection routine with something that properly checks which namespaces are imported by a module (#118)
Removed
- Removed the
TestEnvironment
construct fromwasmer-pack-testing
in favour of theautodiscover()
tests (#121)
0.6.0 - 2022-12-28
Added
- Generated JavaScript packages can now import host functions (#109)
- Introduce the
wasmer-pack-testing
crate for testing generated bindings (#112) - Generated Python packages can now import host functions (#113)
Changed
- Renamed
wasmer-pack
's sub-commands to be calledjavascript
andpython
, withjs
andpy
as aliases (i.e. runningwasmer-pack js
is equivalent towasmer-pack javascript
) #111
0.5.3 - 2022-12-02
Fixed
- The
wasmer-pack
CLI wasn't extracting the*.wai
export files correctly (#105)
0.5.2 - 2022-11-24
Added
- Users can now also generate bindings from a directory containing a
wapm.toml
file or a*.tar.gz
downloaded from WAPM (#80) - Added a tutorial on using records (#83)
0.5.1 - 2022-11-18
Fixed
- Running
wasmer run --mapdir .:. wasmer/wasmer-pack-cli ...
would fail because the[fs]
table was being used incorrectly inwapm.toml
(#91) - Added a workaround for dealing with
*.webc
files that were generated by a buggy version ofwapm2pirita
(#92)
Changed
- The
wasmer-pack
tool now generates CommonJS packages instead of ES Modules (#89)
0.5.0 - 2022-11-08
Changed
- Switched from Wasmer's fork of
wit-bindgen
on GitHub to thewai-bindgen
crate on crates.io (#71)
Fixed
- Update
PackageName
validation to accept the_
namespace and global packages (#74) - Package bindings will no longer have naming conflicts when importing a binding type with the same name as one of types we generate (#75)
💥 Breaking Changes 💥
- The project has been renamed from
wit-pack
towasmer-pack
0.4.2 - 2022-10-30
Fixed
- Put all generated JavaScript inside a
package/
folder to match the logic used bynpm pack
when consuming tarballs (#66) - Update
MANIFEST.in
to includepy.typed
in the package, meaning MyPy can now typecheck the generated bindings (#66) - Don't assume atoms will have the same name as their commands (#64)
- Some JavaScript bindings wouldn't run because the bindings always import
@wasmer/wasi
, while the dependency was only added when one or more libraries/commands was compiled to WASI (#58)
0.4.1 - 2022-10-24
Added
- User-facing documentation and a tutorial series are now available under the
doc/
folder (#47) - Mention the
wit-pack
version in each generated package (#54)
Fixed
- Fixed a bug where
*.wasm
files weren't being installed with the Python bindings from WAPM (#52)
0.4.0 - 2022-10-12
Added
- To facilitate caching or different means of distribution, users are now able to provide their own pre-compiled WebAssembly module when initialising libraries or running commands (#45)
Changed
- Removed the
LoadArgs
type from the Python bindings in favour of named arguments (#45) - Raised the MSRV from
1.59.0
to1.61.0
to matchminijinja
- Removed the top-level class from the generated bindings, so now you just need
to do something like
from wit_pack import bindings, commands
to use the package's libraries or commands (#40)
Fixed
- Make the current directory available to the CLI when run by wasmer (#37)
0.3.0 - 2022-09-27
Added
- Set up CI to automatically deploy to wapm.dev whenever GitHub receives a tagged commit (#24)
- Fleshed out the repo's documentation (#25)
- Populated the
CHANGELOG.md
- Wrote up
CONTRIBUTING.md
- Rewrote the
README.md
walkthrough
- Populated the
- Added a "Time Reporter" task to CI so we can keep an eye on CI times (#25)
- Generate wrappers for calling WASI executables from JavaScript (#26)
- Generate wrappers for calling WASI executables from Python (#27)
- Detect all available WASI executables in a Pirita file (#28)
- Add a top-level facade to the generated Python bindings so libraries and commands can be accessed through one common object (#30)
- Add a top-level facade to the generated JavaScript bindings so libraries and commands can be accessed through one common object (#34)
- Added a
wit-pack show
sub-command to show which libraries and commands would be generated from a Pirita file (#35)
Fixed
- Inspect each atom's kind when discovering the commands in a Pirita file instead of blindly assuming everything is a command (#32)
0.2.3 - 2022-09-15
Fixed
- When run as a WASI program, the
wit-pack
CLI would unconditionally fail to load inputs becausemmap
isn't available (#24)
0.2.2 - 2022-09-15
(no user-facing changes)
0.2.1 - 2022-09-15
(no user-facing changes)
0.2.0 - 2022-09-15
Added
- The
wit-pack
crate now allows packages to contain multiple WebAssembly modules (#22)
💥 Breaking Changes 💥
-
The
wit-pack
CLI now takes a Pirita file as its only input (#20)-
This means the commandline interface has changed
# Instead of this $ wit-pack js --exports exports.wit --name hello_world --version 0.1.1 --module wit.wasm -o=wit-js --abi=none # you should now do this $ wit-pack js -o=wit-js ./hello-world.webc
-
0.1.5 - 2022-09-12
Added
- Introduced support for WASI libraries (#12)
Changed
- The
crates/wit-pack-cli
andcrates/wit-pack-wasm
crates are now published to WAPM under thewasmer
namespace instead ofMichael-F-Bryan
0.1.4 - 2022-08-25
(no user-facing changes)
0.1.3 - 2022-08-25
(no user-facing changes)