@BashCompletion annotation moved package in order to enable this
@AirlineModule is now the only composition annotation enabled by default, use of @Inject and its associated dependencies is now entirely optional
Full Change Log
Core Improvements
First class support for BigInteger and BigDecimal as numeric types
First class support for Path
Provided corrected spelling for ConvertResult.wasSuccessful(), old mis-spelt method preserved but marked as
deprecated
Added a ModulePathLocator as an additional ResourceLocator to allow finding resources on the Module Path when those resources are properly encapsulated by their owning modules
Added a JpmsResourceLocator as an additional ResourceLocator to allow finding resources when running in a JPMS
context for resources that are not properly encapsulated or whose module-info.java you cannot control (requires additional module airline-jpms-resources)
BREAKING - Only @AirlineModule is used as a composition annotation by default, use of the older
@javax.inject.Inject or @jakarta.inject.Inject annotations MUST now be explicitly configured.
Help Improvements
Added an @SeeAlso annotation to Airline Core (#51)
BREAKING - airline-help-bash has moved @BashCompletion annotation into
com.github.rvesse.airline.annotations.help.bash to avoid package collisions between this module and the core in
order to allow this module to become a JPMS module
Fluent API Improvements
A ParserBuilder created by calling withParser() on a CliBuilder can now return control back to its parent via
the parent() method for cleaner Fluid CLI definitions
Dependency Updates
BREAKING - Minimum JDK Version is now 11
Apache Commons Collections upgraded to 4.4
Apache Commons Lang upgraded to 3.14.0
BREAKINGjakarta.inject and airline-backcompat-javaxinject were made optional so 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-external module with a dependency on Apache Commons CSV 1.10.0
Added new airline-jpms-resources module 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 -X to see it
New airline-prompts module 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-external modules provides new help annotations that allow more complex help to be provided via
First class support for BigInteger and BigDecimal as numeric types
First class support for Path
Provided corrected spelling for ConvertResult.wasSuccessful(), old mis-spelt method preserved but marked as
deprecated
Added a JpmsResourceLocator as an additional ResourceLocator to allow finding resources when running in a JPMS
context (requires additional module airline-jpms-resources)
BREAKING - Only @AirlineModule is used as a composition annotation by default, use of the older
@javax.inject.Inject or @jakarta.inject.Inject annotations MUST now be explicitly configured.
Help Improvements
Added an @SeeAlso annotation to Airline Core (#51)
BREAKING - airline-help-bash has moved @BashCompletion annotation into
com.github.rvesse.airline.annotations.help.bash to avoid package collisions between this module and the core in
order to allow this module to become a JPMS module
Fluent API Improvements
A ParserBuilder created by calling withParser() on a CliBuilder can now return control back to its parent via
the parent() method for cleaner Fluid CLI definitions
Dependency Updates
BREAKING - Minimum JDK Version is now 11
Apache Commons Collections upgraded to 4.4
Apache Commons Lang upgraded to 3.14.0
jakarta.inject and airline-backcompat-javaxinject were made optional so 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-external module with a dependency on Apache Commons CSV 1.10.0
Added new airline-jpms-resources module 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 -X to see it
New airline-prompts module 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-external modules 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 @Version annotation. (#52)
Adds @ExternalDiscussion@ExternalProse, @ExternalExitCodes, @ExternalExamples and
@ExternalExamplesTabular annotations
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-examples module for examples of constructing a module-info.java that pulls in other Airline
modules and see modularExample script for examples of invoking an Airline based app using the Module Path
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps com.github.rvesse:airline from 2.9.0 to 3.0.0.
Release notes
Sourced from com.github.rvesse:airline's releases.
... (truncated)
Changelog
Sourced from com.github.rvesse:airline's changelog.
... (truncated)
Commits
042c9e9
[maven-release-plugin] prepare release 3.0.03947ada
Use latest Javadoc pluginb00b57c
Ensure Javadoc is produced during releasesa13833e
Hopefully fix airline-maven-plugin builds08c30fa
Merge pull request #130 from rvesse/2.108146ce4
Fix some doc navigation issuesf3cccdb
Assorted doc cleanup ahead of 3.x release2a3fa2c
More JPMS related cleanup1cdde39
Lots of JPMS fixes173df02
Remove Java 8 from build matrixDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show