Releases: Nick-Lucas/EntryPoint
1.3.0 - Make getters for BaseOptionAttribute public
Thanks to @TheColonel2688 for #54 and #55
1.2.3 - Escape characters stripped from quotes
A fix for the bug reported in #51
Commands like myapp.exe mycommand --myparam "my\ value"
were having the escape character stripped, although this is not in line with behavior in other CLIs.
Commands like myapp.exe mycommand --myparam my\ value
will continue to have the escape stripped by shells, as this is correct and protects the following space
1.2.2 - Mono 5 Bugfix
Should fix an issue where Mono 5 could not run EntryPoint due to an AmbiguousMatchException on the HelpAttribute
1.2.1 - Exception Messages
Minor changes with this release, a number of small improvements to exception messages, which are displayed to users and developers.
1.2.0 - Environment variables
- Adds
EnvironmentVariable
attribute toCliArguments
- Improves error throwing when the user provides a value un-convertable to the destination type.
- General improvements to test coverage
1.1.0 - UserFacingException handling
There is now a built in approach to handling derivatives of UserFacingException
, which until now always bubbled up into your application.
Much like the OnHelpInvoked
handler there is now a virtual method and a boolean which help you handle user error.
0.9.8 - Api improvements
Two main changes with this update:
- OnHelpInvoked now provides a default implementation, as feedbackwas that it's a bit confusing that --help does nothing without implementing the virtual method. Now we implement the virtual method to change the implementation
- Enforce at least one name being provided by Option/OptionParameter attributes, whereas it was possible to provide neither, before.
The Api is getting close to complete now, and no more significant changes to existing functionality are proposed.
0.9.7 - Lists Support
This update brings:
- Support for List as an OptionParameter / Operand type, parsing from
item1,item2,item3
- Improve Exceptions thrown inside of Commands to maintain a useful StackTrace
- Executing Cli.Parse / Cli.Execute without providing a
string[] args
parameter will now correctly get thestring[] args
itself - A bug where --log could be interpreted as --log-level or similar
- Other minor improvements to the codebase
0.9.6 - API overhaul, Commands support, Help improvements
This release is a pretty major change to EntryPoint so far.
All functionality is documented in depth here
All major APIs have changes, at least in name. This is based on feedback on the old interfaces.
- EntryPointApi -> Cli
- BaseApplicationOptions > BaseCliArguments
A Commands API has also been added, which provides the ability to route to a different logic branch based on the invoked Command, where arguments can be parsed in a domain specific manner.
Also the Help Generator has some incremental improvements, and is also supported by the Commands API.
This should be the end of major changes to existing APIs, although there are a number of small features to add in the future.
0.9.5 - Help Generator
This update changes the help generator so -h and --help no longer take control of and then exit the program after printing documentation.
From now on we have BaseApplicationOptions.HelpRequested
. Developers using EntryPoint should check this property after parsing and use EntryPointApi.GenerateHelp<>()
to get the documentation string. This puts control of the application flow entirely in your hands as a developer, which seems more appropriate. It does add a little boilerplate but was the lesser evil of other options.
A number of bugs are fixed (Including Required options throwing even when --help was invoked).
.Net Framework requirements have also been dropped to 4.5.0, although due to reflection features, it can't go any lower.