All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.1 - 2022-07-16
- Updated the Readme documentation to include the newly added functionality for arg types and methods.
- Added new predefined argument types:
file
for filenames and directories anduint
for unsigned integers - Enabled validation of argument values using regular expressions via the
Arg.ValidatorRegex()
method - Integrated the
AllowNegativeNumbers
setting into the program - Enabled customization of the help headings and help values to be used for sub-cmds, arguments, flags and options.
- Implemented a simple caching policy to improve performance
- Integrated
DisableColor
setting and functionality - Created a simple contributing guide
- Improved general package performance and structs creation latency
- Updated existing and added more benchmarks
- Modified some of the error messages to be more concise
- Renamed struct fields for Options, Arguments and Flags to make them public and enable creation using constructors
- Modified the
FormatGenerator
interface to take in a pointer to the app for settings integration - Moved the suggest subcommands functionality from utils to a method of the
Command
struct
- Removed unused assertion utility functions such as the assertArrEq and assertStructEq.
- Removed the
.compare()
method for the StructComp interface implementations. Now comparing structs using the reflect.DeepEqual method.
0.2.0 - 2022-06-30
- Added support for multiple validator functions for a single argument
- Added loose support for argument types i.e
<int:arg1>
will ensure only integer values are accepted. Others "types" includefloat
andbool
withstr
being the default. - Added more tests for package components, significantly improved the coverage
- Created functions for indent and dedent functionality in the utils file
- Introduced a new and better word wrap function
- Command disuccion printing now functions correctly
- Created custom assertion utilities for easier and better testing
- Created a shell script for use in comparing benchmarks along with a make target for running benchstat
- Configured CI test workflow to create an automated issue on w/f failure
- Moved helpwriter functionality into a separate file
- Removed the doc.go file and moved package docstring to gommander.go file
- Renamed the app.Info() method to app.Discussion()
- Refactored the tests to use the newly created assertion utilities
- Enabled some more linters in the golangci-lint config
- Modified program to check for test mode before exiting when performing runtime checks
- Updated issue template to include assignee and added feature_request template
- Corrected the package inner parse method to use the args passed as input, rather than reading directly from os.Args
- Patched issue #31 causing arg parsing for the root cmd to fail
0.1.7 - 2022-06-25
- Integrated codecov into the CI workflow and added a coverage badge in the README
- Created an issue template for the project and added the CODEOWNERS file
- Moved all the parser error handling functionality into a single method rather than spread out all over the parser code.
- Edited the fields of the Error struct to make errors more simplified
- Refactored the suggest cmds functionality to make it more "suggestive"
- Patched the parser error causing the uncaught unknown-command error
- Fixed the parser issue #21 causing parsing of multiple positional args to fail
0.1.6 - 2022-06-24
- Patched issue #15 causing runtime errors when optional arguments are included in a subcommand
0.1.5 - 2022-06-22
- Changed the variable naming convention from snake-case to camel-case to resolve linter warnings
- Resolved all other golangci-lint warnings and errors
- Removed deprecated linters from config
- Refactored the previously named
Error
designation intoErrorMsg
to avoid naming conflicts - Renamed the program error from
gommander.GommanderError
intogommander.Error
0.1.4 - 2022-06-12
- Patched the parser error causing parsing of empty argument values
- Updated argument tests to include the format with the arg-default value included
- Created formatter utility functions for: adding & printing directly, printing by color rather than by designation, coloring and printing directly
- Set argument default values to be printed out if any are present
- Added new error-handling section in the README along with screenshots corresponding to the errors
- Documented the public formatter interface in the README in its own section
- Removed the unused new variadic theme function
- Removed all the resolved todos
0.1.3 - 2022-06-07
- Patched critical bug causing runtime error when no args are supplied to the program
0.1.2 - 2022-06-07
- Added a new argument method for adding custom validator functions
.ValidatorFunc()
- Added more method docstrings and new examples in docs
- Included screenshots for the README defined examples
- Made the
fmter.Add()
andfmter.Print()
methods public - Commands can now have multiple aliases instead of just one
- The
ShowCommandAliases
setting now functions correctly - Resolved the uncaught parser errors issue for subcommands
- Patched the parser complications when parsing arguments for nested subcommands
- Fixed the indentation issues in the README code examples
0.1.1 - 2022-06-02
- Patched parser bug causing unnecessary help printing
- Fixed simple typos and formatting issue in README
0.1.0 - 2022-06-01
- Basic package functionality
- Simple examples and indepth docs
- Fair amount of tests and coverage