The NetCDF-Java Library is undergoing extensive development to bring it up to current standards of software engineering, and to make it compatible with ongoing changes and improvements in the JVM and Java platform.
Like all such libraries, NetCDF-Java is part of an interconnected web of library dependencies used by the open source and open science communities. We will be following the guidance in the Google Best Practices for Java Libraries document as best we can. In particular, we will follow Semantic Versioning, where our versioning will follow MAJOR.MINOR.PATCH:
- MAJOR version changes on incompatible API changes
- MINOR version changes when functionality is added in a backwards compatible manner
- PATCH version changes on backwards compatible bug fixes
The first step in the process is to clarify the NetCDF-Java public API. NetCDF-Java began its life around Java version 0.8, that is, before Java itself had a stable release in 1996. Over the years the priority was to deliver functionality, and the API has developed without a clear delineation between public API and private implementation. In order for NetCDF-Java to remain useful for another generation, we are doing extensive refactoring to define the public API going forward.
Currently, development is on version 5, and is hosted on Github. Following JLBP-7, netCDF-Java version 5 will have both the old API (marked deprecated) and the new API, to allow incremental upgrading. Version 6 will remove the deprecated API. These versions will stay compatible with Java 8. In version 7 we will drop Java 8 compatibility and target Java 11.
The public API is still being defined. We are looking for actively developed Java projects that use the NetCDF-Java library who are interested in giving us feedback. These projects will try compiling against the new API and report on difficulties and incompatibilities. Note that version 6 will not be backwards compatible with version 5. Upgrading to version 6 will require changing your code to use only the public API. Upgrading to future major versions may likewise require changes to your code. So only actively maintained projects intending to move forward as the Java platform evolves would be candidates for API testing.
Please let us know if you are interested in being one of our API testers by emailing email@example.com.