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

51 lines
2.7 KiB
Markdown

# Changelog
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).
## [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.