diff --git a/CHANGELOG.md b/CHANGELOG.md index accdbbec..3900ff69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,13 +2,32 @@ ## 0.17 - Unreleased -* Change integers to newtypes in various public APIs +Major changes: +* Change many integer-based public API parameters to strongly-typed newtypes and bitflags. + This breaking changes affects many of the methods on `Filesystem` +* Change `Filesystem` trait methods to use `&self`, and require mounted filesystems to be `Send + Sync + 'static` +* Improve typed error handling across request/reply APIs +* Replace `Vec` mount APIs with a structured `Config` API, including ACL option handling +* Feature flags `abi-7-xx` are now ignored and will be removed in 0.18, with compatibility checks moved to runtime behavior +* Remove the old ABI-specific feature-flag surface (`abi-7-9` through `abi-7-19`, plus tooling/docs/examples references) +* Add support for multiple event loops per session, which can be enabled via `Config::n_threads` +* Add experimental async API (`AsyncFilesystem`) + +Minor changes: +* Rename `BackgroundSession::join` to `umount_and_join`, returning `io::Result<()>` instead of panicking +* Add `FUSE_DEV_IOC_CLONE` support and improve passthrough descriptor handling (`ReplyCreate`, `ReplyOpen`, `BackingId`) +* Improve passthrough descriptor handling (`ReplyCreate`, `ReplyOpen`, `BackingId`) * Add `FileType` conversion from std `FileType` -* Rename `BackgroundSession::join` to `umount_and_join` - and change it to return `io::Result<()>` instead of panicking +* Add option to explicitly choose `libfuse2` or `libfuse3`, prefer `libfuse3` by default +* Support building without libfuse on BSD +* Remove remaining `osxfuse` support and improve `macfuse` compatibility * The path to the `fusermount` binary can be specified with the `FUSERMOUNT_PATH` environment variable -* `allow_root` or `allow_other` must be specified when using `auto_unmount` -* feature flags `abi-7-xx` are ignored and will be removed in 0.18. +* `allow_root` or `allow_other` must be enabled when using `auto_unmount` +* Update and expand documentation + +Internal changes: +* Improve Linux/BSD/macOS test coverage by migrating mount tests to `fuser-tests` and expanding CI +* Rework session lifecycle internals (handshake/session startup, destroy ordering, and unmount error propagation) ## 0.16.0 - 2025-09-12 * Add support for passthrough file descriptors