diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ea236a0f..2432cae7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,288 @@ # Changelog +## [6.0.0](https://github.com/jdx/usage/compare/v5.1.0..v6.0.0) - 2026-08-22 + +### ๐Ÿš€ Features + +- **(argv)** add a zero-allocation argv parser by [@jdx](https://github.com/jdx) in [#798](https://github.com/jdx/usage/pull/798) +- **(argv)** emit a usage spec from static metadata by [@jdx](https://github.com/jdx) in [#801](https://github.com/jdx/usage/pull/801) +- **(argv)** a bound stops a variadic by [@jdx](https://github.com/jdx) in [#826](https://github.com/jdx/usage/pull/826) +- **(argv)** route a word that names nothing to the default subcommand by [@jdx](https://github.com/jdx) in [#848](https://github.com/jdx/usage/pull/848) +- **(argv)** join static tables at compile time by [@jdx](https://github.com/jdx) in [#851](https://github.com/jdx/usage/pull/851) +- **(argv)** render the usage line, byte-identical to usage-lib's by [@jdx](https://github.com/jdx) in [#854](https://github.com/jdx/usage/pull/854) +- **(argv)** render `-h`, byte-identical to usage-lib's by [@jdx](https://github.com/jdx) in [#860](https://github.com/jdx/usage/pull/860) +- **(argv)** render `--help` too, byte-identical to usage-lib's by [@jdx](https://github.com/jdx) in [#866](https://github.com/jdx/usage/pull/866) +- **(argv)** answer `--help` and `-h` by [@jdx](https://github.com/jdx) in [#870](https://github.com/jdx/usage/pull/870) +- **(argv)** answer the `help` subcommand by [@jdx](https://github.com/jdx) in [#872](https://github.com/jdx/usage/pull/872) +- **(argv)** split a command line the way the shell that typed it would by [@jdx](https://github.com/jdx) in [#874](https://github.com/jdx/usage/pull/874) +- **(argv)** read the cursor's position off a real parse by [@jdx](https://github.com/jdx) in [#876](https://github.com/jdx/usage/pull/876) +- **(argv)** offer what the reference offers, from compiled tables by [@jdx](https://github.com/jdx) in [#877](https://github.com/jdx/usage/pull/877) +- **(argv)** generate the shell script each shell wants by [@jdx](https://github.com/jdx) in [#887](https://github.com/jdx/usage/pull/887) +- **(argv)** let a Rust function answer for a value by [@jdx](https://github.com/jdx) in [#888](https://github.com/jdx/usage/pull/888) +- **(argv)** write the `run=` a declared completer answers by [@jdx](https://github.com/jdx) in [#890](https://github.com/jdx/usage/pull/890) +- **(argv)** say what went wrong the way clap says it by [@jdx](https://github.com/jdx) in [#895](https://github.com/jdx/usage/pull/895) +- **(argv)** suggest what was probably meant by [@jdx](https://github.com/jdx) in [#897](https://github.com/jdx/usage/pull/897) +- **(argv)** answer `--version`, which an adopter loses on the way from clap by [@jdx](https://github.com/jdx) in [#909](https://github.com/jdx/usage/pull/909) +- **(argv)** a flag whose value may be left off by [@jdx](https://github.com/jdx) in [#969](https://github.com/jdx/usage/pull/969) +- **(argv)** take flag-like detached values when declared by [@jdx](https://github.com/jdx) in [#1012](https://github.com/jdx/usage/pull/1012) +- **(bench)** count what a parse allocates, and stop allocating for commands nobody ran by [@jdx](https://github.com/jdx) in [#829](https://github.com/jdx/usage/pull/829) +- **(cli)** hold a spec's declaration order, the way clap-sort holds a clap CLI's by [@jdx](https://github.com/jdx) in [#915](https://github.com/jdx/usage/pull/915) +- **(cli)** parse usage's own command line with the parser usage ships by [@jdx](https://github.com/jdx) in [#965](https://github.com/jdx/usage/pull/965) +- **(cli)** support long version text by [@jdx](https://github.com/jdx) in [#1120](https://github.com/jdx/usage/pull/1120) +- **(cli)** check that examples still parse, and let the derive declare them by [@jdx](https://github.com/jdx) in [#1168](https://github.com/jdx/usage/pull/1168) +- **(cli)** add usage explain by [@jdx](https://github.com/jdx) in [#1179](https://github.com/jdx/usage/pull/1179) +- **(cli)** add usage diff for spec compatibility checking by [@jdx](https://github.com/jdx) in [#1171](https://github.com/jdx/usage/pull/1171) +- **(complete)** complete config keys and values from the spec by [@jdx](https://github.com/jdx) in [#840](https://github.com/jdx/usage/pull/840) +- **(complete)** add async runtime overlays by [@jdx](https://github.com/jdx) in [#1060](https://github.com/jdx/usage/pull/1060) +- **(complete)** support command value hints by [@jdx](https://github.com/jdx) in [#1081](https://github.com/jdx/usage/pull/1081) +- **(complete)** add shell quoting filter by [@jdx](https://github.com/jdx) in [#1114](https://github.com/jdx/usage/pull/1114) +- **(complete)** support full value hint vocabulary by [@jdx](https://github.com/jdx) in [#1119](https://github.com/jdx/usage/pull/1119) +- **(complete)** expand partial path segments by [@jdx](https://github.com/jdx) in [#1128](https://github.com/jdx/usage/pull/1128) +- **(complete)** support shell alias registration by [@jdx](https://github.com/jdx) in [#1158](https://github.com/jdx/usage/pull/1158) +- **(complete)** **breaking** remove the vendored bash-completion copy by [@jdx](https://github.com/jdx) in [#1176](https://github.com/jdx/usage/pull/1176) +- **(complete)** install a completion script where its shell looks for it by [@jdx](https://github.com/jdx) in [#1188](https://github.com/jdx/usage/pull/1188) +- **(config)** read config files as a layer by [@jdx](https://github.com/jdx) in [#856](https://github.com/jdx/usage/pull/856) +- **(config)** explain why a setting has the value it has by [@jdx](https://github.com/jdx) in [#857](https://github.com/jdx/usage/pull/857) +- **(config)** read a resolution as the types a struct holds by [@jdx](https://github.com/jdx) in [#862](https://github.com/jdx/usage/pull/862) +- **(config)** generate the settings registry from the spec by [@jdx](https://github.com/jdx) in [#864](https://github.com/jdx/usage/pull/864) +- **(config)** generate the settings struct a CLI reads by [@jdx](https://github.com/jdx) in [#865](https://github.com/jdx/usage/pull/865) +- **(config)** hold a value to the choices its setting declares by [@jdx](https://github.com/jdx) in [#868](https://github.com/jdx/usage/pull/868) +- **(config)** carry a setting's choices into the generated registry by [@jdx](https://github.com/jdx) in [#869](https://github.com/jdx/usage/pull/869) +- **(config)** say what sort of thing each warning is by [@jdx](https://github.com/jdx) in [#873](https://github.com/jdx/usage/pull/873) +- **(config)** carry the flags a setting declares into its registry by [@jdx](https://github.com/jdx) in [#880](https://github.com/jdx/usage/pull/880) +- **(config)** read the command line as a layer by [@jdx](https://github.com/jdx) in [#881](https://github.com/jdx/usage/pull/881) +- **(config)** compare the flags a spec declares with the flags a CLI binds by [@jdx](https://github.com/jdx) in [#884](https://github.com/jdx/usage/pull/884) +- **(config)** support optional props and aliases by [@jdx](https://github.com/jdx) in [#1134](https://github.com/jdx/usage/pull/1134) +- **(config)** read YAML config files by [@jdx](https://github.com/jdx) in [#1192](https://github.com/jdx/usage/pull/1192) +- **(config)** ask for provenance by key, like a value by [@jdx](https://github.com/jdx) in [#1195](https://github.com/jdx/usage/pull/1195) +- **(config)** a read that keeps every setting that reads by [@jdx](https://github.com/jdx) in [#1196](https://github.com/jdx/usage/pull/1196) +- **(config)** close Config derive and spec authoring gaps by [@jdx](https://github.com/jdx) in [#1202](https://github.com/jdx/usage/pull/1202) +- **(config)** gate deprecated settings by explicit CLI version by [@jdx](https://github.com/jdx) in [#1201](https://github.com/jdx/usage/pull/1201) +- **(derive)** compile a struct into parse tables and a spec by [@jdx](https://github.com/jdx) in [#803](https://github.com/jdx/usage/pull/803) +- **(derive)** compile subcommands from an enum by [@jdx](https://github.com/jdx) in [#816](https://github.com/jdx/usage/pull/816) +- **(derive)** check what a parse cannot decide on its own by [@jdx](https://github.com/jdx) in [#817](https://github.com/jdx/usage/pull/817) +- **(derive)** nest commands to any depth by [@jdx](https://github.com/jdx) in [#818](https://github.com/jdx/usage/pull/818) +- **(derive)** declare which flags conflict and which require each other by [@jdx](https://github.com/jdx) in [#820](https://github.com/jdx/usage/pull/820) +- **(derive)** let a flag displace another, the last one given winning by [@jdx](https://github.com/jdx) in [#821](https://github.com/jdx/usage/pull/821) +- **(derive)** let a command answer to more than one name by [@jdx](https://github.com/jdx) in [#827](https://github.com/jdx/usage/pull/827) +- **(derive)** let a variant hold its command in a `Box` by [@jdx](https://github.com/jdx) in [#828](https://github.com/jdx/usage/pull/828) +- **(derive)** let a field be the type it means by [@jdx](https://github.com/jdx) in [#833](https://github.com/jdx/usage/pull/833) +- **(derive)** declare the words a value may be by [@jdx](https://github.com/jdx) in [#838](https://github.com/jdx/usage/pull/838) +- **(derive)** hold the bytes a word arrived as by [@jdx](https://github.com/jdx) in [#841](https://github.com/jdx/usage/pull/841) +- **(derive)** declare the properties mise patches in by hand by [@jdx](https://github.com/jdx) in [#842](https://github.com/jdx/usage/pull/842) +- **(derive)** accept a value the OS accepts and UTF-8 does not by [@jdx](https://github.com/jdx) in [#844](https://github.com/jdx/usage/pull/844) +- **(derive)** share declarations between commands with flatten by [@jdx](https://github.com/jdx) in [#852](https://github.com/jdx/usage/pull/852) +- **(derive)** say three things about a CLI the spec could and the derive could not by [@jdx](https://github.com/jdx) in [#853](https://github.com/jdx/usage/pull/853) +- **(derive)** answer a completion request from the binary itself by [@jdx](https://github.com/jdx) in [#885](https://github.com/jdx/usage/pull/885) +- **(derive)** bind a flag to a setting, from what the parser saw by [@jdx](https://github.com/jdx) in [#889](https://github.com/jdx/usage/pull/889) +- **(derive)** a setting can be declared wherever a flag is by [@jdx](https://github.com/jdx) in [#896](https://github.com/jdx/usage/pull/896) +- **(derive)** let a field name the function that completes it by [@jdx](https://github.com/jdx) in [#892](https://github.com/jdx/usage/pull/892) +- **(derive)** say how an argument relates to `--`, all four ways by [@jdx](https://github.com/jdx) in [#900](https://github.com/jdx/usage/pull/900) +- **(derive)** a default a collecting field can hold by [@jdx](https://github.com/jdx) in [#902](https://github.com/jdx/usage/pull/902) +- **(derive)** say what a command does to the world by [@jdx](https://github.com/jdx) in [#905](https://github.com/jdx/usage/pull/905) +- **(derive)** name a value the way clap names it, and say which usage can read the spec by [@jdx](https://github.com/jdx) in [#907](https://github.com/jdx/usage/pull/907) +- **(derive)** let `parse()` answer a failure the way a program does by [@jdx](https://github.com/jdx) in [#910](https://github.com/jdx/usage/pull/910) +- **(derive)** read the package's version, and be called what the binary is called by [@jdx](https://github.com/jdx) in [#917](https://github.com/jdx/usage/pull/917) +- **(derive)** a command that takes nothing can be written that way by [@jdx](https://github.com/jdx) in [#923](https://github.com/jdx/usage/pull/923) +- **(derive)** say that a command cannot be run alone, which it knew and did not write by [@jdx](https://github.com/jdx) in [#937](https://github.com/jdx/usage/pull/937) +- **(derive)** keep command aliases on their args by [@jdx](https://github.com/jdx) in [#946](https://github.com/jdx/usage/pull/946) +- **(derive)** preserve verbatim doc comments by [@jdx](https://github.com/jdx) in [#949](https://github.com/jdx/usage/pull/949) +- **(derive)** support path value hints by [@jdx](https://github.com/jdx) in [#951](https://github.com/jdx/usage/pull/951) +- **(derive)** declare a group where the flags are declared by [@jdx](https://github.com/jdx) in [#934](https://github.com/jdx/usage/pull/934) +- **(derive)** add value-conditional requirements by [@jdx](https://github.com/jdx) in [#1002](https://github.com/jdx/usage/pull/1002) +- **(derive)** add skip for fields that are not arguments by [@jdx](https://github.com/jdx) in [#1009](https://github.com/jdx/usage/pull/1009) +- **(derive)** support inline subcommand fields by [@jdx](https://github.com/jdx) in [#1055](https://github.com/jdx/usage/pull/1055) +- **(derive)** accept runtime metadata expressions by [@jdx](https://github.com/jdx) in [#1056](https://github.com/jdx/usage/pull/1056) +- **(derive)** accept clap value attributes by [@jdx](https://github.com/jdx) in [#1057](https://github.com/jdx/usage/pull/1057) +- **(derive)** parse full argv with program name by [@jdx](https://github.com/jdx) in [#1063](https://github.com/jdx/usage/pull/1063) +- **(derive)** support clap no binary name by [@jdx](https://github.com/jdx) in [#1064](https://github.com/jdx/usage/pull/1064) +- **(derive)** support unit command structs by [@jdx](https://github.com/jdx) in [#1071](https://github.com/jdx/usage/pull/1071) +- **(derive)** reuse args across commands by [@jdx](https://github.com/jdx) in [#1076](https://github.com/jdx/usage/pull/1076) +- **(derive)** support runtime program identity by [@jdx](https://github.com/jdx) in [#1078](https://github.com/jdx/usage/pull/1078) +- **(derive)** preserve value enum metadata by [@jdx](https://github.com/jdx) in [#1079](https://github.com/jdx/usage/pull/1079) +- **(derive)** accept clap field spellings by [@jdx](https://github.com/jdx) in [#1086](https://github.com/jdx/usage/pull/1086) +- **(derive)** preserve hidden flag aliases by [@jdx](https://github.com/jdx) in [#1087](https://github.com/jdx/usage/pull/1087) +- **(derive)** resolve relationships through flatten by [@jdx](https://github.com/jdx) in [#1088](https://github.com/jdx/usage/pull/1088) +- **(derive)** support flattened overrides by [@jdx](https://github.com/jdx) in [#1089](https://github.com/jdx/usage/pull/1089) +- **(derive)** preserve flattened help headings by [@jdx](https://github.com/jdx) in [#1090](https://github.com/jdx/usage/pull/1090) +- **(derive)** support clap casing policies by [@jdx](https://github.com/jdx) in [#1094](https://github.com/jdx/usage/pull/1094) +- **(derive)** bind value enums directly by [@jdx](https://github.com/jdx) in [#1110](https://github.com/jdx/usage/pull/1110) +- **(derive)** accept portable clap field spellings by [@jdx](https://github.com/jdx) in [#1135](https://github.com/jdx/usage/pull/1135) +- **(derive)** inherit clap command metadata by [@jdx](https://github.com/jdx) in [#1136](https://github.com/jdx/usage/pull/1136) +- **(derive)** support clap implicit groups by [@jdx](https://github.com/jdx) in [#1137](https://github.com/jdx/usage/pull/1137) +- **(derive)** generate command dispatch by [@jdx](https://github.com/jdx) in [#1182](https://github.com/jdx/usage/pull/1182) +- **(derive)** add usage::Config derive for settings declared in code by [@jdx](https://github.com/jdx) in [#1180](https://github.com/jdx/usage/pull/1180) +- **(derive)** close remaining PLAN gaps for 6.x by [@jdx](https://github.com/jdx) in [#1197](https://github.com/jdx/usage/pull/1197) +- **(docs)** support granular help visibility by [@jdx](https://github.com/jdx) in [#1107](https://github.com/jdx/usage/pull/1107) +- **(docs)** customize subcommand presentation by [@jdx](https://github.com/jdx) in [#1108](https://github.com/jdx/usage/pull/1108) +- **(docs)** color process-facing help by [@jdx](https://github.com/jdx) in [#1111](https://github.com/jdx/usage/pull/1111) +- **(docs)** support help width controls by [@jdx](https://github.com/jdx) in [#1113](https://github.com/jdx/usage/pull/1113) +- **(docs)** support next-line help layout by [@jdx](https://github.com/jdx) in [#1117](https://github.com/jdx/usage/pull/1117) +- **(docs)** support flattened subcommand help by [@jdx](https://github.com/jdx) in [#1118](https://github.com/jdx/usage/pull/1118) +- **(docs)** support explicit display order by [@jdx](https://github.com/jdx) in [#1121](https://github.com/jdx/usage/pull/1121) +- **(docs)** group subcommands under help headings by [@jdx](https://github.com/jdx) in [#1153](https://github.com/jdx/usage/pull/1153) +- **(docs)** add recursive help by [@jdx](https://github.com/jdx) in [#1132](https://github.com/jdx/usage/pull/1132) +- **(generate)** add json-schema for a CLI's config file by [@jdx](https://github.com/jdx) in [#839](https://github.com/jdx/usage/pull/839) +- **(go)** emit Go parse tables from a spec, which is what Go has instead of a derive by [@jdx](https://github.com/jdx) in [#931](https://github.com/jdx/usage/pull/931) +- **(go)** emit the cold table too, so generated code can apply the rules by [@jdx](https://github.com/jdx) in [#959](https://github.com/jdx/usage/pull/959) +- **(go)** render the usage line, from a third table that costs nothing unused by [@jdx](https://github.com/jdx) in [#964](https://github.com/jdx/usage/pull/964) +- **(go)** render a failure as something a person can act on by [@jdx](https://github.com/jdx) in [#977](https://github.com/jdx/usage/pull/977) +- **(go)** generate a struct per command, and the Parse that fills them by [@jdx](https://github.com/jdx) in [#990](https://github.com/jdx/usage/pull/990) +- **(go)** answer the completion request a shell sends by [@jdx](https://github.com/jdx) in [#1005](https://github.com/jdx/usage/pull/1005) +- **(go)** enforce value-conditional requirements by [@jdx](https://github.com/jdx) in [#1003](https://github.com/jdx/usage/pull/1003) +- **(help)** line the flag column up, and give the short page a column at all by [@jdx](https://github.com/jdx) in [#912](https://github.com/jdx/usage/pull/912) +- **(help)** list the flags a command inherits by [@jdx](https://github.com/jdx) in [#913](https://github.com/jdx/usage/pull/913) +- **(help)** list `--help` and `--version`, which every page answers by [@jdx](https://github.com/jdx) in [#914](https://github.com/jdx/usage/pull/914) +- **(lib)** add usage-rs facade by [@jdx](https://github.com/jdx) in [#963](https://github.com/jdx/usage/pull/963) +- **(lib)** ship usage-rs as the one-crate rust default by [@jdx](https://github.com/jdx) in [#1041](https://github.com/jdx/usage/pull/1041) +- **(parse)** support inferred prefixes by [@jdx](https://github.com/jdx) in [#1080](https://github.com/jdx/usage/pull/1080) +- **(parse)** support arg required else help by [@jdx](https://github.com/jdx) in [#1093](https://github.com/jdx/usage/pull/1093) +- **(parse)** add narrow token boundary controls by [@jdx](https://github.com/jdx) in [#1097](https://github.com/jdx/usage/pull/1097) +- **(parse)** preserve trailing delimiters by [@jdx](https://github.com/jdx) in [#1098](https://github.com/jdx/usage/pull/1098) +- **(parse)** add scalar repeat policy by [@jdx](https://github.com/jdx) in [#1102](https://github.com/jdx/usage/pull/1102) +- **(parse)** add subcommand requirement policy by [@jdx](https://github.com/jdx) in [#1103](https://github.com/jdx/usage/pull/1103) +- **(parse)** add argument subcommand conflicts by [@jdx](https://github.com/jdx) in [#1104](https://github.com/jdx/usage/pull/1104) +- **(parse)** add subcommand value precedence by [@jdx](https://github.com/jdx) in [#1105](https://github.com/jdx/usage/pull/1105) +- **(parse)** support missing optional positionals by [@jdx](https://github.com/jdx) in [#1106](https://github.com/jdx/usage/pull/1106) +- **(parse)** support optional flag values by [@jdx](https://github.com/jdx) in [#1109](https://github.com/jdx/usage/pull/1109) +- **(parse)** support custom help and version actions by [@jdx](https://github.com/jdx) in [#1123](https://github.com/jdx/usage/pull/1123) +- **(parse)** accept explicit boolean values by [@jdx](https://github.com/jdx) in [#1124](https://github.com/jdx/usage/pull/1124) +- **(parse)** support non-strict choices by [@jdx](https://github.com/jdx) in [#1127](https://github.com/jdx/usage/pull/1127) +- **(parse)** support ordered environment fallbacks by [@jdx](https://github.com/jdx) in [#1130](https://github.com/jdx/usage/pull/1130) +- **(parse)** warn at runtime when a deprecated declaration is used by [@jdx](https://github.com/jdx) in [#1186](https://github.com/jdx/usage/pull/1186) +- **(spec)** support flag relationships by [@jdx](https://github.com/jdx) in [#793](https://github.com/jdx/usage/pull/793) +- **(spec)** add help_heading, and render it by [@jdx](https://github.com/jdx) in [#802](https://github.com/jdx/usage/pull/802) +- **(spec)** allow a mount at the top level by [@jdx](https://github.com/jdx) in [#806](https://github.com/jdx/usage/pull/806) +- **(spec)** make unknown flags configurable, and keep them as values by [@jdx](https://github.com/jdx) in [#810](https://github.com/jdx/usage/pull/810) +- **(spec)** add `conflicts` to flags by [@jdx](https://github.com/jdx) in [#819](https://github.com/jdx/usage/pull/819) +- **(spec)** say that one flag needs another, which nothing here could by [@jdx](https://github.com/jdx) in [#925](https://github.com/jdx/usage/pull/925) +- **(spec)** **breaking** a group, for the rule that no single flag can state by [@jdx](https://github.com/jdx) in [#927](https://github.com/jdx/usage/pull/927) +- **(spec)** a flag that has to be given on its own by [@jdx](https://github.com/jdx) in [#941](https://github.com/jdx/usage/pull/941) +- **(spec)** split a value the way clap splits one by [@jdx](https://github.com/jdx) in [#961](https://github.com/jdx/usage/pull/961) +- **(spec)** add value-conditional requirements by [@jdx](https://github.com/jdx) in [#1001](https://github.com/jdx/usage/pull/1001) +- **(spec)** refuse a detached value when require_equals is set by [@jdx](https://github.com/jdx) in [#1013](https://github.com/jdx/usage/pull/1013) +- **(spec)** bind a value when a flag is given with none by [@jdx](https://github.com/jdx) in [#1015](https://github.com/jdx/usage/pull/1015) +- **(spec)** forward unmatched words as an external subcommand by [@jdx](https://github.com/jdx) in [#1021](https://github.com/jdx/usage/pull/1021) +- **(spec)** bind a default when another flag is given by [@jdx](https://github.com/jdx) in [#1023](https://github.com/jdx/usage/pull/1023) +- **(spec)** add portable expression validation by [@jdx](https://github.com/jdx) in [#1037](https://github.com/jdx/usage/pull/1037) +- **(spec)** add borrowed metadata overlays by [@jdx](https://github.com/jdx) in [#1059](https://github.com/jdx/usage/pull/1059) +- **(spec)** omit versions from metadata views by [@jdx](https://github.com/jdx) in [#1066](https://github.com/jdx/usage/pull/1066) +- **(spec)** support positional conflicts and groups by [@jdx](https://github.com/jdx) in [#1085](https://github.com/jdx/usage/pull/1085) +- **(spec)** add fixed arity value names by [@jdx](https://github.com/jdx) in [#1099](https://github.com/jdx/usage/pull/1099) +- **(spec)** complete relationship families by [@jdx](https://github.com/jdx) in [#1100](https://github.com/jdx/usage/pull/1100) +- **(spec)** expose package metadata by [@jdx](https://github.com/jdx) in [#1116](https://github.com/jdx/usage/pull/1116) +- **(spec)** add deprecation milestones by [@jdx](https://github.com/jdx) in [#1129](https://github.com/jdx/usage/pull/1129) +- **(spec)** add executable views by [@jdx](https://github.com/jdx) in [#1143](https://github.com/jdx/usage/pull/1143) +- **(spec)** add deprecated config environment aliases by [@jdx](https://github.com/jdx) in [#1159](https://github.com/jdx/usage/pull/1159) +- **(spec)** declare source_code_link_template on the derive by [@jdx](https://github.com/jdx) in [#1184](https://github.com/jdx/usage/pull/1184) +- **(spec)** answer __usage_spec__ from a binary's own tables by [@jdx](https://github.com/jdx) in [#1183](https://github.com/jdx/usage/pull/1183) +- **(spec)** reusable flag declarations with flagset and use by [@jdx](https://github.com/jdx) in [#1170](https://github.com/jdx/usage/pull/1170) +- **(spec)** **breaking** lower the derive's flatten into a flagset by [@jdx](https://github.com/jdx) in [#1172](https://github.com/jdx/usage/pull/1172) +- **(test)** a test harness for an adopter's own suite by [@jdx](https://github.com/jdx) in [#1181](https://github.com/jdx/usage/pull/1181) + +### ๐Ÿ› Bug Fixes + +- **(argv)** stop a repeatable flag from eating a positional by [@jdx](https://github.com/jdx) in [#799](https://github.com/jdx/usage/pull/799) +- **(argv)** inherit `unknown_flags`, which reached one command out of a tree by [@jdx](https://github.com/jdx) in [#939](https://github.com/jdx/usage/pull/939) +- **(argv)** reject duplicate flags by [@jdx](https://github.com/jdx) in [#945](https://github.com/jdx/usage/pull/945) +- **(argv)** show choices when a subcommand is required by [@jdx](https://github.com/jdx) in [#947](https://github.com/jdx/usage/pull/947) +- **(argv)** a bare `-` binds where it was typed by [@jdx](https://github.com/jdx) in [#986](https://github.com/jdx/usage/pull/986) +- **(argv)** put zsh's magic comment first, and print fish's candidates as data by [@jdx](https://github.com/jdx) in [#1033](https://github.com/jdx/usage/pull/1033) +- **(ci)** unblock releases by cutting usage-derive's dev-dependency by [@jdx](https://github.com/jdx) in [#811](https://github.com/jdx/usage/pull/811) +- **(ci)** check the version the crates promise, and promise one that is true by [@jdx](https://github.com/jdx) in [#918](https://github.com/jdx/usage/pull/918) +- **(clap)** say what clap would do with an unknown flag by [@jdx](https://github.com/jdx) in [#899](https://github.com/jdx/usage/pull/899) +- **(cli)** recognize about as root command help by [@jdx](https://github.com/jdx) in [#794](https://github.com/jdx/usage/pull/794) +- **(complete)** resolve config keys through aliases and renames by [@jdx](https://github.com/jdx) in [#1169](https://github.com/jdx/usage/pull/1169) +- **(config)** accept case-insensitive boolean words by [@jdx](https://github.com/jdx) in [#1207](https://github.com/jdx/usage/pull/1207) +- **(derive)** let a `--`-only argument follow a variadic by [@jdx](https://github.com/jdx) in [#823](https://github.com/jdx/usage/pull/823) +- **(derive)** three more descriptions a spec keeps and the derive lost by [@jdx](https://github.com/jdx) in [#861](https://github.com/jdx/usage/pull/861) +- **(derive)** name the mistake when `settings` has nothing to collect by [@jdx](https://github.com/jdx) in [#904](https://github.com/jdx/usage/pull/904) +- **(derive)** emit the tables beside the user's types, not in a module above them by [@jdx](https://github.com/jdx) in [#938](https://github.com/jdx/usage/pull/938) +- **(derive)** a global flag may be given once per command, not once per line by [@jdx](https://github.com/jdx) in [#991](https://github.com/jdx/usage/pull/991) +- **(derive)** separate value metadata from parsing by [@jdx](https://github.com/jdx) in [#1054](https://github.com/jdx/usage/pull/1054) +- **(derive)** make defaulted fields optional in metadata by [@jdx](https://github.com/jdx) in [#1065](https://github.com/jdx/usage/pull/1065) +- **(derive)** isolate process exit from adopters by [@jdx](https://github.com/jdx) in [#1139](https://github.com/jdx/usage/pull/1139) +- **(derive)** propagate redeclared global values by [@jdx](https://github.com/jdx) in [#1140](https://github.com/jdx/usage/pull/1140) +- **(derive)** preserve set-false actions by [@jdx](https://github.com/jdx) in [#1156](https://github.com/jdx/usage/pull/1156) +- **(derive)** name the count type in standing presence checks by [@jdx](https://github.com/jdx) in [#1205](https://github.com/jdx/usage/pull/1205) +- **(docs)** link multi-word commands to their real source files by [@jdx](https://github.com/jdx) in [#845](https://github.com/jdx/usage/pull/845) +- **(docs)** link every command to the file that implements it by [@jdx](https://github.com/jdx) in [#846](https://github.com/jdx/usage/pull/846) +- **(docs)** keep hidden entries out of help by [@jdx](https://github.com/jdx) in [#859](https://github.com/jdx/usage/pull/859) +- **(docs)** list visible flag aliases by [@jdx](https://github.com/jdx) in [#1112](https://github.com/jdx/usage/pull/1112) +- **(help)** a command's page should say what that command does by [@jdx](https://github.com/jdx) in [#911](https://github.com/jdx/usage/pull/911) +- **(help)** a declared name is not a short form, and blank help is no help by [@jdx](https://github.com/jdx) in [#916](https://github.com/jdx/usage/pull/916) +- **(help)** render the page for the mount the words reached by [@jdx](https://github.com/jdx) in [#928](https://github.com/jdx/usage/pull/928) +- **(help)** a description ending in a break adds no blank line by [@jdx](https://github.com/jdx) in [#970](https://github.com/jdx/usage/pull/970) +- **(lib)** validate every variadic fallback by [@jdx](https://github.com/jdx) in [#1049](https://github.com/jdx/usage/pull/1049) +- **(parse)** keep every `--` after the first by [@jdx](https://github.com/jdx) in [#809](https://github.com/jdx/usage/pull/809) +- **(parse)** stop losing a flag that is missing its value by [@jdx](https://github.com/jdx) in [#807](https://github.com/jdx/usage/pull/807) +- **(parse)** answer the five vectors the reference implementation was failing by [@jdx](https://github.com/jdx) in [#930](https://github.com/jdx/usage/pull/930) +- **(parse)** **breaking** a command that needs a subcommand says so by [@jdx](https://github.com/jdx) in [#992](https://github.com/jdx/usage/pull/992) +- **(parse)** keep optional validation lint-clean by [@jdx](https://github.com/jdx) in [#1141](https://github.com/jdx/usage/pull/1141) +- **(parse)** honor separator after automatic args by [@jdx](https://github.com/jdx) in [#1164](https://github.com/jdx/usage/pull/1164) +- **(parse)** let a bundle contain a supplied short by [@jdx](https://github.com/jdx) in [#1175](https://github.com/jdx/usage/pull/1175) +- **(spec)** make the config block survive being written out by [@jdx](https://github.com/jdx) in [#832](https://github.com/jdx/usage/pull/832) +- **(spec)** apply default_subcommand only at the root by [@jdx](https://github.com/jdx) in [#850](https://github.com/jdx/usage/pull/850) +- **(spec)** split a clap default by the delimiter clap splits it by by [@jdx](https://github.com/jdx) in [#901](https://github.com/jdx/usage/pull/901) +- **(spec)** rank a subcommand name above another command's alias by [@jdx](https://github.com/jdx) in [#967](https://github.com/jdx/usage/pull/967) +- **(spec)** preserve clap value count bounds by [@jdx](https://github.com/jdx) in [#1032](https://github.com/jdx/usage/pull/1032) +- **(spec)** deduplicate derived completers by [@jdx](https://github.com/jdx) in [#1072](https://github.com/jdx/usage/pull/1072) +- **(spec)** canonicalize derived kdl by [@jdx](https://github.com/jdx) in [#1095](https://github.com/jdx/usage/pull/1095) + +### ๐Ÿšœ Refactor + +- **(deps)** **breaking** stop shipping features and crates nobody uses by [@jdx](https://github.com/jdx) in [#1185](https://github.com/jdx/usage/pull/1185) +- **(deps)** drop heck from usage-derive by [@jdx](https://github.com/jdx) in [#1187](https://github.com/jdx/usage/pull/1187) +- **(deps)** take expr-lang without the builtins a spec cannot reach by [@jdx](https://github.com/jdx) in [#1191](https://github.com/jdx/usage/pull/1191) + +### ๐Ÿ“š Documentation + +- **(plan)** tick landed clap gaps and stop quoting vector counts by [@jdx](https://github.com/jdx) in [#1027](https://github.com/jdx/usage/pull/1027) +- correct current Rust limitations by [@jdx](https://github.com/jdx) in [#1029](https://github.com/jdx/usage/pull/1029) +- audit 6.x release documentation by [@jdx](https://github.com/jdx) in [#1084](https://github.com/jdx/usage/pull/1084) +- add third-party license notices by [@jdx](https://github.com/jdx) in [#1174](https://github.com/jdx/usage/pull/1174) + +### โšก Performance + +- **(derive)** fill the partial through &mut instead of returning it by [@jdx](https://github.com/jdx) in [#980](https://github.com/jdx/usage/pull/980) +- **(derive)** hold one subcommand's partial, not every subcommand's by [@jdx](https://github.com/jdx) in [#981](https://github.com/jdx/usage/pull/981) +- **(derive)** drop proc-macro-crate transitive deps by [@jdx](https://github.com/jdx) in [#1042](https://github.com/jdx/usage/pull/1042) + +### ๐Ÿงช Testing + +- **(clap)** preserve choices in external adopter probes by [@jdx](https://github.com/jdx) in [#1157](https://github.com/jdx/usage/pull/1157) +- **(corpus)** pin what completes where the cursor is by [@jdx](https://github.com/jdx) in [#998](https://github.com/jdx/usage/pull/998) +- **(derive)** cover verbatim doc compatibility by [@jdx](https://github.com/jdx) in [#1092](https://github.com/jdx/usage/pull/1092) +- **(docs)** preserve fleet footer spacing by [@jdx](https://github.com/jdx) in [#1142](https://github.com/jdx/usage/pull/1142) +- **(fleet)** refresh typed adopter fixtures by [@jdx](https://github.com/jdx) in [#1115](https://github.com/jdx/usage/pull/1115) +- **(parse)** cover mounted command discovery by [@jdx](https://github.com/jdx) in [#1131](https://github.com/jdx/usage/pull/1131) +- **(parse)** add clap micro-conformance by [@jdx](https://github.com/jdx) in [#1133](https://github.com/jdx/usage/pull/1133) +- **(spec)** import the argv questions clap's suite answers and ours did not by [@jdx](https://github.com/jdx) in [#926](https://github.com/jdx/usage/pull/926) +- **(spec)** verify portable parser settings by [@jdx](https://github.com/jdx) in [#1053](https://github.com/jdx/usage/pull/1053) + +### ๐Ÿ›ก๏ธ Security + +- **(config)** resolve settings from layers, with provenance by [@jdx](https://github.com/jdx) in [#849](https://github.com/jdx/usage/pull/849) +- **(config)** read the environment as a layer by [@jdx](https://github.com/jdx) in [#867](https://github.com/jdx/usage/pull/867) +- **(config)** give a deprecation notice from anywhere along a rename chain by [@jdx](https://github.com/jdx) in [#893](https://github.com/jdx/usage/pull/893) +- **(derive)** keep parsed fields live for lints by [@jdx](https://github.com/jdx) in [#1138](https://github.com/jdx/usage/pull/1138) +- **(docs)** render the config block by [@jdx](https://github.com/jdx) in [#837](https://github.com/jdx/usage/pull/837) +- **(go)** render the page `-h` prints, matching usage-lib on all 211 of mise's by [@jdx](https://github.com/jdx) in [#974](https://github.com/jdx/usage/pull/974) +- **(go)** render `--help` too, matching usage-lib on all 211 of mise's long pages by [@jdx](https://github.com/jdx) in [#975](https://github.com/jdx/usage/pull/975) +- **(parse)** require exact command and flag names by [@jdx](https://github.com/jdx) in [#1096](https://github.com/jdx/usage/pull/1096) +- **(spec)** the config vocabulary by [@jdx](https://github.com/jdx) in [#835](https://github.com/jdx/usage/pull/835) + +### ๐Ÿ” Other Changes + +- **(docs)** remove stale mise spec fixture by [@jdx](https://github.com/jdx) in [#1200](https://github.com/jdx/usage/pull/1200) +- **(perf)** say when the clap ratio slides, and record why the derive is stricter by [@jdx](https://github.com/jdx) in [#996](https://github.com/jdx/usage/pull/996) +- agent/complete files by [@jdx](https://github.com/jdx) in [#883](https://github.com/jdx/usage/pull/883) + +### ๐Ÿ“ฆ๏ธ Dependency Updates + +- update rust crate syn to v3 by [@renovate[bot]](https://github.com/renovate[bot]) in [#808](https://github.com/jdx/usage/pull/808) +- update rust crate toml to v1 by [@renovate[bot]](https://github.com/renovate[bot]) in [#1016](https://github.com/jdx/usage/pull/1016) + ## [5.1.0](https://github.com/jdx/usage/compare/v5.0.0..v5.1.0) - 2026-08-09 ### ๐Ÿš€ Features diff --git a/Cargo.lock b/Cargo.lock index a30dc91bf..30fbd0e07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -247,9 +247,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f7dc094d718f2e1c1559ad110e27eeaae14a5465d3d56dd6dbd793079fbd530" +checksum = "6bb31b46c14244e20ee9984b11bf5c992b91fb6939fea616e3512c8baecdbe5f" dependencies = [ "memchr", "regex-automata", @@ -276,9 +276,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.4.2" +version = "1.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d262e149917187838d5b42777c8253bcb64500067342904e7d429499a6f277e" +checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273" dependencies = [ "find-msvc-tools", "shlex", @@ -489,12 +489,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.24.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88490bf1b990d87eaaa7ac8aa887f629a08e7359765b4911faf63c3763347d23" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" dependencies = [ - "darling_core 0.24.0", - "darling_macro 0.24.0", + "darling_core 0.24.1", + "darling_macro 0.24.1", ] [[package]] @@ -512,9 +512,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.24.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084e274f91c482280130e1e34e0b8d6e66776a060d7b6de7b84289ca778868c4" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" dependencies = [ "ident_case", "proc-macro2", @@ -536,11 +536,11 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.24.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f5792fa0d41cd2325ce0ffa64f0a340eaebd4971a3a0c5e1ffd2cc488a355e" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" dependencies = [ - "darling_core 0.24.0", + "darling_core 0.24.1", "quote", "syn 3.0.3", ] @@ -605,9 +605,9 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "either" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" [[package]] name = "encode_unicode" @@ -706,9 +706,9 @@ checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" [[package]] name = "find-msvc-tools" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b73573e6edcd2af0cdf47bd6cb58f0b3839491263c314eaad1ccf24430e1de" +checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890" [[package]] name = "float-cmp" @@ -727,9 +727,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "futures" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88cf1f829d945f548cf8fec32c61b1f202b6d93b45848602fc02af4b12ad218" +checksum = "9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3" dependencies = [ "futures-channel", "futures-core", @@ -742,9 +742,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" +checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4" dependencies = [ "futures-core", "futures-sink", @@ -752,15 +752,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-executor" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6754879cc9f2c66f88c6e5c35344bb0bdb0708b0352b1201815667c7eabc7458" +checksum = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432" dependencies = [ "futures-core", "futures-task", @@ -769,38 +769,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" +checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed" [[package]] name = "futures-macro" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.3", ] [[package]] name = "futures-sink" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" +checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d" [[package]] name = "futures-task" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" [[package]] name = "futures-util" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-channel", "futures-core", @@ -1508,18 +1508,18 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216e8f773d7923bcba9ceb86a86c93cabb3903a11872fc3f138c49630e50b96d" +checksum = "7e440fb4e4b4147295338efb76001ab9e4efc0e5839df2c47fc5ac2381d365c3" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9283685feec7d69af75fb0e858d5e7378f33fe4fc699383b2916ab9273e03c" +checksum = "92ecd8964f8453721699a1ed72037b0db49ce2f5a5138486ee89bed6f67cdf3a" dependencies = [ "proc-macro2", "quote", @@ -1557,13 +1557,14 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "rmcp" -version = "3.1.2" +version = "3.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8dddc5b1924b9a59fba420166160ca2c4663a4e01803e52eda33070f56d63c8" +checksum = "1a15bc53261a9dc37e105df006e4656c598379a8f9581f8950debb130f27a7cf" dependencies = [ "base64 0.23.1", "chrono", "futures", + "indexmap 2.14.0", "pastey", "pin-project-lite", "rmcp-macros", @@ -1579,11 +1580,11 @@ dependencies = [ [[package]] name = "rmcp-macros" -version = "3.1.2" +version = "3.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6898e24cd16342b59bfa8a53c2c04b9cf62fc8a2cfea57b9c038b09984bfc521" +checksum = "a85d45508e9b4ba024fe996c2638799635d75b6dd0ba8f32ccf08f8026f0c780" dependencies = [ - "darling 0.24.0", + "darling 0.24.1", "proc-macro2", "quote", "serde_json", @@ -1992,9 +1993,9 @@ dependencies = [ [[package]] name = "tera" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "638c0720e7c1f61722366256d369ea46139634e77738735d6d9bb287bbbad35f" +checksum = "a3e9db9fa0629187ae0a53f3278a99d35f74647f0259c633c9504af85bd0d506" dependencies = [ "serde", ] @@ -2244,11 +2245,11 @@ checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "usage-argv" -version = "5.1.0" +version = "6.0.0" [[package]] name = "usage-cli" -version = "5.1.0" +version = "6.0.0" dependencies = [ "assert_cmd", "ctor", @@ -2277,7 +2278,7 @@ dependencies = [ [[package]] name = "usage-config" -version = "5.1.0" +version = "6.0.0" dependencies = [ "serde_json", "toml", @@ -2304,7 +2305,7 @@ dependencies = [ [[package]] name = "usage-derive" -version = "5.1.0" +version = "6.0.0" dependencies = [ "heck", "proc-macro2", @@ -2314,7 +2315,7 @@ dependencies = [ [[package]] name = "usage-lib" -version = "5.1.0" +version = "6.0.0" dependencies = [ "clap", "criterion", @@ -2342,7 +2343,7 @@ dependencies = [ [[package]] name = "usage-rs" -version = "5.1.0" +version = "6.0.0" dependencies = [ "serde", "usage-argv", @@ -2355,14 +2356,14 @@ dependencies = [ [[package]] name = "usage-test" -version = "5.1.0" +version = "6.0.0" dependencies = [ "usage-argv", ] [[package]] name = "usage-validation" -version = "5.1.0" +version = "6.0.0" dependencies = [ "expr-lang", ] @@ -2375,9 +2376,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.24.0" +version = "1.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239" +checksum = "2cefc03fd367c0c6d4305de1b312cf00248c4114f4a0418ce6a6af769e3b0bd9" dependencies = [ "getrandom 0.4.3", "js-sys", diff --git a/Cargo.toml b/Cargo.toml index 3eef60b39..9582a4e20 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,19 +42,19 @@ license = "MIT" [workspace.dependencies] clap_usage = { path = "./clap_usage", version = "5.0.0" } usage-cli = { path = "./cli" } -usage-argv = { path = "./argv", version = "5.1.0" } -usage-config = { path = "./config", version = "5.1.0" } -usage-derive = { path = "./derive", version = "5.1.0" } +usage-argv = { path = "./argv", version = "6.0.0" } +usage-config = { path = "./config", version = "6.0.0" } +usage-derive = { path = "./derive", version = "6.0.0" } # No features, and defaults off. A feature named here is inherited by every member that writes # `workspace = true` and inlines into their published manifests โ€” so `clap` and `validation` # reached members that use neither, one of them an adopter's build script. Defaults # are off rather than absent because cargo *ignores* a member's `default-features = false` unless # the workspace declaration sets it too, and warns that it may become a hard error. Members name # what they need, `docs` included. -usage-lib = { path = "./lib", version = "5.1.0", default-features = false } -usage-rs = { path = "./usage-rs", version = "5.1.0" } -usage-test = { path = "./test", version = "5.1.0" } -usage-validation = { path = "./validation", version = "5.1.0" } +usage-lib = { path = "./lib", version = "6.0.0", default-features = false } +usage-rs = { path = "./usage-rs", version = "6.0.0" } +usage-test = { path = "./test", version = "6.0.0" } +usage-validation = { path = "./validation", version = "6.0.0" } [workspace.metadata.release] allow-branch = ["main"] diff --git a/argv/Cargo.toml b/argv/Cargo.toml index 62ce1c96f..6477b8cad 100644 --- a/argv/Cargo.toml +++ b/argv/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "usage-argv" description = "Zero-allocation argv parser for usage specs" -version = "5.1.0" +version = "6.0.0" edition = "2021" rust-version = "1.91" homepage = { workspace = true } diff --git a/aube-lock.yaml b/aube-lock.yaml index 90b3493ff..d592c09ef 100644 --- a/aube-lock.yaml +++ b/aube-lock.yaml @@ -14,10 +14,8 @@ time: '@withfig/autocomplete@2.692.3': 2025-05-05T17:15:37.900Z '@withfig/eslint-plugin-fig-linter@1.4.1': 2023-02-05T19:39:17.032Z eslint-plugin-compat@4.2.0: 2023-08-28T22:14:26.062Z - eslint@10.8.1: 2026-08-07T20:21:24.770Z postcss@8.5.26: 2026-08-06T08:33:00.043Z semver@7.8.5: 2026-06-19T18:32:48.972Z - typescript@7.0.2: 2026-07-08T15:55:18.431Z vitepress@1.6.4: 2025-08-05T13:40:31.197Z importers: @@ -26,31 +24,31 @@ importers: dependencies: '@typescript-eslint/eslint-plugin': specifier: ^7.0.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.8.1))(eslint@10.8.1) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.9.0))(eslint@10.9.0) '@typescript-eslint/parser': specifier: ^7.0.0 - version: 7.18.0(eslint@10.8.1) + version: 7.18.0(eslint@10.9.0) '@withfig/eslint-plugin-fig-linter': specifier: ^1.4.1 version: 1.4.1 eslint-plugin-compat: specifier: ^4.2.0 - version: 4.2.0(eslint@10.8.1) + version: 4.2.0(eslint@10.9.0) postcss: specifier: ^8 version: 8.5.26 typescript: specifier: '>=4.7.4' - version: 7.0.2 + version: 4.9.5 vitepress: specifier: 1.6.4 version: 1.6.4(postcss@8.5.26) devDependencies: '@fig/eslint-config-autocomplete': specifier: ^2.0.0 - version: 2.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.8.1))(eslint@10.8.1))(@typescript-eslint/parser@7.18.0(eslint@10.8.1))(@withfig/eslint-plugin-fig-linter@1.4.1)(eslint@10.8.1)(eslint-plugin-compat@4.2.0(eslint@10.8.1))(typescript@7.0.2) + version: 2.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.9.0))(eslint@10.9.0))(@typescript-eslint/parser@7.18.0(eslint@10.9.0))(@withfig/eslint-plugin-fig-linter@1.4.1)(eslint@10.9.0)(eslint-plugin-compat@4.2.0(eslint@10.9.0))(typescript@4.9.5) '@tsconfig/node24': - specifier: ^24.0.4 + specifier: ^24.0.5 version: 24.0.5 '@withfig/autocomplete': specifier: ^2.692.3 @@ -62,8 +60,8 @@ importers: specifier: ^1.31.0 version: 1.31.0 eslint: - specifier: ^10.8.1 - version: 10.8.1 + specifier: ^10.9.0 + version: 10.9.0 semver: specifier: ^7.8.5 version: 7.8.5 @@ -447,166 +445,6 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript/typescript-aix-ppc64@7.0.2': - resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} - engines: {node: '>=16.20.0'} - os: - - aix - cpu: - - ppc64 - - '@typescript/typescript-darwin-arm64@7.0.2': - resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} - engines: {node: '>=16.20.0'} - os: - - darwin - cpu: - - arm64 - - '@typescript/typescript-darwin-x64@7.0.2': - resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} - engines: {node: '>=16.20.0'} - os: - - darwin - cpu: - - x64 - - '@typescript/typescript-freebsd-arm64@7.0.2': - resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} - engines: {node: '>=16.20.0'} - os: - - freebsd - cpu: - - arm64 - - '@typescript/typescript-freebsd-x64@7.0.2': - resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} - engines: {node: '>=16.20.0'} - os: - - freebsd - cpu: - - x64 - - '@typescript/typescript-linux-arm64@7.0.2': - resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} - engines: {node: '>=16.20.0'} - os: - - linux - cpu: - - arm64 - - '@typescript/typescript-linux-arm@7.0.2': - resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} - engines: {node: '>=16.20.0'} - os: - - linux - cpu: - - arm - - '@typescript/typescript-linux-loong64@7.0.2': - resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} - engines: {node: '>=16.20.0'} - os: - - linux - cpu: - - loong64 - - '@typescript/typescript-linux-mips64el@7.0.2': - resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} - engines: {node: '>=16.20.0'} - os: - - linux - cpu: - - mips64el - - '@typescript/typescript-linux-ppc64@7.0.2': - resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} - engines: {node: '>=16.20.0'} - os: - - linux - cpu: - - ppc64 - - '@typescript/typescript-linux-riscv64@7.0.2': - resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} - engines: {node: '>=16.20.0'} - os: - - linux - cpu: - - riscv64 - - '@typescript/typescript-linux-s390x@7.0.2': - resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} - engines: {node: '>=16.20.0'} - os: - - linux - cpu: - - s390x - - '@typescript/typescript-linux-x64@7.0.2': - resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} - engines: {node: '>=16.20.0'} - os: - - linux - cpu: - - x64 - - '@typescript/typescript-netbsd-arm64@7.0.2': - resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} - engines: {node: '>=16.20.0'} - os: - - netbsd - cpu: - - arm64 - - '@typescript/typescript-netbsd-x64@7.0.2': - resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} - engines: {node: '>=16.20.0'} - os: - - netbsd - cpu: - - x64 - - '@typescript/typescript-openbsd-arm64@7.0.2': - resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} - engines: {node: '>=16.20.0'} - os: - - openbsd - cpu: - - arm64 - - '@typescript/typescript-openbsd-x64@7.0.2': - resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} - engines: {node: '>=16.20.0'} - os: - - openbsd - cpu: - - x64 - - '@typescript/typescript-sunos-x64@7.0.2': - resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} - engines: {node: '>=16.20.0'} - os: - - sunos - cpu: - - x64 - - '@typescript/typescript-win32-arm64@7.0.2': - resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} - engines: {node: '>=16.20.0'} - os: - - win32 - cpu: - - arm64 - - '@typescript/typescript-win32-x64@7.0.2': - resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} - engines: {node: '>=16.20.0'} - os: - - win32 - cpu: - - x64 - '@ungap/structured-clone@1.3.3': resolution: {integrity: sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==} @@ -893,8 +731,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.8.1: - resolution: {integrity: sha512-wqA7W2jbsC/BnV9Iv1UZpKVFkO1AdNoSmYW8NWG4HNOBbkAMvIqDZ27pI2f07dqn583NcIC44ckjAcOXDL1QbQ==} + eslint@10.9.0: + resolution: {integrity: sha512-5KeEOJZBfEVA47boFiBsf+6MmmJpffM7qEBg4pLla2e4nlKgdKlqCW0oSLOGsT8Wl5uCGJptLV1bkaiShj90Gw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -1306,11 +1144,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@7.0.2: - resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} - engines: {node: '>=16.20.0'} - hasBin: true - unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} @@ -1560,9 +1393,9 @@ snapshots: '@esbuild/linux-x64@0.24.2': {} - '@eslint-community/eslint-utils@4.10.1(eslint@10.8.1)': + '@eslint-community/eslint-utils@4.10.1(eslint@10.9.0)': dependencies: - eslint: 10.8.1 + eslint: 10.9.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -1604,15 +1437,15 @@ snapshots: prettier: 3.9.6 ts-morph: 22.0.0 typescript: 5.9.3 - ? '@fig/eslint-config-autocomplete@2.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.8.1))(eslint@10.8.1))(@typescript-eslint/parser@7.18.0(eslint@10.8.1))(@withfig/eslint-plugin-fig-linter@1.4.1)(eslint@10.8.1)(eslint-plugin-compat@4.2.0(eslint@10.8.1))(typescript@7.0.2)' + ? '@fig/eslint-config-autocomplete@2.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.9.0))(eslint@10.9.0))(@typescript-eslint/parser@7.18.0(eslint@10.9.0))(@withfig/eslint-plugin-fig-linter@1.4.1)(eslint@10.9.0)(eslint-plugin-compat@4.2.0(eslint@10.9.0))(typescript@4.9.5)' : dependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.8.1))(eslint@10.8.1) - '@typescript-eslint/parser': 7.18.0(eslint@10.8.1) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.9.0))(eslint@10.9.0) + '@typescript-eslint/parser': 7.18.0(eslint@10.9.0) '@withfig/eslint-plugin-fig-linter': 1.4.1 - eslint: 10.8.1 - eslint-plugin-compat: 4.2.0(eslint@10.8.1) - typescript: 7.0.2 + eslint: 10.9.0 + eslint-plugin-compat: 4.2.0(eslint@10.9.0) + typescript: 4.9.5 '@humanfs/core@0.19.2': dependencies: @@ -1734,45 +1567,45 @@ snapshots: '@types/web-bluetooth@0.0.21': {} - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.8.1))(eslint@10.8.1)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.9.0))(eslint@10.9.0)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 7.18.0(eslint@10.8.1) + '@typescript-eslint/parser': 7.18.0(eslint@10.9.0) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@10.8.1) - '@typescript-eslint/utils': 7.18.0(eslint@10.8.1) + '@typescript-eslint/type-utils': 7.18.0(eslint@10.9.0) + '@typescript-eslint/utils': 7.18.0(eslint@10.9.0) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 10.8.1 + eslint: 10.9.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@7.0.2) + ts-api-utils: 1.4.3(typescript@4.9.5) - '@typescript-eslint/parser@7.18.0(eslint@10.8.1)': + '@typescript-eslint/parser@7.18.0(eslint@10.9.0)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@7.0.2) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@4.9.5) '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.4.3 - eslint: 10.8.1 + eslint: 10.9.0 '@typescript-eslint/scope-manager@7.18.0': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/type-utils@7.18.0(eslint@10.8.1)': + '@typescript-eslint/type-utils@7.18.0(eslint@10.9.0)': dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@7.0.2) - '@typescript-eslint/utils': 7.18.0(eslint@10.8.1) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@4.9.5) + '@typescript-eslint/utils': 7.18.0(eslint@10.9.0) debug: 4.4.3 - eslint: 10.8.1 - ts-api-utils: 1.4.3(typescript@7.0.2) + eslint: 10.9.0 + ts-api-utils: 1.4.3(typescript@4.9.5) '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@7.0.2)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@4.9.5)': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 @@ -1781,67 +1614,27 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.9 semver: 7.8.5 - ts-api-utils: 1.4.3(typescript@7.0.2) + ts-api-utils: 1.4.3(typescript@4.9.5) - '@typescript-eslint/utils@7.18.0(eslint@10.8.1)': + '@typescript-eslint/utils@7.18.0(eslint@10.9.0)': dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.9.0) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@7.0.2) - eslint: 10.8.1 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@4.9.5) + eslint: 10.9.0 '@typescript-eslint/visitor-keys@7.18.0': dependencies: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript/typescript-aix-ppc64@7.0.2': {} - - '@typescript/typescript-darwin-arm64@7.0.2': {} - - '@typescript/typescript-darwin-x64@7.0.2': {} - - '@typescript/typescript-freebsd-arm64@7.0.2': {} - - '@typescript/typescript-freebsd-x64@7.0.2': {} - - '@typescript/typescript-linux-arm64@7.0.2': {} - - '@typescript/typescript-linux-arm@7.0.2': {} - - '@typescript/typescript-linux-loong64@7.0.2': {} - - '@typescript/typescript-linux-mips64el@7.0.2': {} - - '@typescript/typescript-linux-ppc64@7.0.2': {} - - '@typescript/typescript-linux-riscv64@7.0.2': {} - - '@typescript/typescript-linux-s390x@7.0.2': {} - - '@typescript/typescript-linux-x64@7.0.2': {} - - '@typescript/typescript-netbsd-arm64@7.0.2': {} - - '@typescript/typescript-netbsd-x64@7.0.2': {} - - '@typescript/typescript-openbsd-arm64@7.0.2': {} - - '@typescript/typescript-openbsd-x64@7.0.2': {} - - '@typescript/typescript-sunos-x64@7.0.2': {} - - '@typescript/typescript-win32-arm64@7.0.2': {} - - '@typescript/typescript-win32-x64@7.0.2': {} - '@ungap/structured-clone@1.3.3': {} - '@vitejs/plugin-vue@5.2.4(vite@5.4.21)(vue@3.5.41(typescript@7.0.2))': + '@vitejs/plugin-vue@5.2.4(vite@5.4.21)(vue@3.5.41(typescript@4.9.5))': dependencies: vite: 5.4.21 - vue: 3.5.41(typescript@7.0.2) + vue: 3.5.41(typescript@4.9.5) '@vue/compiler-core@3.5.41': dependencies: @@ -1915,25 +1708,25 @@ snapshots: '@vue/shared@3.5.41': {} - '@vueuse/core@12.8.2(typescript@7.0.2)': + '@vueuse/core@12.8.2(typescript@4.9.5)': dependencies: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 12.8.2 - '@vueuse/shared': 12.8.2(typescript@7.0.2) - vue: 3.5.41(typescript@7.0.2) + '@vueuse/shared': 12.8.2(typescript@4.9.5) + vue: 3.5.41(typescript@4.9.5) '@vueuse/integrations@12.8.2(focus-trap@7.8.0)': dependencies: - '@vueuse/core': 12.8.2(typescript@7.0.2) - '@vueuse/shared': 12.8.2(typescript@7.0.2) + '@vueuse/core': 12.8.2(typescript@4.9.5) + '@vueuse/shared': 12.8.2(typescript@4.9.5) focus-trap: 7.8.0 - vue: 3.5.41(typescript@7.0.2) + vue: 3.5.41(typescript@4.9.5) '@vueuse/metadata@12.8.2': {} - '@vueuse/shared@12.8.2(typescript@7.0.2)': + '@vueuse/shared@12.8.2(typescript@4.9.5)': dependencies: - vue: 3.5.41(typescript@7.0.2) + vue: 3.5.41(typescript@4.9.5) '@withfig/autocomplete-tools@2.11.0(esbuild@0.24.2)': dependencies: @@ -2105,13 +1898,13 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-plugin-compat@4.2.0(eslint@10.8.1): + eslint-plugin-compat@4.2.0(eslint@10.9.0): dependencies: '@mdn/browser-compat-data': 5.7.6 ast-metadata-inferer: 0.8.1 browserslist: 4.28.8 caniuse-lite: 1.0.30001809 - eslint: 10.8.1 + eslint: 10.9.0 find-up: 5.0.0 lodash.memoize: 4.1.2 semver: 7.8.5 @@ -2127,9 +1920,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.8.1: + eslint@10.9.0: dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.1) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.9.0) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.7.0 @@ -2521,9 +2314,9 @@ snapshots: trim-lines@3.0.1: {} - ts-api-utils@1.4.3(typescript@7.0.2): + ts-api-utils@1.4.3(typescript@4.9.5): dependencies: - typescript: 7.0.2 + typescript: 4.9.5 ts-morph@22.0.0: dependencies: @@ -2538,29 +2331,6 @@ snapshots: typescript@5.9.3: {} - typescript@7.0.2: - optionalDependencies: - '@typescript/typescript-aix-ppc64': 7.0.2 - '@typescript/typescript-darwin-arm64': 7.0.2 - '@typescript/typescript-darwin-x64': 7.0.2 - '@typescript/typescript-freebsd-arm64': 7.0.2 - '@typescript/typescript-freebsd-x64': 7.0.2 - '@typescript/typescript-linux-arm': 7.0.2 - '@typescript/typescript-linux-arm64': 7.0.2 - '@typescript/typescript-linux-loong64': 7.0.2 - '@typescript/typescript-linux-mips64el': 7.0.2 - '@typescript/typescript-linux-ppc64': 7.0.2 - '@typescript/typescript-linux-riscv64': 7.0.2 - '@typescript/typescript-linux-s390x': 7.0.2 - '@typescript/typescript-linux-x64': 7.0.2 - '@typescript/typescript-netbsd-arm64': 7.0.2 - '@typescript/typescript-netbsd-x64': 7.0.2 - '@typescript/typescript-openbsd-arm64': 7.0.2 - '@typescript/typescript-openbsd-x64': 7.0.2 - '@typescript/typescript-sunos-x64': 7.0.2 - '@typescript/typescript-win32-arm64': 7.0.2 - '@typescript/typescript-win32-x64': 7.0.2 - unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -2619,10 +2389,10 @@ snapshots: '@shikijs/transformers': 2.5.0 '@shikijs/types': 2.5.0 '@types/markdown-it': 14.2.0 - '@vitejs/plugin-vue': 5.2.4(vite@5.4.21)(vue@3.5.41(typescript@7.0.2)) + '@vitejs/plugin-vue': 5.2.4(vite@5.4.21)(vue@3.5.41(typescript@4.9.5)) '@vue/devtools-api': 7.7.10 '@vue/shared': 3.5.41 - '@vueuse/core': 12.8.2(typescript@7.0.2) + '@vueuse/core': 12.8.2(typescript@4.9.5) '@vueuse/integrations': 12.8.2(focus-trap@7.8.0) focus-trap: 7.8.0 mark.js: 8.11.1 @@ -2630,16 +2400,16 @@ snapshots: postcss: 8.5.26 shiki: 2.5.0 vite: 5.4.21 - vue: 3.5.41(typescript@7.0.2) + vue: 3.5.41(typescript@4.9.5) - vue@3.5.41(typescript@7.0.2): + vue@3.5.41(typescript@4.9.5): dependencies: '@vue/compiler-dom': 3.5.41 '@vue/compiler-sfc': 3.5.41 '@vue/runtime-dom': 3.5.41 '@vue/server-renderer': 3.5.41 '@vue/shared': 3.5.41 - typescript: 7.0.2 + typescript: 4.9.5 which@2.0.2: dependencies: diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 59a596e15..464da67c1 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -2,7 +2,7 @@ name = "usage-cli" edition = "2021" rust-version = "1.95" -version = "5.1.0" +version = "6.0.0" description = "CLI for working with usage-based CLIs" license = { workspace = true } authors = { workspace = true } diff --git a/cli/usage.usage.kdl b/cli/usage.usage.kdl index 0221202c7..0e5985dc1 100644 --- a/cli/usage.usage.kdl +++ b/cli/usage.usage.kdl @@ -2,7 +2,7 @@ min_usage_version "4.0" name usage bin usage -version "5.1.0" +version "6.0.0" repository "https://github.com/jdx/usage" source_code_link_template "{%- set path = path | replace(from='-', to='_') -%}\n{%- if cmd.subcommands | length > 0 -%}\n{%- set path = path ~ \"/mod.rs\" -%}\n{%- elif path in [\"bash\", \"fish\", \"powershell\", \"zsh\"] -%}\n{%- set path = \"shell.rs\" -%}\n{%- else -%}\n{%- set path = path ~ \".rs\" -%}\n{%- endif -%}\nhttps://github.com/jdx/usage/blob/main/cli/src/cli/{{path}}" about "CLI for working with usage-based CLIs" diff --git a/config/Cargo.toml b/config/Cargo.toml index 76730fd04..9b3743870 100644 --- a/config/Cargo.toml +++ b/config/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "usage-config" description = "Layered configuration resolution for usage specs, with provenance" -version = "5.1.0" +version = "6.0.0" edition = "2021" rust-version = "1.91" homepage = { workspace = true } diff --git a/derive/Cargo.toml b/derive/Cargo.toml index 1318c7484..35806aab7 100644 --- a/derive/Cargo.toml +++ b/derive/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "usage-derive" description = "Derive macro that compiles a CLI definition into parse tables and a usage spec" -version = "5.1.0" +version = "6.0.0" edition = "2021" rust-version = "1.91" homepage = { workspace = true } diff --git a/docs/cli/reference/commands.json b/docs/cli/reference/commands.json index 8fe8c989e..16c131a8d 100644 --- a/docs/cli/reference/commands.json +++ b/docs/cli/reference/commands.json @@ -1757,7 +1757,7 @@ "sources": {}, "files": [] }, - "version": "5.1.0", + "version": "6.0.0", "usage": "Usage: usage \n usage --completions \n usage --usage-spec", "complete": {}, "source_code_link_template": "{%- set path = path | replace(from='-', to='_') -%}\n{%- if cmd.subcommands | length > 0 -%}\n{%- set path = path ~ \"/mod.rs\" -%}\n{%- elif path in [\"bash\", \"fish\", \"powershell\", \"zsh\"] -%}\n{%- set path = \"shell.rs\" -%}\n{%- else -%}\n{%- set path = path ~ \".rs\" -%}\n{%- endif -%}\nhttps://github.com/jdx/usage/blob/main/cli/src/cli/{{path}}", diff --git a/docs/cli/reference/index.md b/docs/cli/reference/index.md index d230312e4..800afb44f 100644 --- a/docs/cli/reference/index.md +++ b/docs/cli/reference/index.md @@ -4,7 +4,7 @@ **Usage**: `usage [--completions ] [--usage-spec] ` -**Version**: 5.1.0 +**Version**: 6.0.0 **Repository**: https://github.com/jdx/usage diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 5f9948e05..16f37fd1d 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "usage-lib" edition = "2021" -version = "5.1.0" +version = "6.0.0" rust-version = "1.95" include = [ "/Cargo.toml", diff --git a/package.json b/package.json index 5556d64d9..e5b90781a 100644 --- a/package.json +++ b/package.json @@ -34,11 +34,11 @@ }, "devDependencies": { "@fig/eslint-config-autocomplete": "^2.0.0", - "@tsconfig/node24": "^24.0.4", + "@tsconfig/node24": "^24.0.5", "@withfig/autocomplete": "^2.692.3", "@withfig/autocomplete-tools": "^2.11.0", "@withfig/autocomplete-types": "^1.31.0", - "eslint": "^10.8.1", + "eslint": "^10.9.0", "semver": "^7.8.5" } } diff --git a/test/Cargo.toml b/test/Cargo.toml index e0654a0af..c7960c0f1 100644 --- a/test/Cargo.toml +++ b/test/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "usage-test" description = "Test helpers for CLIs built with usage" -version = "5.1.0" +version = "6.0.0" edition = "2021" rust-version = "1.91" homepage = { workspace = true } diff --git a/usage-rs/Cargo.toml b/usage-rs/Cargo.toml index 335796b35..09462e1cd 100644 --- a/usage-rs/Cargo.toml +++ b/usage-rs/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "usage-rs" description = "A compiled CLI parser for Rust, built on usage specs" -version = "5.1.0" +version = "6.0.0" edition = "2021" rust-version = "1.91" homepage = { workspace = true } diff --git a/usage-rs/tests/fixtures/runtime-identity/Cargo.lock b/usage-rs/tests/fixtures/runtime-identity/Cargo.lock index 5e6fcf7c0..78cb6ae77 100644 --- a/usage-rs/tests/fixtures/runtime-identity/Cargo.lock +++ b/usage-rs/tests/fixtures/runtime-identity/Cargo.lock @@ -39,11 +39,11 @@ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "usage-argv" -version = "5.1.0" +version = "6.0.0" [[package]] name = "usage-derive" -version = "5.1.0" +version = "6.0.0" dependencies = [ "proc-macro2", "quote", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "usage-rs" -version = "5.1.0" +version = "6.0.0" dependencies = [ "usage-argv", "usage-derive", diff --git a/validation/Cargo.toml b/validation/Cargo.toml index c09153643..509702cd4 100644 --- a/validation/Cargo.toml +++ b/validation/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "usage-validation" description = "Portable expression validation for usage specs" -version = "5.1.0" +version = "6.0.0" edition = "2021" rust-version = "1.91" homepage = { workspace = true }