Skip to content

Releases: walujanle/file-rename-plus

v1.1.0 - Stable Version

Choose a tag to compare

@walujanle walujanle released this 28 Jul 18:25

Stable Version v1.1.0

This official release only provide binary files for Windows 10/11 64-bit only.

For other platforms, you can build this application manually, but this information has not been verified to work properly or not because it has not been tested on those platforms.

[1.1.0]

Added

  • Drag and drop. Folders can be dropped straight onto the window. Individual
    files work too, and a multi-item drop is handled one item at a time. The file
    panel shows a prompt while a drag is over the window.
  • Platform-aware filename validation, with the Unix branch covered by its own
    tests. Both the Windows and the Unix branch are compiled and run before release.
  • Build prerequisites for macOS and Linux are documented, including the system
    packages the GUI stack needs.
  • build_release_unix.sh, the macOS/Linux counterpart to the Windows build
    script. Same gate, same packaging, handles the stat and sha256sum spelling
    differences between the two.
  • A test that off_thread resolves inside a tokio runtime. Every scan and rename
    goes through spawn_blocking, which panics without one; nothing else in the
    suite exercises the async layer, so a broken executor assumption would otherwise
    have surfaced on the user's first click.

Changed

  • After a rename the list is rewritten in place rather than re-read from disk.
    The previews already record what each file became, so this needs no filesystem
    access, preserves any ordering set with Up/Down, and — unlike a re-scan — does
    not pull in unrelated files when the list was built by dropping individual ones.
  • Filename validation now follows the host's rules. The Windows character set,
    trailing dot/space rule and reserved device names were previously applied on
    every platform, which rejected names that are legal on macOS and Linux —
    Artist: Title.mp3 among them.

Fixed

  • Execute offered to run batches that would change nothing. Iteration emits a
    row per file, so re-running it on an already-numbered folder produced previews
    where every target equalled the current name. The button counted them and then
    reported "Renamed 0 file(s)". It now counts only previews that would move a
    file, and disables when none would.
  • Test fixtures used hardcoded C:\tmp\… paths. A backslash is not a separator on
    Unix, so those paths collapsed to a single component and the directory-aware
    conflict tests would have silently mis-asserted there. Fixtures now build paths
    with join.

[1.0.0]

First stable release. The project is feature-complete and archived; see
ARCHIVE.md.

Fixed

  • Delete no longer removes a file from the batch while you are typing. The
    keyboard subscription discarded iced's event::Status, so a Delete press
    consumed by a focused text field also fired the list shortcut — silently
    changing the batch during ordinary editing. Shortcuts now respect focus, while
    the unambiguous Ctrl chords stay global.
  • Conflicts against unchanged files are detected. Only files the pattern
    altered entered the preview list, and conflict detection counted just those. A
    rename onto the name of a file that was staying put therefore showed a clean
    preview, enabled Execute, and failed at run time. Detection now considers every
    file in the list.
  • Conflict detection is directory-aware. Two files with the same name in
    different folders were reported as colliding when they do not.
  • Case-only collisions are detected, both in the preview and in the pre-flight
    check, matching how Windows and macOS actually treat filenames.
  • Access checks test the right permission. Each file was opened for writing to
    decide whether it could be renamed. Renaming needs write access to the
    containing directory, so read-only files — and files merely open in another
    application — were wrongly refused. Verified by a test showing a read-only file
    cannot be opened for writing yet renames without complaint.
  • rust-version corrected from 1.80 to 1.89. The declared floor was wrong
    by nine minor versions, so the documented build instructions could not succeed
    on a clean toolchain.
  • Settings failures are reported instead of being silently discarded.
  • Non-numeric input in the Start and Padding fields is rejected at the field,
    rather than displayed and then silently reinterpreted as a default.

Changed

  • Settings are debounced. Typing in the iteration fields performed a directory
    creation, a connection, a CREATE TABLE and six upserts per keystroke. They
    now use the same 300 ms debounce as the preview.
  • Filesystem work runs off the UI executor via the blocking pool, so scanning a
    large folder or running a long batch cannot stall the interface.
  • Colours come from the active theme's palette. They were fixed constants tuned
    for the dark theme, leaving light mode with bright-green success text and grey
    status text on white.
  • The file list reloads after a rename instead of being cleared, so results are
    visible and a second pass needs no re-adding.
  • File cap lowered from 10 000 to 2000 to match what the non-virtualised list
    renderer actually sustains. The old figure was documented but never achievable.
  • Execute states the batch size, and explains itself with a tooltip when disabled.
  • The window has a minimum size, and the lists grow with it rather than sitting at
    a fixed 300 px.
  • Ctrl+↑ / Ctrl+↓ move the selected file.

Removed

  • The windows and libc dependencies. Both existed solely for an
    administrator/root check used to decide whether a read-only file could be
    modified — a question renaming never needed to ask. Removing it took the
    dependency graph from 272 crates to 262, and left the project with no
    platform-specific dependencies at all.

Added

  • rust-toolchain.toml pinning the verified compiler (1.95.0).
  • ARCHIVE.md — what the binary depends on, what a future rebuild
    needs, and the limitations that are accepted rather than outstanding.
  • Self-verifying documentation. Tests assert that the crate version,
    PROJECT_VERSION and the README badge agree, that the declared MSRV appears in
    the README, and that every numeric limit in the code is documented. Doc drift is
    now a build failure.
  • Test suite grown from 11 to 37, covering conflict detection, settings
    round-trips, access checks, keyboard handling and a full scan-preview-rename
    pass against a real directory — none of which had any coverage.
  • The current folder is named in the UI.

Internal

  • src/app/mod.rs (696 lines, with a 215-line update) split into mod.rs,
    update.rs and view.rs.
  • Domain limits moved out of theme.rs into limits.rs; rename and settings
    no longer import a presentation module to get validation bounds.
  • Single-file module directories flattened to plain files.
  • De-duplicated: the two near-identical preview-summary blocks, the settings
    database preamble shared by load and save, the setting-key literals written
    twice, and the labelled-input pattern repeated five times in the view.
  • status_message: Option<String> plus is_error: bool replaced with a Status
    enum, removing the representable-but-invalid "error with no message" state.
  • cargo clippy -W clippy::pedantic -W clippy::nursery is clean.

[0.1.1] — 2026-07-28

Changed

  • Dependency majors: iced 0.13 → 0.14, rfd 0.15 → 0.17, rusqlite 0.32 →
    0.40, dirs 5 → 6, windows 0.59 → 0.62, regex 1.11 → 1.13.
  • Dropped thiserror.

Added

  • Two-phase rename with best-effort rollback.
  • is_invalid on previews; conflicts and illegal filenames disable Execute rather
    than failing mid-batch.
  • First unit tests (11), covering rename strategies and file operations.

[0.1.0]

  • Initial release: find & replace, iteration numbering, natural sort, live
    preview, dark/light theme, SQLite settings persistence.

Checksums (SHA-256)

file-rename-plus-windows-x64-v1.1.0.zip
sha256:9451f2c6df8c70b8421132603012f9c147e8cb2d06c9dcf141ea7c196cdb3e73

v0.1.0 - Beta Version

v0.1.0 - Beta Version Pre-release
Pre-release

Choose a tag to compare

@walujanle walujanle released this 11 Jan 19:55

Beta Version v0.1.0

This official release only provide binary files for Windows 10/11 64-bit only.

For other platforms, you can build this application manually, but this information has not been verified to work properly or not because it has not been tested on those platforms.

Checksums (SHA-256)

file-rename-plus-windows-x64-v0.1.0-beta.zip
sha256:c7c4dcd4adb32a2c7e49b6db8a432f677c11b72328690c71f9db49416389bfa3