build(deps): update dependency jdx/usage to v3#226
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
f6d7623 to
aba63ad
Compare
aba63ad to
bdbb1fc
Compare
600234e to
fdb5b8a
Compare
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fdb5b8a to
4005deb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v2.16.1→v3.3.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
jdx/usage (jdx/usage)
v3.3.0: : Auto-completion for usage shebang scriptsCompare Source
The headline feature in this release is one-line auto-completion for
usage-shebang scripts: source a single init script from your shell rc and everyusage-powered script on your$PATHgets<Tab>completion automatically. This release also brings new third-party integration guides and a handful of docs site polish fixes.Added
Auto-completion for usage shebang scripts (#620 by @jdx). A new
usage generate completion-init <shell>subcommand (aliasci) emits a one-time init script for bash, zsh, and fish. Source it once and any executable on$PATHwhose first line is ausageshebang gains tab-completion — no per-scriptusage g completion <shell> <bin> -f <script>generation step.Mechanism per shell:
complete -Ddefault handler that peeks the candidate command's first line for ausageshebang and dispatches tousage complete-word. Non-usage commands chain to bash-completion's_completion_loader, so existing completions keep working.compdef -default-fallback with the same shebang detection, falling back to_filesfor non-usage commands.$PATHonce at shell startup and registerscomplete -c <name>for each shebang script it finds.Pass
--usage-bin(or setJDX_USAGE_BIN) if yourusagebinary is installed under a different name.Third-party integration guides. Documentation now covers using usage alongside Commander.js, oclif, and yargs (#616 by @gaojunran) as well as Typer and Click (#619 by @gaojunran), based on the usage-integrations monorepo.
Fixed
<=640pxwith the close button pinned to the top-right corner, fixing cramped two-line wrapping on mobile (#603 by @jdx).Full Changelog: jdx/usage@v3.2.1...v3.3.0
💚 Sponsor usage
usage is built by @jdx at en.dev — an independent developer-tooling studio behind mise, aube, hk, and more. Work on usage is funded by sponsorships.
If
usagepowers CLI specs, docs, or completions for a tool you maintain or use, please consider sponsoring at en.dev. Every sponsorship helps the project stay independent and moving.v3.2.1: : Zsh completion fix for values without descriptionsCompare Source
A small patch release that fixes a zsh completion regression introduced in v3.1.0. If you use zsh completions with values that contain colons (such as nested task names) and those values don't have descriptions, you should upgrade and regenerate your completions.
Fixed
Zsh completions now correctly escape colons in completion values even when no descriptions are present. In v3.1.0, the switch from
_argumentsto_describeintroduced a bug where the escape logic only ran when at least one completion had a description. Without escaping, a value liketest:gitwas misinterpreted by zsh -- it treatedgitas a description for the itemtestrather than as part of the value. If you have existing generated zsh completions, regenerate them to pick up this fix. (#597 by @david-hamilton-glean)Test suite now respects the
CARGO_BIN_EXE_usageenvironment variable when set, fixing test failures in environments with non-standard build directories such as Nixpkgs cross-compilation builds. (#568 by @kybe236)New Contributors
Full Changelog: jdx/usage@v3.2.0...v3.2.1
v3.2.0: : Environment-backed choices and zsh escaping fixCompare Source
This release adds the ability to source argument/flag choices from environment variables at runtime and fixes a zsh completion regression where parentheses and brackets in task descriptions caused shell errors.
Added
Arguments and flags can now pull their allowed values from an environment variable using
choices env=.... The env var value is split on commas and/or whitespace, deduplicated against any literal choices, and resolved at parse/completion time rather than baked into generated output. (#548 by @mustafa0x)With
DEPLOY_ENVS="foo,bar baz", valid values becomefoo,bar, andbaz. You can also combine literal choices with env-backed ones:When the env var is unset or empty and no literal choices are provided, validation rejects all values with a clear error message. Help output and generated markdown surface the controlling env var name rather than snapshotting its current value.
This feature is currently behind the
unstable_choices_envfeature flag in the library crate.Fixed
(,)) and brackets ([,]) in completion descriptions. Previously, these characters were passed through to zsh's_describefunction unescaped, causing it to interpret them as glob qualifiers or character classes -- resulting in cryptic errors likeunknown file attributeandunknown sort specifier. This was a regression from v2.x. If you have existing generated zsh completions, regenerate them to pick up this fix. (#559 by @jdx, fixes #558)New Contributors
Full Changelog: jdx/usage@v3.1.0...v3.2.0
v3.1.0: : Richer help output, stdin support, and zsh completion fixesCompare Source
This release improves the CLI's
--helpoutput to render all the documentation-related fields that were previously only used in manpage and markdown generation, adds stdin support for piping specs into usage commands, and fixes a long-standing zsh completion annoyance with trailing spaces.Highlights
--help/-houtput is now much richer, rendering examples, before/after help text, version headers, author/license info, and deprecation markers -- fields that were previously only surfaced in generated manpages and markdown.--file -, enabling workflows likejbang usage | usage generate markdown --file -.Added
The built-in
--help/-hrendering now includesbefore_help,after_help(and their_longvariants),examples, aname+versionheader,author/licensein the long help footer, and[deprecated: reason]markers on subcommands. Short help (-h) uses the base variants; long help (--help) prefers the_longvariants with a fallback to the base ones. (#554 by @jdx, closes #549)For example, a spec like:
will now render those sections in
mycli --helpoutput, not just in generated docs.All
--fileflags acrossgenerate,lint, andcomplete-wordsubcommands now accept-to read the usage spec from stdin. This enables piping specs from other tools without writing a temporary file. (#555 by @jdx, closes #546)Not supported for
exec/shellsubcommands, which pass stdin through to the child process.Fixed
node@would producenode@(with a space), and path completions like/opt/homebrewwould not include a trailing slash. The generated zsh completion scripts now use_describewith-S ''instead of_argumentswith command substitution, and directory completions include a trailing/. If you have existing generated zsh completions, regenerate them to pick up this fix. (#556 by @jdx, closes #67)Full Changelog: jdx/usage@v3.0.0...v3.1.0
v3.0.0: : Spec metadata expansion and Cobra escaping fixCompare Source
This release adds several new metadata fields to the usage spec and includes a breaking API change to the
Specstruct. The spec parser now supportslicense,before_help,after_help,before_long_help, andafter_long_help-- fields that were documented in the spec reference but silently ignored until now. TheSpecstruct has been marked#[non_exhaustive]to allow future field additions without further breaking changes.Breaking Changes
The
Specstruct now has the#[non_exhaustive]attribute. If you constructSpecvalues using struct literal syntax, your code will need to be updated:This change was made so that new fields can be added to
Specin future minor releases without breaking downstream code. (#542 by @jdx, fixes #537)Added
Support for
license,before_help,after_help,before_long_help, andafter_long_helptop-level metadata fields in the usage spec. These fields are now parsed, serialized, and included in spec merges and generated docs. For example:(#542 by @jdx)
New community integration: Ruby's
OptionParserviaoption_parser_usage. (#533 by @packrat386)Fixed
\n), tabs (\t), and carriage returns (\r) in KDL output. Previously, Cobra commands with multi-line help text would produce invalid KDL specs that failed to parse. (#539 by @thecodesmith)Changed
roffdependency from 0.2 to 1.0 for man page generation. (#529)New Contributors
Full Changelog: jdx/usage@v2.18.2...v3.0.0
v2.18.2: : Fix noclobber compatibility in shell completionsCompare Source
A small patch release that fixes a compatibility issue with the
noclobbershell option. If you hadset -o noclobber(orset -C) enabled in bash or zsh, tab completions generated by usage would fail with a "cannot overwrite existing file" error every time the spec cache file already existed. This is now fixed.Fixed
>|(force-overwrite redirection) instead of>when writing the spec cache file, preventing failures when the shell'snoclobberoption is enabled. Previously, users withnoclobberset would see errors likebash: /tmp/usage__usage_spec_mycli.spec: cannot overwrite existing fileon every tab completion. (#524 by @nkakouros)New Contributors
Full Changelog: jdx/usage@v2.18.1...v2.18.2
v2.18.1: : Fix choice validation for variadic args and flagsCompare Source
A small patch release that fixes a parsing bug where variadic arguments and flags with declared
choiceswere not being validated. Previously, any value was silently accepted for variadic (var=#true) args and flags, even when achoicesconstraint was specified. Non-variadic args and flags were unaffected and already validated correctly.Fixed
choicesnow correctly reject invalid values at parse time, matching the existing behavior for non-variadic args and flags. For example, given a spec likearg "<level>" var=#true { choices "debug" "info" "warn" "error" }, passing an invalid value such as"invalid"now produces a clear error message instead of being silently accepted. (#520 by @jdx, fixes jdx/mise#8334)Full Changelog: jdx/usage@v2.18.0...v2.18.1
v2.18.0: (Internal CI improvements)Compare Source
This is a maintenance release with no user-facing changes. The only modification is an internal CI/CD improvement that extracts the AI-powered release-note enhancement step into a separate GitHub Actions job, making it independently re-runnable if it fails due to transient errors.
There are no changes to the library, CLI, shell completions, spec format, or documentation.
Full Changelog: jdx/usage@v2.17.4...v2.18.0
v2.17.4Compare Source
🐛 Bug Fixes
v2.17.0: : Nushell Support & Cobra IntegrationCompare Source
This release adds two significant features: shell completion support for nushell users and a new Go package for generating usage specs from Cobra CLI definitions.
Highlights
Nushell Completions
usage now generates shell completions for nushell, joining bash, zsh, fish, and PowerShell as a supported shell. The implementation uses nushell's module system and
@completesyntax to provide dynamic completions that call back tousage complete-wordat runtime—the same approach used by the other shells.Thanks to @abusch for contributing this! #485
Cobra (Go) Integration
A new Go package at
integrations/cobra/converts Cobra command trees into usage specs. If you have a Go CLI built with Cobra, you can now generate shell completions, markdown docs, and man pages from your existing command definitions without writing a spec by hand.The package provides a straightforward API:
Generate(cmd)— returns a KDL spec stringGenerateJSON(cmd)— returns a JSON specGenerateToFile(cmd, path)/GenerateJSONToFile(cmd, path)— write specs to diskIt maps Cobra commands, flags (persistent and local), positional args, aliases,
ValidArgschoices, hidden/deprecated markers, and more. See the Cobra integration docs for setup details. #498Integrations Framework Tracker
The new integrations directory documents the roadmap for framework support across languages. Clap (Rust) and Cobra (Go) are implemented; Commander.js, Click, Typer, and others are planned. #497 #499
New Contributors
v2.16.2: : Arg Parser Child Node FixCompare Source
A small bug fix release. The main change fixes an issue where KDL spec authors couldn't use common properties like
help,long_help,required,var, andhideas child nodes insidearg { ... }blocks — they would cause parse errors. These now work correctly, matching the existing behavior for flags.Bug Fixes
argdefinitions now supporthelp,long_help,help_long,help_md,required,var,var_min,var_max,hide, anddouble_dashas child nodes inside{}blocks. Previously onlychoices,env, anddefaultwere supported, causing parse errors for other properties. (#489)Configuration
📅 Schedule: (in timezone Europe/Stockholm)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.