ntu/CHANGELOG.md
dschlueter 0bab728d62 Bump Version auf 0.3.0
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>
2026-02-10 13:42:24 +01:00

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)
  • 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-color flag 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 .gitignore with better organization
  • Better error messages with colored output
  • Updated test framework to use modern cargo_bin! macro

Fixed

  • Removed unused warn import

[0.2.0] - 2025-02-10

Added

  • CLI: --dry-run as primary option (with --no-changes as deprecated alias for backward compatibility)
  • CLI: --special flag 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 rayon for 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 to unnamed.xxx
  • Leading dot in hidden files is now correctly preserved
  • Fixed all clippy warnings

Changed

  • Binary renamed from NameToUnix to ntu (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#)