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-packtowasmer-packin 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
--nameflag in the CLI or by passing thenameoption when calling thegenerate_*functions.
Fixed
-
Fixed the
python-wasitest inwasmer-packcrate 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
BindingsOptionsby reference so it's easier to implement builder pattern later on.
0.7.1 - 2023-06-12
Added
- Upgraded the
webccrate to5.0.4so we now have support for*.webcfiles in both the v1 and v2 formats (#131)
Changed
- Raised the MSRV from
1.64.0to1.67.0to matchwapm-targz-to-pirita(#131)
Fixed
- Fixed the "Releases" job in CI so
wasmer/wasmer-pack-cliwould be published and not justwasmer/wasmer-pack(#124)
0.7.0 - 2023-02-10
💥 Breaking Changes 💥
- Restructured the
wasmer/wasmer-packWAPM package's API (#118)- The
Packagetype has been changed from arecordto aresourcewith methods - There are now convenience functions for loading a
Packagefrom known binary formats (e.g. WEBC)
- The
Added
- Moved the logic for loading a
wasmer_pack::Packagefrom a WEBC binary out ofwasmer-pack-cliinto the mainwasmer-packcrate (#118)
Fixed
- Replaced the naive ABI detection routine with something that properly checks which namespaces are imported by a module (#118)
Removed
- Removed the
TestEnvironmentconstruct fromwasmer-pack-testingin 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-testingcrate for testing generated bindings (#112) - Generated Python packages can now import host functions (#113)
Changed
- Renamed
wasmer-pack's sub-commands to be calledjavascriptandpython, withjsandpyas aliases (i.e. runningwasmer-pack jsis equivalent towasmer-pack javascript) #111
0.5.3 - 2022-12-02
Fixed
- The
wasmer-packCLI wasn't extracting the*.waiexport files correctly (#105)
0.5.2 - 2022-11-24
Added
- Users can now also generate bindings from a directory containing a
wapm.tomlfile or a*.tar.gzdownloaded 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
*.webcfiles that were generated by a buggy version ofwapm2pirita(#92)
Changed
- The
wasmer-packtool now generates CommonJS packages instead of ES Modules (#89)
0.5.0 - 2022-11-08
Changed
- Switched from Wasmer's fork of
wit-bindgenon GitHub to thewai-bindgencrate on crates.io (#71)
Fixed
- Update
PackageNamevalidation 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-packtowasmer-pack
0.4.2 - 2022-10-30
Fixed
- Put all generated JavaScript inside a
package/folder to match the logic used bynpm packwhen consuming tarballs (#66) - Update
MANIFEST.into includepy.typedin 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-packversion in each generated package (#54)
Fixed
- Fixed a bug where
*.wasmfiles 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
LoadArgstype from the Python bindings in favour of named arguments (#45) - Raised the MSRV from
1.59.0to1.61.0to matchminijinja - Removed the top-level class from the generated bindings, so now you just need
to do something like
from wit_pack import bindings, commandsto 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.mdwalkthrough
- 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 showsub-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-packCLI would unconditionally fail to load inputs becausemmapisn'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-packcrate now allows packages to contain multiple WebAssembly modules (#22)
💥 Breaking Changes 💥
-
The
wit-packCLI 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-cliandcrates/wit-pack-wasmcrates are now published to WAPM under thewasmernamespace instead ofMichael-F-Bryan
0.1.4 - 2022-08-25
(no user-facing changes)
0.1.3 - 2022-08-25
(no user-facing changes)