With the advent of containerized builds, we’re in a position to do away with “build on someone’s machine and use that binary as official releases”. We can go to an authoritative build server that builds in a known, auditable, containerized environment.
To accomplish this at present we need 2 versions of Java; JDK6 to build and JRE5 to run the tests (ShrinkWrap is JRE5+ compatible at the moment). Making a container with these versions is difficult because of distribution rights; OpenJDK wasn’t even available until version 6.
As it’s now 2016, we may consider a proposal to make a new major release of ShrinkWrap, break compatibility with JRE5+, and refactor some things. Some version usage data:
Remember that ShrinkWrap is a lower-level library and must stay focused on mass adoption. Using cutting-edge JDKs is not a priority, but we need to find a good balance. ShrinkWrap, as always, will keep its 0 dependencies on runtime libraries aside from the Java APIs.
- Do we want to consider a major version bump? This will signal the first time we’re allowed to break APIs since 2009, so if we do it once, we do it right.
- What JDK version to base atop?
- What other API changes do we want to make?