Files
sized/CHANGELOG.md
T
gamertan 276c6404a9 feat: v0.2.0 - Performance optimization and distribution pipeline
- Implemented multi-threaded directory traversal using ignore::WalkParallel
- Added dynamic thread allocation for balanced CPU utilization
- Refactored core logic to single-pass, in-memory tree construction (O(N))
- Added --compare, --units, and --precision flags
- Established SCM-neutral distribution pipeline (Makefile, release.sh, Homebrew)
- Comprehensive updates to README.md, MANUAL.md, and CHANGELOG.md
- Decoupled from SCM-specific workflows
2026-01-22 15:00:48 -05:00

2.7 KiB

Changelog

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.

[0.2.0] - 2026-01-22

Added

  • Comparison Mode: Added --compare flag to display total size vs. non-ignored size (respecting .gitignore).
  • Unit Control: Added --units <binary|decimal> flag to toggle standard IEC (MiB) vs. SI (MB) unit systems.
  • Precision Control: Added --precision <number> to control decimal places in output (default: 2).
  • Physical vs. Logical Distinction: Explicitly show Apparent Size (logical) and Disk Usage (actual blocks consumed) in all output formats.
  • Release Assets:
    • Project Makefile for easy system-wide installation via make install.
    • Universal scripts/release.sh for generating optimized binaries, man pages, shell completions, and .deb packages.
    • Official man page (sized.1) for standard Unix documentation documentation.
    • Updated Homebrew Formula for tap-based distribution.
  • Improved Errors: Graceful handling for inaccessible directories (e.g., system protected folders) with "Access Denied" status.
  • Added a full user guide in MANUAL.md.

Changed

  • Performance Overhaul:
    • Replaced serial/par-bridge traversal with ignore::WalkParallel for true multi-threaded directory scanning.
    • Implemented dynamic thread allocation to balance CPU load between directory breadth and depth.
    • Refactored core logic to a single-pass, in-memory tree construction algorithm (O(N) complexity).
  • Architecture: Refactored the project into a usable Rust library (src/lib.rs) and a thin CLI wrapper (src/main.rs).
  • Dependencies:
    • Switched to byte-unit for more flexible and accurate unit formatting.
    • Replaced walkdir with ignore for faster traversal and native .gitignore support.
    • Replaced atty and chrono with standard library features and the lightweight time crate.
  • Serialization: Optimized JSON and CSV output for zero-copy performance and detailed metric reporting.

Fixed

  • Resolved performance bottleneck in extremely deep directory structures.
  • Fixed inconsistent total size reporting when .gitignore was active.

Removed

  • Dependency on walkdir, humansize, chrono, and atty.

[0.1.0] - 2026-01-22

Added

  • Initial release with core directory traversal and size calculation.
  • Basic parallel processing using rayon.
  • Rich table output via comfy-table.
  • Basic filtering (--min-size, --depth) and sorting (--sort).
  • Output format support: Text, CSV, and JSON.
  • Save to file and shell completion generation.