Documentation (BREAKING)
-
declare the Rust library API experimental
Mark the crate root so all Rust library exports participate in experimental
compatibility checks. Future API breaks require minor releases while patch
compatibility remains checked. Document tilde requirements for library
consumers and retain the stable CLI and dua-core compatibility policies.The transition removes the previous stable Rust library API promise and
requires dua-cli 3.0.0. Let smart-release apply versions during release.
Bug Fixes (BREAKING)
-
retain filesystem paths in traversal errors
Just looked at the production code and rubber-stamped the tests.
All that really happens is a new error type that retains more informationRootEvent and Walk previously yielded plain I/O errors, leaving consumers
unable to identify a failing descendant. Return a typed dua_core::Error
with the entry path, or the directory path when enumeration cannot identify
an entry, and retain the original I/O error for kind and OS-code inspection.Keep sibling failures as separate iterator items. Update native and ordinary
reads, streamed roots, prepared roots, cancellation, and CLI forwarding.
Metadata errors remain attached to their Entry. Document the breaking API
change and conversion back to io::Error.Regression coverage removes two sibling directories before descent in both
orders and metadata modes; it also checks missing and streamed roots,
original OS errors, source access, and conversion without losing context.
The regression initially failed because io::Error has no path accessor.
Commit Statistics
- 6 commits contributed to the release.
- 18 days passed between releases.
- 2 commits were understood as conventional.
- 1 unique issue was worked on: #421