Releases: rvesse/airline
Releases · rvesse/airline
3.2.0
- Type Conversion improvements:
- When converting to types
DefaultTypeConverternow considers overloads ofvalueOf(),fromString()and
constructors that take aCharSequenceargument
- When converting to types
- Code Modernisation
- Applied a variety of code modernisation PRs (#136, #138, #140, #143) (thanks to @khmarbaise)
- Build Cleanup
- The Maven Plugin build dependencies were updated to avoid warnings during the build process (#152) (thanks to
@khmarbaise) - Various other build warnings eliminated (thanks to @khmarbaise)
- The Maven Plugin build dependencies were updated to avoid warnings during the build process (#152) (thanks to
- Dependency Updates
- Apache Commons Lang upgraded to 3.18.0
3.1.0
This is a maintenance release to bring dependencies up to date and switch over to the new Maven Central publishing
process due to Sonatype sunsetting support for the old OSSRH publishing process.
- Dependency Updates
- Apache Commons Collections upgraded to 4.5.0
- Apache Commons Lang upgraded to 3.17.0
- Classgraph upgraded to 4.8.179
- Various build and test dependencies upgraded to latest available
3.0.0
3.0.0 is a major release
Breaking Changes
- Java 11 is now the minimum required Java version
- Full JPMS support
@BashCompletionannotation moved package in order to enable this
@AirlineModuleis now the only composition annotation enabled by default, use of@Injectand its associated dependencies is now entirely optional
Full Change Log
- Core Improvements
- First class support for
BigIntegerandBigDecimalas numeric types - First class support for
Path - Provided corrected spelling for
ConvertResult.wasSuccessful(), old mis-spelt method preserved but marked as
deprecated - Added a
ModulePathLocatoras an additionalResourceLocatorto allow finding resources on the Module Path when those resources are properly encapsulated by their owning modules - Added a
JpmsResourceLocatoras an additionalResourceLocatorto allow finding resources when running in a JPMS
context for resources that are not properly encapsulated or whosemodule-info.javayou cannot control (requires additional moduleairline-jpms-resources) - BREAKING - Only
@AirlineModuleis used as a composition annotation by default, use of the older
@javax.inject.Injector@jakarta.inject.Injectannotations MUST now be explicitly configured.
- First class support for
- Help Improvements
- Added an
@SeeAlsoannotation to Airline Core (#51) - BREAKING -
airline-help-bashhas moved@BashCompletionannotation into
com.github.rvesse.airline.annotations.help.bashto avoid package collisions between this module and the core in
order to allow this module to become a JPMS module
- Added an
- Fluent API Improvements
- A
ParserBuildercreated by callingwithParser()on aCliBuildercan now return control back to its parent via
theparent()method for cleaner Fluid CLI definitions
- A
- Dependency Updates
- BREAKING - Minimum JDK Version is now 11
- Apache Commons Collections upgraded to 4.4
- Apache Commons Lang upgraded to 3.14.0
- BREAKING
jakarta.injectandairline-backcompat-javaxinjectwere madeoptionalso will no longer be pulled in
automatically - Various build plugins updated to the latest available versions (this only impacts developers building the library
from source) - Added new
airline-help-externalmodule with a dependency on Apache Commons CSV 1.10.0 - Added new
airline-jpms-resourcesmodule with a dependency on
ClassGraph to enable resource location when Airline is used on Module
Path i.e. JPMS runtime context
- Maven Plugin improvements
- Some logging has moved up to INFO from DEBUG, so you no longer have to use
-Xto see it
- Some logging has moved up to INFO from DEBUG, so you no longer have to use
- New
airline-promptsmodule provides a Fluent API for defining user prompts (#92)- Prompt timeouts so non-interactive apps don't hang forever
- Configurable prompt sources
- Configurable prompt formatting
- Prompt for keys, strings, passwords, options (from a pre-configured list) or a strongly typed value
- Integrates with Airline's type conversion
- New
airline-help-externalmodules provides new help annotations that allow more complex help to be provided via
classpath/file resources rather than directly in the annotations. This is a generalisation of the mechanism already
used by@Versionannotation. (#52)- Adds
@ExternalDiscussion@ExternalProse,@ExternalExitCodes,@ExternalExamplesand
@ExternalExamplesTabularannotations
- Adds
- Build and Release Improvements
- All Airline modules are now fully fledged JPMS modules meaning they can be used on the JVM Module Path instead of
the Classpath where preferred- See
airline-examplesmodule for examples of constructing amodule-info.javathat pulls in other Airline
modules and seemodularExamplescript for examples of invoking an Airline based app using the Module Path
- See
- All Airline modules are now fully fledged JPMS modules meaning they can be used on the JVM Module Path instead of