I'm going to start making all projects use a common set of Checkstyle rules rather than having each project carry its own rules around. I can't remember exactly why I avoided doing this in the beginning. I think it may've been that I wasn't confident that I could write one set of rules that would work everywhere. I've decided instead that I'll beat code with a shovel until it follows the rules, rather than beat the rules with a shovel until they follow the code.
I've been moving all of the projects I still maintain to Java 9
modules. In order
to do this, however, I've needed to assist third party projects upon
which I have dependencies to either modularize their projects or
publish Automatic-Module-Name
entries in their jar
manifests. If
you try to specify a dependency on a project that either hasn't been
modularized or hasn't published an Automatic-Module-Name
entry,
you'll see this when building with Maven:
[WARNING] ******************************************************************************************************************** [WARNING] * Required filename-based automodules detected. Please don't publish this project to a public artifact repository! * [WARNING] ********************************************************************************************************************
The reasons for this are documented on Stephen Colebourne's blog.
Here's a table of all of the third party projects upon which I depend, and an indication of the current state of modularization (I'll try to keep this updated as projects are updated):
Project | State | Updated |
---|---|---|
fastutil | Considering | 2018-02-07 |
jcpp | Considering | 2018-02-08 |
ed25519-java | Considering | 2018-02-09 |
LWJGL | Fully Modularized | 2018-02-07 |
Dyn4j | Fully Modularized | 2018-02-07 |
protobuf | Ignored? | 2018-02-07 |
antlr | In Progress | 2018-02-11 |
autovalue | In Progress | 2018-02-07 |
rome | In Progress | 2018-02-07 |
JGraphT | Automatic Module Names (Full modularization in progress) | 2018-02-11 |
Vavr | Automatic Module Names | 2018-02-07 |
commonmark-java | Automatic Module Names | 2018-02-07 |
javapoet | Automatic Module Names | 2018-02-07 |
xom | Unclear | 2018-02-07 |
Generally, if a project isn't planning to either modularize or publish automatic module names, then I'm looking for a replacement for that project.
I'm having trouble deploying packages to Maven Central. The repository claims that it cannot validate the signatures I provide. I've filed a bug but haven't gotten a response. I'm wondering if it's down to me switching to Curve25519 PGP keys...
New PGP keys have been published.
Fingerprint | UID ----------------------------------------------------------------------------------- B84E 1774 7616 C617 4C68 D5E5 5C1A 7B71 2812 CC05 | Mark Raynsford (2018 personal) F8C3 C5B8 C86A 95F7 42B9 36D2 97E0 2011 0410 DFAF | io7m.com (2018 release-signing)
See the the previous blog post:
$ gpg --recv-keys 8168DAE22B15D3EDC722C23D0F15B7D06FA80CB8 $ wget -r http://blog.io7m.com $ cd blog.io7m.com $ gpg < checksum.asc | sha512sum --check
Better.