Packages

Declare the external command-line tools your app needs, check they are installed with version constraints, cache the result, and tell users how to install what is missing.

Current section

Files

Jump to
cli_deps CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
All notable changes to this project are documented here.
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.1.0] - 2026-08-21
Initial release.
### Added
- `use CliDeps` with a `tool/2` macro for declaring external command-line
dependencies.
- `check/1`, `check!/1`, `available?/1`, `explain/1`, `report/0`,
`all_available?/0`, `invalidate/1`.
- Version requirements via `Version` requirement strings, with extraction from
real-world `--version` output.
- Per-OS install hints (`:macos`, `:linux`, `:windows`, `:default`) surfaced in
error messages.
- Result caching in `:persistent_term` with a one-hour default TTL, monotonic
clock, and per-tool or global invalidation.
- `mix cli_deps.check` task that exits non-zero when anything is missing, for
use as a CI or container-build gate.
- Compile-time validation of version requirements, regex patterns, and
duplicate tool names.