ITADN
CLIUtils/CLI11

版本发布 5

v2.5.0: Formatterv2.5.0
? · 2025-02-27

## Version 2.5: Help Formatter This version add a new formatter with improved control capabilities and output aligned with standards for help output. It also add a modifier to enable use of non-standard option names. Along with several bug fixes for edge cases in string and config file parsing. - Better help formatter [#866][], this better aligns the help generation with UNIX standard and allows use in help2man. [#1093][] - Add mechanism to allow option groups to be hidden and all options be considered part of the parent for help display [#1039][] - Add a modifier to allow non-standard single flag option names such as `-option`. [#1078][] - Add modifier for subcommands to disable fallthrough which can resolve some issues with positional arguments [#1073][] - Add some polish to config file output removing some unnecessary output and add modifier to control output of default values [#1075][] - Add the ability to specify pair/tuple defaults and improved parsing [#1081][] - Bugfix: Take the configurability of an option name into account when determining naming conflicts [#1049][] - Bugfix: Fix an issue where an extra subcommand header was being printed in the output [#1058][] - Bugfix: Add additional fuzzing tests and fixes for a bug in escape string processing, and resolve inconsistencies in the handing of `{}` between command line parsing and config file parsing. [#1060][] - Bugfix: Improve handling of some ambiguities in vector input processing for config files, specifically in the case of vector of vector inputs. [#1069][] - Bugfix: Fix an issue in the handling of uint8_t enums, and some issues related to single element tuples [#1087][] - Bugfix: Fix an issue with binary strings containing a `\x` [#1097][] - Bugfix: Move the help generation priority so it triggers before config file processing [#1106][] - Bugfix: Fixed an issue where max/min on positionals was not being respected and optional positionals were being ignored [#1108][] - Bugfix: Fix an issue with strings which started and ended with brackets being misinterpreted as vectors. The parsing now has special handling of strings which start with `[[` [#1110][] - Bugfix: Fix some macros for support in C++26 related to wide string parsing [#1113][] - Bugfix: Allow trailing spaces on numeric string conversions [#1115][] - Docs: Update pymod.find_installation to find python in meson.build [#1076][] - Docs: Add example for transform validators [#689][] - Docs: Fix several spelling mistakes [#1101][] - Backend: Update copyright dates to 2025 [#1112][] - Backend: Update CMAKE minimum version to 3.10 [#1084][] [#1039]: https://github.com/CLIUtils/CLI11/pull/1039 [#1049]: https://github.com/CLIUtils/CLI11/pull/1049 [#1058]: https://github.com/CLIUtils/CLI11/pull/1058 [#1060]: https://github.com/CLIUtils/CLI11/pull/1060 [#1069]: https://github.com/CLIUtils/CLI11/pull/1069 [#866]: https://github.com/CLIUtils/CLI11/pull/866 [#1073]: https://github.com/CLIUtils/CLI11/pull/1073 [#1075]: https://github.com/CLIUtils/CLI11/pull/1075 [#689]: https://github.com/CLIUtils/CLI11/pull/689 [#1076]: https://github.com/CLIUtils/CLI11/pull/1076 [#1078]: https://github.com/CLIUtils/CLI11/pull/1078 [#1081]: https://github.com/CLIUtils/CLI11/pull/1081 [#1084]: https://github.com/CLIUtils/CLI11/pull/1084 [#1087]: https://github.com/CLIUtils/CLI11/pull/1087 [#1093]: https://github.com/CLIUtils/CLI11/pull/1093 [#1097]: https://github.com/CLIUtils/CLI11/pull/1097 [#1101]: https://github.com/CLIUtils/CLI11/pull/1101 [#1106]: https://github.com/CLIUtils/CLI11/pull/1106 [#1108]: https://github.com/CLIUtils/CLI11/pull/1108 [#1110]: https://github.com/CLIUtils/CLI11/pull/1110 [#1112]: https://github.com/CLIUtils/CLI11/pull/1112 [#1113]: https://github.com/CLIUtils/CLI11/pull/1113 [#1115]: https://github.com/CLIUtils/CLI11/pull/1115

Version 2.4.2: Build systemsv2.4.2
? · 2024-05-04

This version improves support for alternative build systems, like Meson and Bazel. The single-include file now is in its own subdirectory. Several smaller fixes as well. ## What's Changed - Meson: fixes, cleanups, and modernizations [#1024][] & [#1025][] - Support building with Bazel [#1033][] - Restore non-arch dependent path for the pkgconfig file [#1012][] - Add `get_subcommand_no_throw` [#1016][] - Move single file to `single-include` folder [#1030][] & [#1036][] - Fixed `app.set_failure_message(...)` -> `app.failure_message(...)` [#1018][] - Add IWYU pragmas [#1008][] - Fix internal header include paths [#1011][] - Improved clarity in `RequiredError` [#1029][] - Added ability to use lexical_cast overloads constrained with enable_if [#1021][] - Bug fixes in latest release related to environmental variable parsing from option groups and unrecognized fields in a config file [#1005][] [#1005]: https://github.com/CLIUtils/CLI11/pull/1005 [#1008]: https://github.com/CLIUtils/CLI11/pull/1008 [#1011]: https://github.com/CLIUtils/CLI11/pull/1011 [#1012]: https://github.com/CLIUtils/CLI11/pull/1012 [#1016]: https://github.com/CLIUtils/CLI11/pull/1016 [#1018]: https://github.com/CLIUtils/CLI11/pull/1018 [#1021]: https://github.com/CLIUtils/CLI11/pull/1021 [#1025]: https://github.com/CLIUtils/CLI11/pull/1025 [#1029]: https://github.com/CLIUtils/CLI11/pull/1029 [#1030]: https://github.com/CLIUtils/CLI11/pull/1030 [#1033]: https://github.com/CLIUtils/CLI11/pull/1033 [#1036]: https://github.com/CLIUtils/CLI11/pull/1036 ## New Contributors * @krico made their first contribution in https://github.com/CLIUtils/CLI11/pull/1018 * @dcbaker made their first contribution in https://github.com/CLIUtils/CLI11/pull/1024 * @gostefan made their first contribution in https://github.com/CLIUtils/CLI11/pull/1008 * @sifferman made their first contribution in https://github.com/CLIUtils/CLI11/pull/1029 * @calebzulawski made their first contribution in https://github.com/CLIUtils/CLI11/pull/1033 **Full Changelog**: https://github.com/CLIUtils/CLI11/compare/v2.4.1...v2.4.2

Version 2.4.1v2.4.1
? · 2024-02-08

### Version 2.4.1: Missing headers A transitive include that might be present in some standard libraries is now included directly. Also fixes a test on architectures that need libatomic linked and fixes an inadvertent breaking change regarding unused defaults for config files. - Bugfix: Include cstdint [#996][] - Bugfix: Fix change in operation of config_ptr with unused default in the count method [#1003][] - Tests: Include libatomic if required for fuzzing test [#1000][] [#996]: https://github.com/CLIUtils/CLI11/pull/996 [#1000]: https://github.com/CLIUtils/CLI11/pull/1000 [#1003]: https://github.com/CLIUtils/CLI11/pull/1003 **Full Changelog**: https://github.com/CLIUtils/CLI11/compare/v2.4.0...v2.4.1

Version 2.4.0v2.4.0
? · 2024-02-05

This version adds Unicode support, support for TOML standard including multiline strings, digit separators, string escape sequences,and dot notation. An initial round of a fuzzer was added to testing which has caught several bugs related to config file processing, and a few other edge cases not previously observed. - Add Unicode support and bug fixes [#804][], [#923][], [#876][], [#848][], [#832][], [#987][] - Match TOML standard for string and numerical entries, multiline strings [#968][], [#967][],[#964][], [#935][] - Add validation for environmental variables [#926][] - Add an escape string transform [#970][] - Add A REVERSE multi-option policy to support multiple config files and other applications [#918][] - Add usage message replacement [#768][] - Allow using dot notation for subcommand arguments such as `--sub1.field` [#789][] - Bugfix: Fuzzing tests and fixes [#930][], [#905][], [#874][], [#846][] - Bugfix: Missing coverage tests [#928][] - Bugfix: CMake package and package config tests and fixes [#916][] - Bugfix: Support for Windows ARM compilation and tests [#913][], [#914][] - Bugfix: Environmental variable checks in non-triggered subcommands [#904][] - Bugfix: Environmental variables were not being correctly process by config pointer [#891][] - Bugfix: Undefined behavior in `sum_string_vector` [#893][] - Bugfix: Warnings and updates for CUDA 11 support [#851][] - Backend: Add tests for newer compilers (lost with Travis CI) [#972][] - Backend: Increase minimum CMake to 3.5 [#898][] - Backend: Remove integrated Conan support (provided now by Conan center) [#853][] - Tests: Support Catch2 Version 3 [#896][], [#980][] [#768]: https://github.com/CLIUtils/CLI11/pull/768 [#789]: https://github.com/CLIUtils/CLI11/pull/789 [#804]: https://github.com/CLIUtils/CLI11/pull/804 [#832]: https://github.com/CLIUtils/CLI11/pull/832 [#846]: https://github.com/CLIUtils/CLI11/pull/846 [#848]: https://github.com/CLIUtils/CLI11/pull/848 [#851]: https://github.com/CLIUtils/CLI11/pull/851 [#853]: https://github.com/CLIUtils/CLI11/pull/853 [#874]: https://github.com/CLIUtils/CLI11/pull/874 [#876]: https://github.com/CLIUtils/CLI11/pull/876 [#891]: https://github.com/CLIUtils/CLI11/pull/891 [#893]: https://github.com/CLIUtils/CLI11/pull/893 [#896]: https://github.com/CLIUtils/CLI11/pull/896 [#898]: https://github.com/CLIUtils/CLI11/pull/898 [#904]: https://github.com/CLIUtils/CLI11/pull/904 [#905]: https://github.com/CLIUtils/CLI11/pull/905 [#913]: https://github.com/CLIUtils/CLI11/pull/913 [#914]: https://github.com/CLIUtils/CLI11/pull/914 [#916]: https://github.com/CLIUtils/CLI11/pull/916 [#918]: https://github.com/CLIUtils/CLI11/pull/918 [#923]: https://github.com/CLIUtils/CLI11/pull/923 [#926]: https://github.com/CLIUtils/CLI11/pull/926 [#928]: https://github.com/CLIUtils/CLI11/pull/928 [#930]: https://github.com/CLIUtils/CLI11/pull/930 [#935]: https://github.com/CLIUtils/CLI11/pull/935 [#964]: https://github.com/CLIUtils/CLI11/pull/964 [#967]: https://github.com/CLIUtils/CLI11/pull/967 [#968]: https://github.com/CLIUtils/CLI11/pull/968 [#970]: https://github.com/CLIUtils/CLI11/pull/970 [#972]: https://github.com/CLIUtils/CLI11/pull/972 [#980]: https://github.com/CLIUtils/CLI11/pull/980 [#987]: https://github.com/CLIUtils/CLI11/pull/987 ## New Contributors * @andreasxp made their first contribution in https://github.com/CLIUtils/CLI11/pull/804 * @Krzmbrzl made their first contribution in https://github.com/CLIUtils/CLI11/pull/844 * @ptheywood made their first contribution in https://github.com/CLIUtils/CLI11/pull/851 * @trokhymchuk made their first contribution in https://github.com/CLIUtils/CLI11/pull/893 * @peterh made their first contribution in https://github.com/CLIUtils/CLI11/pull/913 * @looopTools made their first contribution in https://github.com/CLIUtils/CLI11/pull/969 **Full Changelog**: https://github.com/CLIUtils/CLI11/compare/v2.3.2...v2.4.0

Version 2.3.2: Minor maintenancev2.3.2
? · 2023-01-04

This version provides a few fixes collected over the last three months before adding features for 2.4. - Bugfix: Consistently use ADL for `lexical_cast`, making it easier to extend for custom template types #820 - Bugfix: Tweak the parsing of files for flags with `disable_flag_override` #800] - Bugfix: Handle out of bounds long long #807 - Bugfix: Spacing of `make_description` min option output #808 - Bugfix: Print last parsed subcommand's help message #822 - Bugfix: Avoid floating point warning in GCC 12 #803 - Bugfix: Fix a few gcc warnings #813 - Backend: Max CMake tested 3.22 -> 3.24 #823 ## New Contributors * @DarkWingMcQuack made their first contribution in https://github.com/CLIUtils/CLI11/pull/803 * @SherlockInSpace made their first contribution in https://github.com/CLIUtils/CLI11/pull/808 * @captainurist made their first contribution in https://github.com/CLIUtils/CLI11/pull/820 * @VolkerChristian made their first contribution in https://github.com/CLIUtils/CLI11/pull/822 **Full Changelog**: https://github.com/CLIUtils/CLI11/compare/v2.3.1...v2.3.2