Skip to content

Switch from cisd:jhdf5 to janelia-jhdf5 - #4490

Draft
mkitti wants to merge 1 commit into
ome:developfrom
mkitti:janelia-jhdf5
Draft

mkitti wants to merge 1 commit into
ome:developfrom
mkitti:janelia-jhdf5

Conversation

@mkitti

@mkitti mkitti commented Oct 16, 2026

Copy link
Copy Markdown
Member

What changed

  • components/formats-bsd/pom.xml: replace cisd:jhdf5:19.04.1 with org.scijava:janelia-jhdf5:22.03.01-SNAPSHOT. The test-no-hdf surefire execution now excludes org.scijava:janelia-jhdf5 from the classpath.
  • JHDFServiceImpl: the "JHDF is required" message no longer points to the obsolete cisd-jhdf5-batteries_included_lin_win_mac.jar.
  • No Java API changes: janelia-jhdf5 keeps the ch.systemsx.cisd.hdf5.* / ch.systemsx.cisd.base.* packages.
  • Temporary plumbing (marked TEMPORARY in comments): the org.bytedeco snapshot repository in the root pom.xml, and two steps in .github/workflows/maven.yml that build and install the janelia-jhdf5 snapshot before the Bio-Formats build.

Why

cisd:jhdf5 19.04.1 is unmaintained, bundles old HDF5 1.10 natives and only supports a few platforms. janelia-jhdf5 is a drop-in replacement with the same API that runs on HDF5 2.x through bytedeco and supports more platforms (including macOS arm64, Linux arm64, Windows). Many downstream projects get JHDF5 transitively through Bio-Formats.

Draft: waiting on a janelia-jhdf5 release

janelia-jhdf5 is not released yet (22.03.01-SNAPSHOT, which also needs javacpp/hdf5 1.5.15-SNAPSHOT / 2.2.0 from the bytedeco snapshot repo). When released: set the real version in formats-bsd/pom.xml, remove the snapshot repository from the root pom.xml, and remove the two janelia-jhdf5 steps from maven.yml.

Testing

Locally on JDK 21, with janelia-jhdf5 installed in ~/.m2: mvn -pl components/formats-bsd -am install passed: formats-bsd 1525 tests (includes JHDFServiceTest) plus the test-no-hdf run (MissingJHDFServiceTest) with 0 failures; formats-api 224 tests passed. dependency:tree shows no cisd:* artifacts. Only formats-bsd referenced jhdf5, so other modules were not rebuilt. Not run: the CI matrix (Java 11/17/21/25 on 3 OSes) and the Java 8 baseline.

Licensing

janelia-jhdf5: BSD-3-Clause for new code, Apache-2.0 for inherited JHDF5/cisd:base code. Dependencies: bytedeco hdf5/javacpp (HDF5 license, Apache-2.0 or GPLv2+Classpath), jnr-posix (EPL-2.0 / GPL-2 / LGPL-2.1 multi-license).

🤖 Generated with Claude Code

Temporary: depends on janelia-jhdf5 22.03.01-SNAPSHOT, adds the bytedeco
snapshot repository and a CI step that builds janelia-jhdf5 first.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant