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.