The HDF5 version number is a set of three integer values
written as either hdf5-1.2.3
or hdf5 version
1.2 release 3
.
The 5
is part of the library name and will only
change if the entire file format and library are redesigned
similar in scope to the changes between HDF4 and HDF5.
The 1
is the major version number and
changes when there is an extensive change to the file format or
library API. Such a change will likely require files to be
translated and applications to be modified. This number is not
expected to change frequently.
The 2
is the minor version number and is
incremented by each public release that presents new features.
Even numbers are reserved for stable public versions of the
library while odd numbers are reserved for developement
versions. See the diagram below for examples.
The 3
is the release number. For public
versions of the library, the release number is incremented each
time a bug is fixed and the fix is made available to the public.
For development versions, the release number is incremented more
often (perhaps almost daily).
It's often convenient to drop the release number when referring to a version of the library, like saying version 1.2 of HDF5. The release number can be any value in this case.
Version 1.0.0 was released for alpha testing the first week of March, 1998. The developement version number was incremented to 1.0.1 and remained constant until the the last week of April, when the release number started to increase and development versions were made available to people outside the core HDF5 development team.
Version 1.0.23 was released mid-July as a second alpha version.
Version 1.1.0 will be the first official beta release but the 1.1 branch will also serve as a development branch since we're not concerned about providing bug fixes separate from normal development for the beta version.
Version 1.2 will be the first official HDF5 version. The version tree will fork at this point with public bug fixes provided on the 1.2 branch and development will continue on the 1.3 branch.
The motivation for separate public and development versions is that the public version will receive only bug fixes while the development version will receive new features.
Eventually, the development version will near completion and a new development branch will fork while the original one enters a feature freeze state. When the original development branch is ready for release the minor version number will be incremented to an even value.
The library provides a set of macros and functions to query and check version numbers.
H5_VERS_MAJOR
H5_VERS_MINOR
H5_VERS_RELEASE
herr_t H5get_libversion (unsigned *majnum, unsigned
*minnum, unsigned *relnum)
void H5check(void)
herr_t H5check_version (unsigned majnum,
unsigned minnum, unsigned relnum)
H5check()
macro
with the include file version constants. The function
compares its arguments to the result returned by
H5get_libversion()
and if a mismatch is detected prints
an error message on the standard error stream and aborts.