Commit 0302ecf83fd2ddaad8f41d396d99cd32860a0133

Authored by Henry Fredrick Schreiner
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:
... ...