From 0964ac4f6a679c3bd457338f21b1fe90167bc5bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Kr=C3=BCger?= Date: Wed, 6 Dec 2023 18:08:06 +0300 Subject: [PATCH] chore: Bump versions & write CHANGELOGs (#379) --- wnfs-bench/Cargo.toml | 2 +- wnfs-common/CHANGELOG.md | 9 +++++++++ wnfs-common/Cargo.toml | 2 +- wnfs-hamt/CHANGELOG.md | 7 +++++-- wnfs-hamt/Cargo.toml | 4 ++-- wnfs-nameaccumulator/CHANGELOG.md | 7 +++++++ wnfs-nameaccumulator/Cargo.toml | 4 ++-- wnfs-unixfs-file/CHANGELOG.md | 4 ++++ wnfs-unixfs-file/Cargo.toml | 4 ++-- wnfs-wasm/CHANGELOG.md | 4 ++++ wnfs-wasm/Cargo.toml | 6 +++--- wnfs-wasm/package.json | 2 +- wnfs/CHANGELOG.md | 11 +++++++++++ wnfs/Cargo.toml | 12 ++++++------ 14 files changed, 58 insertions(+), 20 deletions(-) diff --git a/wnfs-bench/Cargo.toml b/wnfs-bench/Cargo.toml index 4ebb5f64..89df9f97 100644 --- a/wnfs-bench/Cargo.toml +++ b/wnfs-bench/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wnfs-bench" -version = "0.1.25" +version = "0.1.26" description = "WNFS Benchmarks" publish = false edition = "2021" diff --git a/wnfs-common/CHANGELOG.md b/wnfs-common/CHANGELOG.md index a263a814..85c2f122 100644 --- a/wnfs-common/CHANGELOG.md +++ b/wnfs-common/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.1.26 (2023-12-06) + +* Removed `AsyncSerialize` and `RemembersCid` traits. +* Added `Storable`, `StoreIpld` and `LoadIpld` traits. +* Removed `BlockStore::store_async_serializable`. Use `Storable::store` instead. + +These traits allow the `Link` type to be used with data that doesn't necessarily encode as `dag-cbor`, such as `UnixFS` files, which encode as `dag-pb`. +For details see [#378](https://github.com/wnfs-wg/rs-wnfs/pull/378). + ## 0.1.25 (2023-09-04) * Small documentation improvements diff --git a/wnfs-common/Cargo.toml b/wnfs-common/Cargo.toml index d1254438..be7cea25 100644 --- a/wnfs-common/Cargo.toml +++ b/wnfs-common/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wnfs-common" -version = "0.1.25" +version = "0.1.26" description = "Common types for the Webnative Filesystem" keywords = ["wnfs", "webnative", "ipfs", "decentralisation"] categories = [ diff --git a/wnfs-hamt/CHANGELOG.md b/wnfs-hamt/CHANGELOG.md index 8b9ed3c2..062e3c41 100644 --- a/wnfs-hamt/CHANGELOG.md +++ b/wnfs-hamt/CHANGELOG.md @@ -1,8 +1,11 @@ # Changelog -## Unreleased +## 0.1.26 (2023-12-06) -* Remove `TryFrom` instances for `Hamt`, `Node` and `Pointer` and instead refactor handling of serialization internally. +* Refactored the API to use a `Storable` trait instead of `AsyncSerialize` ([#378](https://github.com/wnfs-wg/rs-wnfs/pull/378)) + This enables writing non-dag-cbor data, such as UnixFS files to WNFS, which powers the new file writing features. + As part of that `TryFrom` instances were removed for `Hamt`, `Node` and `Pointer` and instead these use `Storable` and `HamtSerializable`, `NodeSerializable` and `PointerSerializable` structs. + This also enables using `Node` in a nested way such as `Node>`. ## 0.1.25 (2023-09-04) diff --git a/wnfs-hamt/Cargo.toml b/wnfs-hamt/Cargo.toml index 94458c41..b61c35fa 100644 --- a/wnfs-hamt/Cargo.toml +++ b/wnfs-hamt/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wnfs-hamt" -version = "0.1.25" +version = "0.1.26" description = "IPLD HAMT implementation for Webnative Filesystem" keywords = ["wnfs", "webnative", "ipfs", "decentralisation"] categories = [ @@ -40,7 +40,7 @@ serde_bytes = "0.11.12" serde_ipld_dagcbor = "0.4.2" testresult = "0.3.0" thiserror = "1.0" -wnfs-common = { path = "../wnfs-common", version = "=0.1.25" } +wnfs-common = { path = "../wnfs-common", version = "=0.1.26" } [dev-dependencies] async-std = { version = "1.11", features = ["attributes"] } diff --git a/wnfs-nameaccumulator/CHANGELOG.md b/wnfs-nameaccumulator/CHANGELOG.md index 578cdf30..4c27f0be 100644 --- a/wnfs-nameaccumulator/CHANGELOG.md +++ b/wnfs-nameaccumulator/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 0.1.26 (2023-12-06) + +* Abstracted out the integer library used to support multiple backends ([#373](https://github.com/wnfs-wg/rs-wnfs/pull/373)). + Every type now has a `` type parameter, where `Big` is a trait that abstracts over integer operations. + By default `B` is set to the `DefaultBig` backend, which is based on either `num-bigint-dig` (enabled by default) or `rug` (enabled with the `rug` feature). +* Modified all use of integer serialization to use big-endian, to reduce room for error and match specification plans (see [#76](https://github.com/wnfs-wg/spec/pull/76) in the spec). + ## [0.1.25](https://github.com/wnfs-wg/rs-wnfs/compare/wnfs-nameaccumulator-v0.1.24...wnfs-nameaccumulator-v0.1.25) (2023-08-30) diff --git a/wnfs-nameaccumulator/Cargo.toml b/wnfs-nameaccumulator/Cargo.toml index fee5ee24..6732aec7 100644 --- a/wnfs-nameaccumulator/Cargo.toml +++ b/wnfs-nameaccumulator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wnfs-nameaccumulator" -version = "0.1.25" +version = "0.1.26" description = "Cryptographic accumulators for the Webnative Filesystem" keywords = ["wnfs", "webnative", "ipfs", "decentralisation"] categories = [ @@ -30,7 +30,7 @@ rug = { version = "1.22", optional = true, default-features = false, features = serde = { version = "1.0", features = ["rc"] } serde_bytes = "0.11.9" thiserror = "1.0" -wnfs-common = { path = "../wnfs-common", version = "=0.1.25" } +wnfs-common = { path = "../wnfs-common", version = "=0.1.26" } zeroize = "1.6" [dev-dependencies] diff --git a/wnfs-unixfs-file/CHANGELOG.md b/wnfs-unixfs-file/CHANGELOG.md index 825c32f0..4509f12b 100644 --- a/wnfs-unixfs-file/CHANGELOG.md +++ b/wnfs-unixfs-file/CHANGELOG.md @@ -1 +1,5 @@ # Changelog + +## 0.1.27 (2023-12-06) + +* Initial version diff --git a/wnfs-unixfs-file/Cargo.toml b/wnfs-unixfs-file/Cargo.toml index b1890a0f..83c521a3 100644 --- a/wnfs-unixfs-file/Cargo.toml +++ b/wnfs-unixfs-file/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wnfs-unixfs-file" -version = "0.1.25" +version = "0.1.1" description = "IPLD UnixFS File implementation for Webnative Filesystem" keywords = ["wnfs", "unixfs", "webnative", "ipfs", "decentralisation"] categories = [ @@ -29,7 +29,7 @@ prost = "0.12" rand_core = "0.6" testresult = "0.3" tokio = { version = "1.34", features = ["io-util"] } -wnfs-common = { path = "../wnfs-common", version = "=0.1.25" } +wnfs-common = { path = "../wnfs-common", version = "=0.1.26" } [dev-dependencies] async-std = { version = "1.11", features = ["attributes"] } diff --git a/wnfs-wasm/CHANGELOG.md b/wnfs-wasm/CHANGELOG.md index e718b64b..9c8d556d 100644 --- a/wnfs-wasm/CHANGELOG.md +++ b/wnfs-wasm/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.1.28 (2023-12-06) + +* `PublicDirectory` and `PublicFile` now support writing byte-arrays as file contents instead of just CIDs. ([#375](https://github.com/wnfs-wg/rs-wnfs/pull/375) and [#376](https://github.com/wnfs-wg/rs-wnfs/pull/376)) + ## 0.1.26 (2023-09-10) * Bumped wnfs dependency from 0.1.25 to 0.1.26 diff --git a/wnfs-wasm/Cargo.toml b/wnfs-wasm/Cargo.toml index 1bc704e8..24014f78 100644 --- a/wnfs-wasm/Cargo.toml +++ b/wnfs-wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wnfs-wasm" -version = "0.1.27" +version = "0.1.28" description = "WebNative Filesystem API (WebAssembly)" keywords = ["wnfs", "wasm", "webnative", "ipfs", "decentralisation"] categories = [ @@ -30,8 +30,8 @@ rand_core = "0.6" wasm-bindgen = { version = "0.2.87", optional = true, features = ["serde-serialize"] } wasm-bindgen-futures = { version = "0.4", optional = true } web-sys = { version = "0.3", optional = true } -wnfs = { path = "../wnfs", version = "=0.1.26" } -wnfs-nameaccumulator = { path = "../wnfs-nameaccumulator", version = "=0.1.25" } +wnfs = { path = "../wnfs", version = "=0.1.27" } +wnfs-nameaccumulator = { path = "../wnfs-nameaccumulator", version = "=0.1.26" } [dev-dependencies] wasm-bindgen-test = "0.3" diff --git a/wnfs-wasm/package.json b/wnfs-wasm/package.json index dcf15916..d81ea4b6 100644 --- a/wnfs-wasm/package.json +++ b/wnfs-wasm/package.json @@ -4,7 +4,7 @@ "The Fission Authors" ], "description": "WebNative Filesystem API (WebAssembly)", - "version": "0.1.27", + "version": "0.1.28", "license": "Apache-2.0", "homepage": "https://fission.codes", "repository": { diff --git a/wnfs/CHANGELOG.md b/wnfs/CHANGELOG.md index 866efa2a..84d715cb 100644 --- a/wnfs/CHANGELOG.md +++ b/wnfs/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## 0.1.27 (2023-12-06) + +* Switched from `Rc` to `Arc` and generally enabled rs-wnfs APIs to work in multithreaded contexts ([#366](https://github.com/wnfs-wg/rs-wnfs/pull/366) and #[#372](https://github.com/wnfs-wg/rs-wnfs/pull/372)) + For any `wasm32` target, this still falls back to `Rc` via conditional compilation. +* `PublicDirectory` and `PublicFile` now support writing byte-arrays as file contents instead of just CIDs. ([#375](https://github.com/wnfs-wg/rs-wnfs/pull/375) and [#376](https://github.com/wnfs-wg/rs-wnfs/pull/376)) + This supports chunking huge files, streaming files without needing to have the file in-memory all at once and reading files at offsets. +* Refactored the API to use a `Storable` trait instead of `AsyncSerialize` ([#378](https://github.com/wnfs-wg/rs-wnfs/pull/378)) + This enables writing non-dag-cbor data, such as UnixFS files to WNFS, which powers the new file writing features. +* WNFS can now make use of a new integer math backend based on `rug`, which is based on GMP ([#373](https://github.com/wnfs-wg/rs-wnfs/pull/373)) + This backend is ~2x faster for pure nameaccumulator operations, but only available in native code, not in Wasm. + ## 0.1.26 (2023-09-04) * Added `PrivateForestContent` API for storing encrypted data in private file metadata diff --git a/wnfs/Cargo.toml b/wnfs/Cargo.toml index 3fd38cba..c8386907 100644 --- a/wnfs/Cargo.toml +++ b/wnfs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wnfs" -version = "0.1.26" +version = "0.1.27" description = "WebNative filesystem core implementation" keywords = ["wnfs", "webnative", "ipfs", "decentralisation"] categories = [ @@ -45,10 +45,10 @@ skip_ratchet = { version = "0.3", features = ["serde"] } thiserror = "1.0" tokio = { version = "1.34", features = ["io-util"] } tokio-util = { version = "0.7.10", features = ["compat"] } -wnfs-common = { path = "../wnfs-common", version = "=0.1.25" } -wnfs-hamt = { path = "../wnfs-hamt", version = "=0.1.25" } -wnfs-nameaccumulator = { path = "../wnfs-nameaccumulator", version = "=0.1.25" } -wnfs-unixfs-file = { path = "../wnfs-unixfs-file", version = "=0.1.25" } +wnfs-common = { path = "../wnfs-common", version = "=0.1.26" } +wnfs-hamt = { path = "../wnfs-hamt", version = "=0.1.26" } +wnfs-nameaccumulator = { path = "../wnfs-nameaccumulator", version = "=0.1.26" } +wnfs-unixfs-file = { path = "../wnfs-unixfs-file", version = "=0.1.1" } [dev-dependencies] async-std = { version = "1.11", features = ["attributes"] } @@ -67,7 +67,7 @@ test-strategy = "0.3" testresult = "0.3.0" tiny-bip39 = "1.0" wnfs-common = { path = "../wnfs-common", features = ["test_utils"] } -wnfs-nameaccumulator = { path = "../wnfs-nameaccumulator", version = "=0.1.25", default-features = false, features = ["rug"] } +wnfs-nameaccumulator = { path = "../wnfs-nameaccumulator", version = "=0.1.26", default-features = false, features = ["rug"] } [lib] name = "wnfs"