github jdx/usage v2.13.0

latest release: v2.13.1
5 hours ago

Release Notes for v2.13.0

This release brings PowerShell completion support to usage, expanding shell coverage beyond Bash, Zsh, and Fish. PowerShell users can now generate native completions for their CLI tools with the same simple spec format. Additionally, a new usage lint command helps catch issues in your spec files before they become runtime problems.

Under the hood, this release includes performance improvements through smarter memory management and better error handling throughout the codebase. Several internal modernizations prepare the library for future Rust editions.

Highlights

  • PowerShell completion support — Generate tab completions for PowerShell alongside existing Bash, Zsh, and Fish support. See the completions documentation for usage details. (#431) by @jdx

  • New usage lint command — Validate your spec files and catch common mistakes early. Run usage lint to check for issues before generating completions or documentation. (#430) by @jdx

Bug Fixes

  • Positional arguments now pass through to executed scripts — Previously, positional args could be dropped when running scripts through usage. They're now correctly forwarded. (#425) by @jdx

  • Better error messages for unsupported shells — Instead of crashing with an unhelpful panic, usage now provides clear error messages when you request completions for an unsupported shell. (#432) by @jdx

  • Safer path handling — Fixed potential crashes when working with unusual file paths by replacing unsafe unwrap chains with proper error handling. (#424) by @jdx

Performance

  • Reduced memory allocations during parsing — Flag and argument keys now use Arc internally, reducing unnecessary string cloning when accessing parsed output. (#422) by @jdx

Maintenance

  • Replaced once_cell with Rust's standard library LazyLock, reducing dependencies (#428)
  • Removed unused double-shebang support (#426)

Don't miss a new usage release

NewReleases is sending notifications on new releases.