rvesse / airline

Java annotation-based framework for parsing Git like command line structures with deep extensibility
https://rvesse.github.io/airline/
Apache License 2.0
128 stars 20 forks source link

Add `module-info.java` to all modules #105

Closed rvesse closed 9 months ago

rvesse commented 3 years ago

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 are airline and airline-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:

@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:

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.

rvesse commented 3 years 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

rvesse commented 2 years ago

Still blocked, new Commons-CSV release came out but it is still missing JPMS support

rvesse commented 9 months ago

Done in 3.0.0