## Release 0.3.0

**Added**:

- Manual pages can now be generated by running `ingredients manual $OUT_DIR`.
- The registry client is now part of the public API. This enables configuring a
  custom `User-Agent` header for API requests.
- The file size threshold for diff generation is now configurable (by default,
  no diffs are generated if one or both of the compared files are larger than
  1 MiB).
- The "old" and "new" version arguments for the `ingredients diff` subcommand
  now accept strings that can be parsed as either `semver::Version` or
  `semver::VersionReq`. Plain versions are used as-is, and version requirements
  are used to query the registry for the greatest available version that matches
  the requirement.

**Changed**:

- The command-line application now sets reasonable defaults for logging, i.e.
  log messages with "info" level and higher are now emitted by default (in
  "release" mode). In "debug" mode, log messages with "debug" level and higher
  are printed.
- The "new" version argument for the `ingredients diff` subcommand is now
  optional. If omitted, the registry is queried for the greatest available
  version.
- Unified diffs are now only generated for files below a size threshold (by
  default, <1 MiB). This avoids exploding runtimes for diff generation for very
  large files.

**Fixed**:

- The project MSRV is now correctly set to 1.88.0 to account for when
  if-let-chains were stabilized.
- Detect the version of `git` available in `$PATH` and fall back to non-shallow
  clones and checkouts if it is too old (i.e. older than git v2.49).
- File contents are now normalized to `LF` style line endings before generating
  diffs. This avoids the "all lines have changed" issue when the compared files
  have different line ending styles (i.e. `CRLF` vs. `LF`).
- Diff generation is now skipped when selecting an output format that does not
  include them.

## Release 0.2.2

This is a re-release of 0.2.1 with no changes to resolve the missing version
bump in the Python PyPI package.

## Release 0.2.1

**Added**:

- Added support for generating CLI completions (bash, fish, zsh, nushell).
- Passing file paths that are not UTF-8 as CLI arguments is supported now.

**Fixed**:

- Improved detection of stripped `path`- and `git`-type dependencies.

## Release 0.2.0

**Added**:

- Added CLI argument to filter items by minimum severity.
- Added fallback mechanism if `path_in_vcs` is not available
  (crates published with old versions of `cargo`).

**Changed**:

- *Breaking*: Dropped CLI functionality from the "default" features.
- Improved rendering of unified diffs for file content changes.
- Simplified logic around the handling of `.cargo_vcs_info.json` files.
- Updated `cargo_metadata` dependency to `v0.23`.

**Fixed**:

- Fixed formatting of metadata paths of target-specific dependencies.
- Fixed logic bug in version requirement comparison.
- Refactored code for report generation to avoid code duplication.
- Fixed detection of stripped `git`-type dependencies.
- Explicitly call git in non-interactive mode
  (improves detection of invalid repository URLs).

## Release 0.1.1

- Updated README and add some example code snippets.

## Release 0.1.0

Initial release.
