2021-04-04 12:41:37 +00:00
|
|
|
# Changelog
|
2021-09-22 14:49:27 +00:00
|
|
|
Dates are given in YYYY-MM-DD format - for example, the 15th of October 2021 is written as 2021-10-15.
|
2021-04-04 12:41:37 +00:00
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
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).
|
|
|
|
|
|
|
|
## Unreleased
|
2021-09-24 06:34:58 +00:00
|
|
|
## Changed
|
2021-09-24 07:55:21 +00:00
|
|
|
- MSRV is now 1.56.0
|
2021-09-24 06:34:58 +00:00
|
|
|
- A few dependencies have been updated, most notably [`clap`]
|
2021-09-22 15:19:15 +00:00
|
|
|
### Added
|
|
|
|
- AIFF (Audio Interchange File Format, a PCM audio format like WAV) detection to [`infer`]
|
2021-09-22 16:05:50 +00:00
|
|
|
- `--version` output now includes the (short) hash of the git commit fif was built from
|
2021-09-22 14:49:27 +00:00
|
|
|
### Other
|
2021-09-22 16:05:50 +00:00
|
|
|
- Refactoring - split fif into `main.rs` and `lib.rs`, moved file-related functionality (directory scanning, etc.) into
|
2021-08-28 08:26:43 +00:00
|
|
|
files module, removed string module, etc.
|
2021-09-22 14:49:27 +00:00
|
|
|
- Changelog "refactoring":
|
|
|
|
- Based on the somewhat popular [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) guide, splitting the previous
|
2021-09-22 16:05:50 +00:00
|
|
|
"Features" heading into "Added" and "Changed" sections, renaming "Bugfixes" to "Fixed", and removing the
|
2021-09-22 14:49:27 +00:00
|
|
|
headings that (pointlessly?) previously divided the changelog into v0.3, v0.2, and v0.1
|
|
|
|
- A few minor grammar tweaks and reorganisations
|
|
|
|
|
|
|
|
## v0.3.6 - 2021-08-16
|
|
|
|
### Other
|
|
|
|
- Fixed another major dependency issue - [`clap`] version 3 beta **2** pulls in `clap_derive` version 3 beta **4**,
|
|
|
|
causing fif to fail to build unless you use `--locked`. `Cargo.toml` now explicitly depends on `clap_derive` v3b2,
|
|
|
|
which should fix this in (hopefully) all cases...
|
2021-08-18 13:42:44 +00:00
|
|
|
- Added an explicit dependency on `bitflags` 1.2.1, as 1.3+ requires Rust >= 1.46
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.3.5 - 2021-08-16 [YANKED]
|
|
|
|
### Other
|
2021-08-18 13:15:09 +00:00
|
|
|
- Updated `Cargo.toml` to pin [`clap`] to version 3 beta 2 - previously, version 3 beta 4 was considered compatible and
|
|
|
|
would be used if you ran `cargo install fif` instead of `cargo install --locked fif`, however, fif does *not* work with
|
2021-08-18 13:42:44 +00:00
|
|
|
this version of `clap`, which caused the build to fail. Also, `clap` 3 beta 4 depends on Rust >= 1.54, breaking our MSRV
|
2021-08-18 13:15:09 +00:00
|
|
|
- Fixed a few other `Cargo.toml` dependency versions that were causing issues when building on MSRV
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.3.4 - 2021-08-07
|
|
|
|
### Added
|
|
|
|
- `-I`/`--ignore-unknown-exts` flag for ignoring files with unknown extensions - for example, if fif doesn't know
|
2021-08-06 14:12:26 +00:00
|
|
|
what a ".fake" file is, setting this flag will prevent it from renaming "photo.fake" to "photo.jpg". This is useful
|
|
|
|
for avoiding the case where fif incorrectly mislabels an obscure format it isn't aware of as something else.
|
2021-09-22 14:49:27 +00:00
|
|
|
### Other
|
2021-07-24 06:20:49 +00:00
|
|
|
- Refactored `formats.rs`
|
2021-07-29 06:26:16 +00:00
|
|
|
- More accurate dependency versions in `Cargo.toml` to ensure that the MSRV stays supported
|
2021-08-06 13:33:42 +00:00
|
|
|
- Sister project (?) [`new-mime-guess`] is now v3.0.0, updated to 2018 edition Rust, and with some new file and MIME
|
|
|
|
types added
|
2021-07-24 06:20:49 +00:00
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.3.3 - 2021-07-07
|
|
|
|
### Added
|
|
|
|
- `--canonical-paths` flag for outputting canonical paths in output - for example,
|
2021-06-18 05:17:30 +00:00
|
|
|
`mv /home/lynne/file.jpg /home/lynne/file.mp3` instead of the default `mv file.jpg file.mp3`
|
2021-09-22 14:49:27 +00:00
|
|
|
### Other
|
2021-07-01 08:52:53 +00:00
|
|
|
- The `FIF_LOG` environment variable can now be used to set log level, in addition to `RUST_LOG`
|
|
|
|
- Log output now uses abbreviated level names: For example, `[D] Message` instead of `[DEBUG] Message`
|
2021-06-18 05:17:30 +00:00
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.3.2 - 2021-06-14
|
|
|
|
### Changed
|
2021-06-14 06:29:41 +00:00
|
|
|
- Nicer version output: `fif -V` reports "fif v0.3.2" (instead of just "fif 0.3.2" without the "v"), and `fif --version`
|
2021-06-14 07:35:47 +00:00
|
|
|
reports `fif v0.3.2 (XDG-Mime backend)`, or whatever backend you're using
|
|
|
|
- fif's trace output now includes its version, backend, operating system, and architecture
|
2021-09-22 14:49:27 +00:00
|
|
|
### Fixed
|
|
|
|
- Fixed PowerShell output regression introduced in v0.2.13, whoops
|
|
|
|
### Other
|
2021-06-14 08:23:49 +00:00
|
|
|
- Block compilation if both the `xdg-mime-backend` and `infer-backend`
|
|
|
|
[features](https://gitlab.com/Lynnesbian/fif/-/wikis/Cargo-Features) are enabled
|
2021-06-14 06:29:41 +00:00
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.3.1 - 2021-06-07
|
|
|
|
### Added
|
|
|
|
- JSON output support via `-o json`
|
|
|
|
- Plaintext output support via `-o text`
|
|
|
|
### Changed
|
2021-05-07 14:32:44 +00:00
|
|
|
- `videos` is now an alias for `video`
|
2021-09-22 14:49:27 +00:00
|
|
|
### Other
|
2021-05-09 23:44:39 +00:00
|
|
|
- More extensive README documentation
|
2021-05-05 22:57:42 +00:00
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.3.0 - 2021-04-28
|
|
|
|
### Added
|
|
|
|
- `-x`/`--exclude` flag for excluding file extensions (overrides `-e` or `-E` - `-E images -x jpg` scans all image
|
2021-04-28 06:16:32 +00:00
|
|
|
files, except ".jpg" files)
|
2021-09-22 14:49:27 +00:00
|
|
|
- `-X`/`--exclude-set` flag for excluding sets of files, with the same syntax and sets as `-E`
|
|
|
|
- `-q`/`--quiet` flag for reducing output verbosity
|
|
|
|
### Changed
|
|
|
|
- The `videos` extension set has been renamed to `video`, in line with `audio`. `fif --help` has actually mistakenly
|
|
|
|
referred to the set as `video` since v0.2.12! 0uo
|
2021-04-28 07:14:03 +00:00
|
|
|
- In addition to supplying included extensions as a comma separated list (like `-e jpg,png`), it is now possible to
|
2021-04-28 08:09:44 +00:00
|
|
|
supply them through multiple uses of the `-e` flag (like `-e jpg -e png`). This also applies to `-x`
|
2021-04-28 07:14:03 +00:00
|
|
|
- `-e` and `-E` no longer conflict with each other, and can now be used together. For example, `-E images -e mp3`
|
|
|
|
will scan all images *and* all MP3 files
|
2021-04-28 08:09:44 +00:00
|
|
|
- It is now possible to specify multiple extension sets at once: `-E images,system` will scan all images and archives
|
2021-04-28 11:27:06 +00:00
|
|
|
- fif's output now includes the directory it was run from
|
2021-09-22 14:49:27 +00:00
|
|
|
- Changed default verbosity to `info`
|
|
|
|
### Fixed
|
2021-04-28 12:20:10 +00:00
|
|
|
- Resolved some discrepancies between `application/xml` and `text/xml`
|
2021-09-22 14:49:27 +00:00
|
|
|
### Other
|
2021-04-28 06:16:32 +00:00
|
|
|
- Published my fork of ['mime_guess'] as ['new_mime_guess'], allowing it to be used properly with
|
2021-04-28 05:17:40 +00:00
|
|
|
[crates.io](https://crates.io)
|
2021-04-28 11:27:06 +00:00
|
|
|
- CI has been vastly improved
|
2021-04-28 05:17:40 +00:00
|
|
|
|
2021-04-28 12:20:10 +00:00
|
|
|
## v0.2
|
2021-04-26 12:36:02 +00:00
|
|
|
### v0.2.13 (2021-04-26)
|
2021-09-22 14:49:27 +00:00
|
|
|
### Added
|
|
|
|
- `-v`/`--verbose` flag for setting verbosity without using `RUST_LOG`
|
|
|
|
- System extension set (`.dll`, `.so`, `.exe`...)
|
|
|
|
- [`infer`] backend now supports Ren'Py archive (`.rpa`) files
|
|
|
|
### Changed
|
2021-04-26 10:19:58 +00:00
|
|
|
- Output is now sorted: Files that couldn't be read, then files with no known mimetype, then files with no known
|
|
|
|
extensions, then files with the wrong extension
|
2021-09-22 14:49:27 +00:00
|
|
|
- Added Apple iWork document formats to Documents extension set (`.pages`, `.key`, `.numbers`)
|
|
|
|
### Fixed
|
2021-04-26 10:19:58 +00:00
|
|
|
- Fixed some bad formatting in PowerShell output
|
|
|
|
- Always quote file paths in output, even when not necessary - This makes output more portable and less likely to break
|
|
|
|
in future, or if [`snailquote`] misses something
|
2021-09-22 14:49:27 +00:00
|
|
|
### Other
|
2021-04-14 08:43:39 +00:00
|
|
|
- Cleaned up and properly documented tests
|
2021-04-20 07:26:31 +00:00
|
|
|
- Renamed `Script` (in `formats.rs`) to `Shell`, in line with renaming in `parameters.rs`
|
|
|
|
- [`xdg-mime`] no longer uses git version
|
2021-04-26 10:19:58 +00:00
|
|
|
- Output `\r\n` on Windows
|
2021-06-14 07:47:21 +00:00
|
|
|
- Use a macro to generate `Writable` arrays, making the code a little cleaner and nicer to write
|
2021-04-14 08:43:39 +00:00
|
|
|
|
2021-04-14 07:27:44 +00:00
|
|
|
### v0.2.12 (2021-04-14)
|
2021-09-22 14:49:27 +00:00
|
|
|
### Added
|
|
|
|
- Text extension set
|
2021-04-06 15:48:46 +00:00
|
|
|
- Better documentation for command line arguments
|
2021-09-22 14:49:27 +00:00
|
|
|
### Fixed
|
2021-04-14 07:27:44 +00:00
|
|
|
- Fixed a very minor output bug relating to scanning symlinked directories
|
|
|
|
- Better detection for pre-OOXML Office files
|
2021-09-22 14:49:27 +00:00
|
|
|
### Other
|
2021-04-14 07:27:44 +00:00
|
|
|
- Much better README.md
|
2021-04-06 19:20:49 +00:00
|
|
|
- Added more stuff to test.py
|
|
|
|
- PKGBUILD for Arch-based distros
|
2021-04-08 13:33:33 +00:00
|
|
|
- More test coverage
|
2021-04-14 07:27:44 +00:00
|
|
|
- Doubled BUF_SIZE
|
2021-04-06 15:48:46 +00:00
|
|
|
|
|
|
|
### v0.2.11 (2021-04-04)
|
2021-09-22 14:49:27 +00:00
|
|
|
### Added
|
2021-04-04 13:52:16 +00:00
|
|
|
- fif can now traverse symlinks with the `-f`/`--follow-symlinks` flag
|
2021-09-22 14:49:27 +00:00
|
|
|
### Changed
|
|
|
|
- Better mime type detection:
|
|
|
|
- Consider "some/x-thing" and "some/thing" to be identical
|
|
|
|
- Use a patched version of mime_guess (which took a while to make 0u0;) with many more extension/type mappings
|
2021-04-04 13:52:16 +00:00
|
|
|
- Extensions are no longer mandatory - running fif without `-e` or `-E` will scan all files, regardless of extension
|
|
|
|
(files without extensions are still skipped unless the -S flag is used)
|
2021-09-22 14:49:27 +00:00
|
|
|
### Fixed
|
2021-04-04 12:41:37 +00:00
|
|
|
- Fixed compilation on big endian 32-bit architectures (see
|
2021-07-29 06:26:16 +00:00
|
|
|
[here](https://github.com/bodil/smartstring/blob/v0.2.7/src/config.rs#L102-L104) for why that was a problem in the
|
2021-06-14 06:53:41 +00:00
|
|
|
first place)
|
2021-04-04 13:52:16 +00:00
|
|
|
- Fixed broken tests for the [`infer`] backend
|
2021-04-04 12:41:37 +00:00
|
|
|
|
|
|
|
### v0.2.10 (2021-03-26)
|
2021-09-22 14:49:27 +00:00
|
|
|
### Added
|
2021-04-04 12:41:37 +00:00
|
|
|
- PowerShell support!
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.2.9 - 2021-03-17
|
|
|
|
### Other
|
2021-04-04 12:41:37 +00:00
|
|
|
- Replaced a bunch of `PathBuf`s with `Path`s, which should reduce memory usage
|
|
|
|
- Formatting improvements
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.2.8 - 2021-03-03
|
|
|
|
### Added
|
|
|
|
- Much more information to help output: author, copyright, etc.
|
2021-04-04 12:41:37 +00:00
|
|
|
- Scan files without extensions with `-S` (by default, such files are ignored)
|
2021-09-22 14:49:27 +00:00
|
|
|
### Fixed
|
2021-04-04 12:41:37 +00:00
|
|
|
- Using `-s` to skip hidden files no longer skips all files if the root directory itself is hidden
|
2021-09-22 14:49:27 +00:00
|
|
|
### Other
|
2021-04-04 12:41:37 +00:00
|
|
|
- The `ScanError` enum now contains a `PathBuf` - Errors now return `ScanError` rather than `(ScanError, PathBuf)`
|
|
|
|
- Renamed modules in accordance with [Rust's API guidelines](https://rust-lang.github.io/api-guidelines/naming.html)
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.2.7 - 2021-03-01
|
|
|
|
### Added
|
|
|
|
- Documentation! And lots of it! 0u0
|
|
|
|
- Added a test for argument parsing
|
|
|
|
### Changed
|
2021-04-04 12:41:37 +00:00
|
|
|
- Default to `WARN`-level logging if `RUST_LOG` isn't set
|
2021-09-22 14:49:27 +00:00
|
|
|
|
|
|
|
### Other
|
|
|
|
- Drone CI config
|
|
|
|
- `test.py` for automated building and testing against Rust stable, beta, nightly, and the MSRV specified in
|
2021-04-04 12:41:37 +00:00
|
|
|
`Cargo.toml`
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.2.6 - 2021-02-28
|
|
|
|
### Added
|
|
|
|
- Tests!
|
|
|
|
### Changed
|
2021-04-04 12:41:37 +00:00
|
|
|
- Default to [`xdg-mime`] on all Unixy platforms, not just Linux - this also includes the various *BSDs (I've tested
|
2021-06-14 07:47:21 +00:00
|
|
|
FreeBSD), macOS (haven't tested, but I have a very old MacBook running Leopard that has `file` preinstalled, so it
|
2021-04-04 12:41:37 +00:00
|
|
|
*should* work fine), Redox OS (haven't tested), etc.
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.2.5 - 2021-02-27
|
|
|
|
### Other
|
2021-04-04 12:41:37 +00:00
|
|
|
- Use [`xdg-mime`] by default on Linux, [`infer`] elsewhere
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.2.4 - 2021-02-22
|
|
|
|
### Added
|
2021-04-04 12:41:37 +00:00
|
|
|
- Proper(ish) XML document support
|
|
|
|
- Display version in help output
|
|
|
|
|
|
|
|
### v0.2.3+hotfix (2021-02-22)
|
2021-09-22 14:49:27 +00:00
|
|
|
### Added
|
2021-04-04 12:41:37 +00:00
|
|
|
- A quick hack to fix broken/non-existent support for XML document files - `docx`, `odt`, etc.
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.2.3 - 2021-02-22
|
|
|
|
### Added
|
2021-04-04 12:41:37 +00:00
|
|
|
- Automatically disable [`xdg-mime`] backend on Windows
|
|
|
|
- Exit codes
|
|
|
|
- Improved error handling
|
2021-04-26 10:19:58 +00:00
|
|
|
- Retrieve extension sets from [`mime_guess`] rather than hardcoding them
|
2021-09-22 14:49:27 +00:00
|
|
|
### Changed
|
2021-04-04 12:41:37 +00:00
|
|
|
- Switched back from `printf` to `echo` in shell output
|
2021-09-22 14:49:27 +00:00
|
|
|
### Fixed
|
|
|
|
- Improved SVG detection
|
|
|
|
### Other
|
2021-04-04 12:41:37 +00:00
|
|
|
- More frequent and detailed comments
|
|
|
|
- Refactored `formats.rs`
|
|
|
|
- Exclude certain files and directories from the crate
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.2.2 - 2021-02-20
|
|
|
|
### Added
|
2021-04-04 12:41:37 +00:00
|
|
|
- Windows support
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.2.1 - 2021-02-18
|
|
|
|
### Added
|
|
|
|
- Extension sets -- you can now use, for example, `-E images` to check files with known image extensions
|
2021-04-04 12:41:37 +00:00
|
|
|
- Shell script output now uses `printf` instead of `echo`
|
2021-09-22 14:49:27 +00:00
|
|
|
- [`infer`] backend, configurable with [Cargo features](https://gitlab.com/Lynnesbian/fif/-/wikis/Cargo-Features)
|
|
|
|
### Fixed
|
2021-04-04 12:41:37 +00:00
|
|
|
- Fixed broken singlethreaded support
|
2021-09-22 14:49:27 +00:00
|
|
|
### Other
|
2021-04-04 12:41:37 +00:00
|
|
|
- Use a global backend instance instead of passing `&db` around constantly
|
|
|
|
- Use `rustfmt` 0u0
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.2.0 - 2021-02-15
|
|
|
|
### Added
|
2021-04-04 12:41:37 +00:00
|
|
|
- Output a script rather than a list of misnamed files
|
|
|
|
- Parallel file scanning
|
2021-09-22 14:49:27 +00:00
|
|
|
- Logging support
|
|
|
|
### Fixed
|
2021-04-04 12:41:37 +00:00
|
|
|
- Handle filenames with invalid UTF-8
|
2021-09-22 14:49:27 +00:00
|
|
|
### Other
|
|
|
|
- Now licensed (under GPLv3)
|
2021-04-04 12:41:37 +00:00
|
|
|
- Replaced [`structopt`] with [`clap`] 3 (beta)
|
|
|
|
- Specify 1.43.0 as minimum supported Rust version
|
|
|
|
|
2021-09-22 14:49:27 +00:00
|
|
|
## v0.1.0 - 2021-02-04
|
2021-04-04 12:41:37 +00:00
|
|
|
Initial commit!
|
|
|
|
- Only one backend - [`xdg-mime`]
|
2021-06-14 07:47:21 +00:00
|
|
|
- No output formats - just prints a list of files to be renamed
|
2021-04-04 12:41:37 +00:00
|
|
|
- Only supported flags are `-e` (specify extensions) and `-s` (scan hidden files)
|
|
|
|
|
|
|
|
<!-- links -->
|
|
|
|
[`xdg-mime`]: https://crates.io/crates/xdg-mime
|
|
|
|
[`structopt`]: https://crates.io/crates/structopt
|
|
|
|
[`clap`]: https://crates.io/crates/clap
|
|
|
|
[`infer`]: https://crates.io/crates/infer
|
2021-04-26 10:19:58 +00:00
|
|
|
[`mime_guess`]: https://crates.io/crates/mime_guess
|
2021-04-28 06:16:32 +00:00
|
|
|
[`new_mime_guess`]: https://crates.io/crates/new_mime_guess
|
|
|
|
[`snailquote`]: https://crates.io/crates/snailquote
|