Neue Features seit 0.2.0: - CI/CD Pipeline mit automatischen Builds - Shell-Completions für Bash, Zsh und Fish - Professionelle Manpage - Farbige Terminal-Ausgabe - 13 Integration-Tests Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2.9 KiB
2.9 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.3.0] - 2025-02-10
Added
- CI/CD Pipeline: Automated testing and release builds via GitHub Actions
- CI workflow: Tests on Rust stable and beta, Clippy, rustfmt checks
- Release workflow: Multi-platform builds (Linux x86_64, Linux musl, macOS Intel, macOS ARM)
- Shell Completions: Auto-completion support for all major shells
- Bash completion (
completions/ntu.bash) - Zsh completion (
completions/_ntu) - Fish completion (
completions/ntu.fish)
- Bash completion (
- Manpage: Professional manual page (
man/ntu.1) with full documentation - Colored Output: Terminal colors for better visual feedback
- Green for successful renames
- Yellow for dry-run mode
- Red for errors
- Cyan/bold for statistics
--no-colorflag to disable colors
- Integration Tests: 13 comprehensive integration tests using
assert_cmd - README: Installation instructions for pre-built binaries, badges (CI, Release, Version, License)
Changed
- Improved
.gitignorewith better organization - Better error messages with colored output
- Updated test framework to use modern
cargo_bin!macro
Fixed
- Removed unused
warnimport
[0.2.0] - 2025-02-10
Added
- CLI:
--dry-runas primary option (with--no-changesas deprecated alias for backward compatibility) - CLI:
--specialflag to process symlinks and special files (normally skipped) - Smart Default Excludes: Automatically ignore
.git,.svn,node_modules,.cache,__pycache__ - Double Extensions: Proper handling of
.tar.gz,.tar.bz2,.tar.xz,.tar.zst,.tar.lz,.tar.Z - Parallel Processing: Using
rayonfor parallel filename cleaning when processing ≥100 files - Write Permission Checks: Check write permissions before attempting rename operations
- Unit Tests: 9 comprehensive tests for
clean_filename()covering edge cases
Fixed
- Critical Bug: Hidden files (like
.gitignore) are no longer incorrectly renamed tounnamed.xxx - Leading dot in hidden files is now correctly preserved
- Fixed all clippy warnings
Changed
- Binary renamed from
NameToUnixtontu(shorter CLI usage) - Improved error messages for permission issues
- Better handling of hidden files with spaces (
.my config→.my_config)
Performance
- Parallel processing with rayon for large directory trees (threshold: 100 files)
- Optimized regex patterns using
once_cell::Lazy
[0.1.0] - 2025-03-07
Added
- Initial release
- Basic filename sanitization
- Configurable replacements via TOML
- Recursive directory processing
- Exclude patterns support
- German umlaut conversion
- Special identifier preservation (C++, C#)