Skip to content

Latest commit

Β 

History

History
348 lines (243 loc) Β· 12.4 KB

CHANGELOG.md

File metadata and controls

348 lines (243 loc) Β· 12.4 KB

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 to wasmer-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 packages my-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 the name option when calling the generate_* functions.

Fixed

  • Fixed the python-wasi test in wasmer-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) and index.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 to 5.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 to 1.67.0 to match wapm-targz-to-pirita (#131)

Fixed

  • Fixed the "Releases" job in CI so wasmer/wasmer-pack-cli would be published and not just wasmer/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 a record to a resource with methods
    • There are now convenience functions for loading a Package from known binary formats (e.g. WEBC)

Added

  • Moved the logic for loading a wasmer_pack::Package from a WEBC binary out of wasmer-pack-cli into the main wasmer-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 from wasmer-pack-testing in favour of the autodiscover() 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 called javascript and python, with js and py as aliases (i.e. running wasmer-pack js is equivalent to wasmer-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 in wapm.toml (#91)
  • Added a workaround for dealing with *.webc files that were generated by a buggy version of wapm2pirita (#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 the wai-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 to wasmer-pack

0.4.2 - 2022-10-30

Fixed

  • Put all generated JavaScript inside a package/ folder to match the logic used by npm pack when consuming tarballs (#66)
  • Update MANIFEST.in to include py.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 to 1.61.0 to match minijinja
  • 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
  • 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 because mmap 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 and crates/wit-pack-wasm crates are now published to WAPM under the wasmer namespace instead of Michael-F-Bryan

0.1.4 - 2022-08-25

(no user-facing changes)

0.1.3 - 2022-08-25

(no user-facing changes)

0.1.2 - 2022-08-24