# Change Log
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
Changelog entries will contain a link to the pull request implementing that
change, where applicable.
## [5.9.0](https://github.com/wasmerio/pirita/compare/webc-v5.8.1...webc-v5.9.0) (2024-01-19)
### Features
* Added documentation for the `webc` crate's feature flags ([a024529](https://github.com/wasmerio/pirita/commit/a0245293ad2ec7483dce1e6e2d984ee1e0d915cc))
* Parsers for the `v1` and `v2` binary formats are now behind (enabled-by-default) feature flags ([4f7da5e](https://github.com/wasmerio/pirita/commit/4f7da5e54ab6f34676b39d70082e300ce1be4ff0))
* Switched the `[features`] table over to using the `dep:` format for dependency ([2b6c8fd](https://github.com/wasmerio/pirita/commit/2b6c8fd99cbb5e70af83a634c99fb1a6aca7f563))
### Bug Fixes
* Fix the conditional compilation in `container.rs` so all combinations of feature flags will compile ([f6fa355](https://github.com/wasmerio/pirita/commit/f6fa355f73cd6ed82ab148b14cbe5d4311962254))
* Made `wasmer-toml` a required dependency to fix `--no-default-features` builds ([91ac00c](https://github.com/wasmerio/pirita/commit/91ac00c58490a7b91e3201b0f684e67e1ace04f8))
* Trying to parse a tarball or Wasmer package directory without the `package` feature enabled will now return a `FeatureNotEnabled` error ([f6fa355](https://github.com/wasmerio/pirita/commit/f6fa355f73cd6ed82ab148b14cbe5d4311962254))
## [5.8.1](https://github.com/wasmerio/pirita/compare/webc-v5.8.0...webc-v5.8.1) (2023-11-22)
### Features
* Temporarily exposed some private APIs for use in the `wasmer` CLI. ([0372944](https://github.com/wasmerio/pirita/commit/037294427bd0f4418a3907372beaafd8da35d0eb))
## [5.8.0](https://github.com/wasmerio/pirita/compare/webc-v5.7.0...webc-v5.8.0) (2023-11-01)
### Features
* Unpack containers and volumes into local directories ([2a767a2](https://github.com/wasmerio/pirita/commit/2a767a238417ac3ec02e89bd1344239717f790e6))
## [5.7.0](https://github.com/wasmerio/pirita/compare/webc-v5.6.0...webc-v5.7.0) (2023-10-25)
### Features
* The `Container::from_disk()` constructor can now load Wasmer packages when given a directory ([d9837e0](https://github.com/wasmerio/pirita/commit/d9837e0b5ddbfa2a3ea979bccf0634c33cf314e6))
## [5.6.0](https://github.com/wasmerio/pirita/compare/webc-v5.5.1...webc-v5.6.0) (2023-10-09)
### Features
* Packages can be marked as private using the "private" flag on a package's "wapm" annotations ([c160ccc](https://github.com/wasmerio/pirita/commit/c160ccc107d8af4c8f714854330b61696d9ffeda))
* Upgraded the `wasmer-toml` dependency so tarballs and packages on disk can be marked as "private" using the "private" key under "[package]" ([876b883](https://github.com/wasmerio/pirita/commit/876b883aa9ba9d7a5445fc3091194b347e24e8b2))
### Bug Fixes
* Allow tarballs with a leading "./" ([8d54a7c](https://github.com/wasmerio/pirita/commit/8d54a7c043b60cfe2ec9944555518ef955f87b53))
## [5.5.1](https://github.com/wasmerio/pirita/compare/webc-v5.5.0...webc-v5.5.1) (2023-09-20)
### Bug Fixes
* The "module" and "dependency" fields in atom annotations were the wrong way around ([7be2ef9](https://github.com/wasmerio/pirita/commit/7be2ef95e98e020fe5860e738e64fd81f516fad2))
* Wasmer package conversion now uses a dependency's full name as the alias, rather than just the package name ([2f66d0f](https://github.com/wasmerio/pirita/commit/2f66d0f8f42661c203dcd2eb058d3b4f5ac3ca05))
## [5.5.0](https://github.com/wasmerio/pirita/compare/webc-v5.4.0...webc-v5.5.0) (2023-09-19)
### Features
* Deprecated the "atom" field in our "wasi" and "emscripten" annotations ([326d108](https://github.com/wasmerio/pirita/commit/326d10807822edf728c6f985e147da0faaeb7d3a))
* Introduced an "atom" command annotation ([ec8f6b8](https://github.com/wasmerio/pirita/commit/ec8f6b8683ab233a35ede6a5562230199e51910b))
* Loading Wasmer packages from a tarball or disk now sets the "atom" command annotations ([0d3e663](https://github.com/wasmerio/pirita/commit/0d3e663a7893ae9e163b28dc2775588810438423))
* Made the `webc::v2::Span`'s `with_offset()` method public ([30ccddb](https://github.com/wasmerio/pirita/commit/30ccddb3b9cf88cfccc9ae2a91a824b5016dbb0e))
* Polyfill the "atom" command annotation based on deprecated fields ([3794020](https://github.com/wasmerio/pirita/commit/3794020587c0c2a149407d8daf017da539f762c7))
## [5.4.0](https://github.com/wasmerio/pirita/compare/webc-v5.3.0...webc-v5.4.0) (2023-09-13)
### Features
* Expose file and volume offsets when parsing the v2 binary format ([#170](https://github.com/wasmerio/pirita/issues/170)) ([60f414d](https://github.com/wasmerio/pirita/commit/60f414d35cb5da6b37cc87ed214d7b9b09d8a822))
* Made a file entry's SHA-256 checksum accessible when reading volumes from a v2 webc file ([60f414d](https://github.com/wasmerio/pirita/commit/60f414d35cb5da6b37cc87ed214d7b9b09d8a822))
### Bug Fixes
* Fixed a broken docs link in `webc::wasmer_package::Strictness` ([60f414d](https://github.com/wasmerio/pirita/commit/60f414d35cb5da6b37cc87ed214d7b9b09d8a822))
## [5.3.0](https://github.com/wasmerio/pirita/compare/webc-v5.2.2...webc-v5.3.0) (2023-08-02)
### Features
* Introduced "strictness" to the `webc::wasmer_package` module to allow users to ignore partially invalid packages ([eb78e7d](https://github.com/wasmerio/pirita/commit/eb78e7da4124f8a0a023dd62cae81a4c41f00d28))
* The `wapm2pirita convert` command now allows the package to be slightly invalid (use "--strict" to get the old behaviour) ([4e3752d](https://github.com/wasmerio/pirita/commit/4e3752d5fda09fb079fa87fa04de02c2fc6504da))
### Bug Fixes
* Allow custom annotations to be merged with automatically generated annotations when they are both the same primitive value ([30d2b4e](https://github.com/wasmerio/pirita/commit/30d2b4edfb71743eff7c1a2c17dc8494ff377e7e))
## [5.2.2](https://github.com/wasmerio/pirita/compare/webc-v5.2.1...webc-v5.2.2) (2023-07-27)
### Bug Fixes
* Removed a dbg!() that was accidentally left in the code ([a663d40](https://github.com/wasmerio/pirita/commit/a663d40f9a68fc08b19b3ce9ef88ba5684a0bfae))
* Removed a todo!() that was accidentally left in the code ([546017f](https://github.com/wasmerio/pirita/commit/546017f78cdb8ddc9037d60b904a94060a4a5778))
## [5.2.1](https://github.com/wasmerio/pirita/compare/webc-v5.2.0...webc-v5.2.1) (2023-07-26)
### Bug Fixes
* Added polyfills to the `webc::wasmer_package` module to allow consuming tarballs in a WASI environment ([ba16852](https://github.com/wasmerio/pirita/commit/ba168528433564acb8908b4ce25c82cfab78a0d5))
* Made some more error variants propagate their underlying errors ([7c22e09](https://github.com/wasmerio/pirita/commit/7c22e0996f941d8b34504f197c25c22499f9d759))
## [5.2.0](https://github.com/wasmerio/pirita/compare/webc-v5.1.1...webc-v5.2.0) (2023-07-24)
### Features
* Added support for the "package.entrypoint" field in "wasmer.toml" (closes [#155](https://github.com/wasmerio/pirita/issues/155)) ([c6f3f0e](https://github.com/wasmerio/pirita/commit/c6f3f0e946d646ad0efada93831f52a2d4a87853))
## [5.1.1](https://github.com/wasmerio/pirita/compare/webc-v5.1.0...webc-v5.1.1) (2023-07-20)
### Bug Fixes
* Add support for Wasmer package commands that have "abi = none" ([0c38a77](https://github.com/wasmerio/pirita/commit/0c38a77d4081b392a8f8bce505c898fdeb209a7b))
## [5.1.0](https://github.com/wasmerio/pirita/compare/webc-v5.0.4...webc-v5.1.0) (2023-07-20)
### Features
* Explicitly specified command runners are no longer overridden by the "module.abi" field ([a3e1e40](https://github.com/wasmerio/pirita/commit/a3e1e405862c61bd619fc9d8c8b07b4c66caa5b7)), closes [#124](https://github.com/wasmerio/pirita/issues/124)
* Added a `webc::wasmer_package` module for lazily loading a Wasmer package from disk and using it as a webc
* A webc::Container now supports downcasting ([84ac898](https://github.com/wasmerio/pirita/commit/84ac898640fe20150f3b407acdc95c158949b200))
* Added conversions to webc::Container for common backing implementations ([78093b8](https://github.com/wasmerio/pirita/commit/78093b8bb38df6be8826109bb9ad4f535b8a5eb9))
* The version-agnostic Container and Volume abstractions are now exported from the top level and the `webc::compat` module has been deprecated ([a732d4e](https://github.com/wasmerio/pirita/commit/a732d4ed352bea67081e7af9d949c662560dee33))
### Bug Fixes
* **webc,wapm-to-webc:** Absolute paths in wasmer.toml are now translated to a volume-specific path in the webc manifest (fixes [#105](https://github.com/wasmerio/pirita/issues/105)) ([d64c0cc](https://github.com/wasmerio/pirita/commit/d64c0cc4b000fcd7579627682fe70b9d38566aff))
## [Unreleased] - ReleaseDate
## [5.0.4] - 2023-06-08
### Changed
- The `FileSystemMapping` now contains an `original_path` field, allowing
consumers to mount individual directories from a volume, rather than being
forced to mount the entire volume
([#127](https://github.com/wasmerio/pirita/pull/127))
## [5.0.3] - 2023-06-06
### Added
- Added a `FileSystemMappings` package annotation for declaring how volumes
should be mapped when instantiating a package
([#119](https://github.com/wasmerio/pirita/pull/119))
- Added getter methods for well-known package and command annotations
([#119](https://github.com/wasmerio/pirita/pull/119))
### Changed
- Abstracted the logic for `webc::compat::SharedBytes` out into its own crate
([#114](https://github.com/wasmerio/pirita/pull/114))
## [5.0.2] - 2023-05-28
### Fixed
- Fixed a bug where the compatibility layer would panic when reading a
zero-length atom from a v1 WEBC file
([#117](https://github.com/wasmerio/pirita/pull/117))
## [5.0.1] - 2023-05-27
### Fixed
- For v2 WEBC files, the compatibility layer was returning the wrong names from
`Container::volume_names()`
([#115](https://github.com/wasmerio/pirita/pull/115))
## [5.0.0] - 2023-04-18
[Unreleased]: https://github.com/wasmerio/pirita/compare/webc-v5.0.4...HEAD
[5.0.4]: https://github.com/wasmerio/pirita/compare/webc-v5.0.3...webc-v5.0.4
[5.0.3]: https://github.com/wasmerio/pirita/compare/webc-v5.0.2...webc-v5.0.3
[5.0.1]: https://github.com/wasmerio/pirita/compare/webc-v5.0.0..webc-v5.0.1
[5.0.1]: https://github.com/wasmerio/pirita/compare/webc-v5.0.0..webc-v5.0.1