Commit 0302ecf83fd2ddaad8f41d396d99cd32860a0133
1 parent
437dbab1
Adding details for 1.3
Showing
2 changed files
with
45 additions
and
15 deletions
CHANGELOG.md
| 1 | -## Version 1.3 | |
| 1 | +## Version 1.3: Refactor | |
| 2 | + | |
| 3 | +This version focused on refactoring several key systems to ensure correct behavior in the interaction of different settings. Most caveats about | |
| 4 | +features only working on the main App have been addressed, and extra arguments have been reworked. Inheritance | |
| 5 | +of defaults makes configuring CLI11 much easier without having to subclass. Policies add new ways to handle multiple arguments to match your | |
| 6 | +favorite CLI programs. Error messages and help messages are better and more flexible. Several bugs and odd behaviors in the parser have been fixed. | |
| 2 | 7 | |
| 3 | 8 | * Added a version macro, `CLI11_VERSION`, along with `*_MAJOR`, `*_MINOR`, and `*_PATCH`, for programmatic access to the version. |
| 4 | 9 | * Reworked the way defaults are set and inherited; explicit control given to user with `->option_defaults()` [#48](https://github.com/CLIUtils/CLI11/pull/48) |
| ... | ... | @@ -28,7 +33,18 @@ |
| 28 | 33 | * Single internal arg parse function [#56](https://github.com/CLIUtils/CLI11/pull/56) |
| 29 | 34 | * Allow options to be disabled from INI file, rename `add_config` to `set_config` [#60](https://github.com/CLIUtils/CLI11/pull/60) |
| 30 | 35 | |
| 31 | -## Version 1.2 | |
| 36 | +> ### Converting from CLI11 1.2: | |
| 37 | +> | |
| 38 | +> * `app.parse` no longer returns a vector. Instead, use `app.remaining(true)`. | |
| 39 | +> * `"hidden"` is no longer a special group name, instead use `""` | |
| 40 | +> * Validators API has changed to return an error string; use `.empty()` to get the old bool back | |
| 41 | +> * Use `.set_help_flag` instead of accessing the help pointer directly (discouraged, but not removed yet) | |
| 42 | +> * `add_config` has been renamed to `set_config` | |
| 43 | +> * Errors thrown in some cases are slightly more specific | |
| 44 | + | |
| 45 | +## Version 1.2: Stability | |
| 46 | + | |
| 47 | +This release focuses on making CLI11 behave properly in corner cases, and with config files on the command line. This includes fixes for a variety of reported issues. A few features were added to make life easier, as well; such as a new flag callback and a macro for the parse command. | |
| 32 | 48 | |
| 33 | 49 | * Added functional form of flag [#33](https://github.com/CLIUtils/CLI11/pull/33), automatic on C++14 |
| 34 | 50 | * Fixed Config file search if passed on command line [#30](https://github.com/CLIUtils/CLI11/issues/30) |
| ... | ... | @@ -38,7 +54,9 @@ |
| 38 | 54 | * Required positionals now take priority over subcommands [#23](https://github.com/CLIUtils/CLI11/issues/23) |
| 39 | 55 | * Extra requirements enforced by Travis |
| 40 | 56 | |
| 41 | -## Version 1.1 | |
| 57 | +## Version 1.1: Feedback | |
| 58 | + | |
| 59 | +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. | |
| 42 | 60 | |
| 43 | 61 | * Added simple support for enumerations, allow non-printable objects [#12](https://github.com/CLIUtils/CLI11/issues/12) |
| 44 | 62 | * Added `app.parse_order()` with original parse order ([#13](https://github.com/CLIUtils/CLI11/issues/13), [#16](https://github.com/CLIUtils/CLI11/pull/16)) |
| ... | ... | @@ -46,12 +64,17 @@ |
| 46 | 64 | * Removed Windows warning ([#10](https://github.com/CLIUtils/CLI11/issues/10), [#20](https://github.com/CLIUtils/CLI11/pull/20)) |
| 47 | 65 | * Some improvements to CMake, detect Python and no dependencies on Python 2 (like Python 3) ([#18](https://github.com/CLIUtils/CLI11/issues/18), [#21](https://github.com/CLIUtils/CLI11/pull/21)) |
| 48 | 66 | |
| 49 | -## Version 1.0 | |
| 67 | +## Version 1.0: Official release | |
| 68 | + | |
| 69 | +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: | |
| 70 | + | |
| 50 | 71 | * Cleanup using `clang-tidy` and `clang-format` |
| 51 | 72 | * Small improvements to Timers, easier to subclass Error |
| 52 | 73 | * Move to 3-Clause BSD license |
| 53 | 74 | |
| 54 | -## Version 0.9 | |
| 75 | +## Version 0.9: Polish | |
| 76 | + | |
| 77 | +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. | |
| 55 | 78 | |
| 56 | 79 | * Better CMake named target (CLI11) |
| 57 | 80 | * More warnings added, fixed |
| ... | ... | @@ -61,12 +84,16 @@ |
| 61 | 84 | * Support for complex numbers |
| 62 | 85 | * Subcommands now test true/false directly or with `->parsed()`, cleaner parse |
| 63 | 86 | |
| 64 | -## Version 0.8 | |
| 87 | +## Version 0.8: CLIUtils | |
| 88 | + | |
| 89 | +This release moved the repository to the CLIUtils master organization. | |
| 65 | 90 | |
| 66 | 91 | * Moved to CLIUtils on GitHub |
| 67 | 92 | * Fixed docs build and a few links |
| 68 | 93 | |
| 69 | -## Version 0.7 | |
| 94 | +## Version 0.7: Code coverage 100% | |
| 95 | + | |
| 96 | +Lots of small bugs fixed when adding code coverage, better in edge cases. Much more powerful ini support. | |
| 70 | 97 | |
| 71 | 98 | * Allow comments in ini files (lines starting with `;`) |
| 72 | 99 | * Ini files support flags, vectors, subcommands |
| ... | ... | @@ -77,7 +104,9 @@ |
| 77 | 104 | * Adding extra utilities in full version only, `Timer` (not needed for parsing, but useful for general CLI applications). |
| 78 | 105 | * Better support for custom `add_options` like functions. |
| 79 | 106 | |
| 80 | -## Version 0.6 | |
| 107 | +## Version 0.6: Cleanup | |
| 108 | + | |
| 109 | +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. | |
| 81 | 110 | |
| 82 | 111 | * Simplified parsing to use `vector<string>` only |
| 83 | 112 | * Fixed fallthrough, made it optional as well (default: off): `.fallthrough()`. |
| ... | ... | @@ -85,7 +114,7 @@ |
| 85 | 114 | * Renamed protected members for internal consistency, grouped docs. |
| 86 | 115 | * Added the ability to add a number to `.require_subcommand()`. |
| 87 | 116 | |
| 88 | -## Version 0.5 | |
| 117 | +## Version 0.5: Windows support | |
| 89 | 118 | |
| 90 | 119 | * Allow `Hidden` options. |
| 91 | 120 | * Throw `OptionAlreadyAdded` errors for matching subcommands or options, with ignore-case included, tests |
| ... | ... | @@ -97,7 +126,7 @@ |
| 97 | 126 | * Support for quotes and spaces in ini files |
| 98 | 127 | * Fixes to allow support for Windows (added Appveyor) (Uses `-`, not `/` syntax) |
| 99 | 128 | |
| 100 | -## Version 0.4 | |
| 129 | +## Version 0.4: Ini support | |
| 101 | 130 | |
| 102 | 131 | * Updates to help print |
| 103 | 132 | * Removed `run`, please use `parse` unless you subclass and add it |
| ... | ... | @@ -105,7 +134,7 @@ |
| 105 | 134 | * Added Range for further Plumbum compatibility |
| 106 | 135 | * Added function to print out ini file |
| 107 | 136 | |
| 108 | -## Version 0.3 | |
| 137 | +## Version 0.3: Plumbum compatibility | |
| 109 | 138 | |
| 110 | 139 | * Added `->requires`, `->excludes`, and `->envname` from [Plumbum](http://plumbum.readthedocs.io/en/latest/) |
| 111 | 140 | * Supports `->mandatory` from Plubmum |
| ... | ... | @@ -117,7 +146,7 @@ |
| 117 | 146 | * Clang 3.5 now required for tests due to googlemock usage, 3.4 should still work otherwise |
| 118 | 147 | * Changes `setup` for an explicit help bool in constructor/`add_subcommand` |
| 119 | 148 | |
| 120 | -## Version 0.2 | |
| 149 | +## Version 0.2: Leaner and meaner | |
| 121 | 150 | |
| 122 | 151 | * Moved to simpler syntax, where `Option` pointers are returned and operated on |
| 123 | 152 | * Removed `make_` style options |
| ... | ... | @@ -127,8 +156,7 @@ |
| 127 | 156 | * Added `Option_p` and `App_p`, mostly for internal use |
| 128 | 157 | * Startup sequence, including help flag, can be modified by subclasses |
| 129 | 158 | |
| 130 | -## Version 0.1 | |
| 131 | - | |
| 132 | -Initial version | |
| 159 | +## Version 0.1: First release | |
| 133 | 160 | |
| 161 | +First release before major cleanup. Still has make syntax and combiners; very clever syntax but not the best or most commonly expected way to work. | |
| 134 | 162 | ... | ... |
README.md
| ... | ... | @@ -15,6 +15,8 @@ CLI11 provides all the features you expect in a powerful command line parser, wi |
| 15 | 15 | It is tested on [Travis] and [AppVeyor], and is being included in the [GooFit GPU fitting framework][GooFit]. It was inspired by [`plumbum.cli`][Plumbum] for Python. CLI11 has a user friendly introduction in this README, a more in-depth tutorial [GitBook], as well as [API documentation][api-docs] generated by Travis. |
| 16 | 16 | See the [changelog](./CHANGELOG.md) or [GitHub Releases] for details for current and past releases. The version 1.0 announcement post can be found [here](http://iscinumpy.blogspot.com/2017/06/announcing-cli11-version-10.html). |
| 17 | 17 | |
| 18 | +You can be notified when new releases are made by subscribing to https://github.com/CLIUtils/CLI11/releases.atom on an RSS reader, like Feedly. | |
| 19 | + | |
| 18 | 20 | ### Why write another CLI parser? |
| 19 | 21 | |
| 20 | 22 | An acceptable CLI parser library should be all of the following: | ... | ... |