Releases: CLIUtils/CLI11
Version 1.1: Feedback
This release incorporates feedback from the release announcement. The examples are slowly being expanded, some corner cases improved, and some new functionality for tricky parsing situations.
- Added simple support for enumerations, allow non-printable objects #12
- Added
app.parse_order()with original parse order (#13, #16) - Added
prefix_command(), which is likeallow_extrasbut instantly stops and returns. (#8, #17) - Removed Windows error (#10, #20)
- Some improvements to CMake, detect Python and no dependencies on Python 2 (like Python 3) (#18, #21)
Version 1.0: Official release
This is the first stable release for CLI11. Future releases will try to remain backward compatible and will follow semantic versioning if possible. There were a few small changes since version 0.9:
- Cleanup using
clang-tidyandclang-format - Small improvements to Timers, easier to subclass Error
- Move to 3-Clause BSD license
Version 0.9: Polish
This release focused on cleaning up the most exotic compiler warnings, fixing a few oddities of the config parser, and added a more natural method to check subcommands.
- Better CMake named target (CLI11)
- More warnings added, fixed
- Ini output now includes
=falsewhendefault_alsois true - Ini no longer lists the help pointer
- Added test for inclusion in multiple files and linking, fixed issues (rarely needed for CLI, but nice for tools)
- Support for complex numbers
- Subcommands now test true/false directly or with
->parsed(), cleaner parse
Version 0.8: CLIUtils
This release moved the repository to the CLIUtils master organization.
- Moved to CLIUtils on GitHub
- Fixed docs build and a few links
Version 0.7: Code coverage 100%
Lots of small bugs fixed when adding code coverage, better in edge cases. Much more powerful ini support.
- Allow comments in ini files (lines starting with
;) - Ini files support flags, vectors, subcommands
- Added CodeCov code coverage reports
- Lots of small bugfixes related to adding tests to increase coverage to 100%
- Error handling now uses scoped enum in errors
- Reparsing rules changed a little to accommodate Ini files. Callbacks are now called when parsing INI, and reset any time results are added.
- Adding extra utilities in full version only,
Timer(not needed for parsing, but useful for general CLI applications). - Better support for custom
add_optionslike functions.
Version 0.6: Cleanup
Lots of cleanup and docs additions made it into this release. Parsing is simpler and more robust; fall through option added and works as expected; much more consistent variable names internally.
- Simplified parsing to use
vector<string>only - Fixed fallthrough, made it optional as well (default: off):
.fallthrough(). - Added string versions of
->requires()and->excludes()for consistency. - Renamed protected members for internal consistency, grouped docs.
- Added the ability to add a number to
.require_subcommand().
Version 0.5: Windows support
- Allow
Hiddenoptions. - Throw
OptionAlreadyAddederrors for matching subcommands or options, with ignore-case included, tests ->ignore_case()added to subcommands, options, andadd_set_ignore_case. Subcommands inherit setting from parent App on creation.- Subcommands now can be "chained", that is, left over arguments can now include subcommands that then get parsed. Subcommands are now a list (
get_subcommands). Addedgot_subcommand(App_or_name)to check for subcommands. - Added
.allow_extras()to disable error on failure. Parse returns a vector of leftover options. Renamed error toExtrasError, and now triggers on extra options too. - Added
require_subcommandtoApp, to simplify forcing subcommands. Do not doadd_subcommand()->require_subcommand, since that is the subcommand, not the masterApp. - Added printout of ini file text given parsed options, skips flags.
- Support for quotes and spaces in ini files
- Fixes to allow support for Windows (added Appveyor) (Uses
-, not/syntax)
Version 0.4: Ini support
- Updates to help print
- Removed
run, please useparseunless you subclass and add it - Supports ini files mixed with command line, tested
- Added Range for further Plumbum compatibility
- Added function to print out ini file
Version 0.3: Plumbum compatibility
- Added
->requires,->excludes, and->envnamefrom [Plumbum](http://plumbum. readthedocs.io/en/latest/) - Supports
->mandatoryfrom Plubmum - More tests for help strings, improvements in formatting
- Support type and set syntax in positionals help strings
- Added help groups, with
->group("name")syntax - Added initial support for ini file reading with
add_configoption. - Supports GCC 4.7 again
- Clang 3.5 now required for tests due to googlemock usage, 3.4 should still work otherwise
- Changes
setupfor an explicit help bool in constructor/add_subcommand
Version 0.2: Leaner and meaner
- Moved to simpler syntax, where
Optionpointers are returned and operated on - Removed
make_style options - Simplified Validators, now only requires
->check(function) - Removed Combiners
- Fixed pointers to Options, stored in
unique_ptrnow - Added
Option_pandApp_p, mostly for internal use - Startup sequence, including help flag, can be modified by subclasses