Closed rvesse closed 9 months ago
Currently blocked by the fact that Commons CSV doesn't currently have a Automatic-Module-Name
present so cannot have that as a requires
declaration in our module-info.java
yet. Reached out to Apache Commons Developers and they have indicated that they will look to make a new release soon-sh
Still blocked, new Commons-CSV release came out but it is still missing JPMS support
Done in 3.0.0
In working on some areas of new functionality targeted for 2.9 and which require new modules to be provided to isolate the new features from users who don't want/need them (and in one case the associated dependencies) I realised that currently only a couple of our modules actually have
module-info.java
present. These areairline
andairline-io
which represent the core of Airline but doesn't cover the extended help system nor other new features that are under development.Missing
module-info.java
files:airline-help-bash
airline-help-external
(new for 2.9)airline-help-html
airline-help-man
airline-help-markdown
airline-maven-plugin
(Not sure if this is even feasible but putting on the list for completeness)airline-prompts
(new for 2.9)@jfallows previously did some work in #92 when JPMS support (and
module-info.java
was originally added) to add the initial files and suggested a possible methodology for automatically deriving these files (https://github.com/rvesse/airline/pull/92#issuecomment-484786320)I have been trying to get that working locally but have been running into issues with cryptic
jdeps
error messages about multi-release modules that I am unsure how to proceed past.Another option would be just to hand author each of these since each module is relatively small.
One potential pitfall we might hit regardless of approach is that there may be some overlapping packages between these modules and the core modules which would have to be resolved. So far I've spotted the following from a quick inspection:
airline-help-bash
uses packagecom.github.rvesse.airline.annotations.help
which is already exported by the coreairline
module[x] Any overlapping packages resolved (this will be a Breaking Change for existing users)
Also since I'm not personally using JPMS anywhere currently some suggestions/pointers on how to set up a test project that would validate that all the modules are correctly set up would also be useful.