Another ABI breakage

Hello HDF5ers,
Some bad news for you today! :frowning:

In HDF5 1.10.1, H5Fpublic.h:

/* Library's file format versions */
typedef enum H5F_libver_t {
    H5F_LIBVER_EARLIEST,        /* Use the earliest possible format for storing objects */
    H5F_LIBVER_LATEST           /* Use the latest possible format available for storing objects*/
} H5F_libver_t;


In HDF5 1.10.2, H5Fpublic.h:

/* Library's format versions */
typedef enum H5F_libver_t {
    H5F_LIBVER_ERROR = -1,
    H5F_LIBVER_EARLIEST = 0,    /* Use the earliest possible format for storing objects */
    H5F_LIBVER_V18 = 1,         /* Use the latest v18 format for storing objects */
    H5F_LIBVER_V110 = 2,        /* Use the latest v10 format for storing objects */
} H5F_libver_t;


1 is H5F_LIBVER_V18.

A call to H5Pset_libver_bounds with H5F_LIBVER_EARLIEST, H5F_LIBVER_LATEST in a program built against HDF5 1.10.1 and executed against HDF5 1.10.5 is effectively understood as H5F_LIBVER_EARLIEST, H5F_LIBVER_V18, which will lead to errors (e.g. it’s not possible to copy latest-format objects into such file).


  1. Submit a JIRA item.
  2. Consider ways to fix it in a hot-patch release.

Maybe there is some way of elegant work-around?

Best wishes,
Andrey Paramonov

Hi Andrey,

Thank you for reporting, but we will not fix this issue.

To be honest, HDF5 1.10.0 and 1.10.1 ARE NOT stable “fully-baked” releases of HDF5 1.10. One of the issues with those releases is exactly the issue you brought up: one couldn’t distinguish between the features that were LATEST in 1.8.* and the features that are LATEST in 1.10.*.

The issue was addressed only in HDF5 1.10.2. We discussed it in our Blog and for more information referred our users to the design document.

We understand the importance of ABI compatibility and are putting in place a new process to avoid ABI issues mentioned on this FORUM.

Thank you and please continue your excellent reporting!