mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-21 01:04:10 +08:00
95ca8d543f
Added comment about rewinding the version number to 1.0 for the initial release.
138 lines
5.4 KiB
HTML
138 lines
5.4 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<title>Version Numbers</title>
|
|
</head>
|
|
|
|
<body>
|
|
<h1>Version Numbers</h1>
|
|
|
|
<h2>1. Introduction</h2>
|
|
|
|
<p>The HDF5 version number is a set of three integer values
|
|
written as either <code>hdf5-1.2.3</code> or <code>hdf5 version
|
|
1.2 release 3</code>.
|
|
|
|
<p>The <code>5</code> 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.
|
|
|
|
<p>The <code>1</code> is the <em>major version number</em> 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.
|
|
|
|
<p>The <code>2</code> is the <em>minor version number</em> 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.
|
|
|
|
<p>The <code>3</code> is the <em>release number</em>. 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).
|
|
|
|
<h2>2. Abbreviated Versions</h2>
|
|
|
|
<p>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.
|
|
|
|
<h2>3. Special Versions</h2>
|
|
|
|
<p>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.
|
|
|
|
<p>Version 1.0.23 was released mid-July as a second alpha
|
|
version.
|
|
|
|
<p>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.
|
|
|
|
<p>After the beta release we rolled back the version number so the
|
|
first release is version 1.0 and development will continue on
|
|
version 1.1. We felt that an initial version of 1.0 was more
|
|
important than continuing to increment the pre-release version
|
|
numbers.
|
|
|
|
<h2>4. Public versus Development</h2>
|
|
|
|
<p>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. This also allows
|
|
us to release bug fixes expediently without waiting for the
|
|
development version to reach a stable state.
|
|
|
|
<p>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.
|
|
|
|
<p>
|
|
<center>
|
|
<img alt="Version Example" src="version.gif">
|
|
<br><b>Fig 1: Version Example</b>
|
|
</center>
|
|
|
|
<h2>5. Version Support from the Library</h2>
|
|
|
|
<p>The library provides a set of macros and functions to query and
|
|
check version numbers.
|
|
|
|
<dl>
|
|
<dt><code>H5_VERS_MAJOR</code>
|
|
<dt><code>H5_VERS_MINOR</code>
|
|
<dt><code>H5_VERS_RELEASE</code>
|
|
<dd>These preprocessor constants are defined in the public
|
|
include file and determine the version of the include files.
|
|
|
|
<br><br>
|
|
<dt><code>herr_t H5get_libversion (unsigned *<em>majnum</em>, unsigned
|
|
*<em>minnum</em>, unsigned *<em>relnum</em>)</code>
|
|
<dd>This function returns through its arguments the version
|
|
numbers for the library to which the application is linked.
|
|
|
|
<br><br>
|
|
<dt><code>void H5check(void)</code>
|
|
<dd>This is a macro that verifies that the version number of the
|
|
HDF5 include file used to compile the application matches the
|
|
version number of the library to which the application is
|
|
linked. This check occurs automatically when the first HDF5
|
|
file is created or opened and is important because a mismatch
|
|
between the include files and the library is likely to result
|
|
in corrupted data and/or segmentation faults. If a mismatch
|
|
is detected the library issues an error message on the
|
|
standard error stream and aborts with a core dump.
|
|
|
|
<br><br>
|
|
<dt><code>herr_t H5check_version (unsigned <em>majnum</em>,
|
|
unsigned <em>minnum</em>, unsigned <em>relnum</em>)</code>
|
|
<dd>This function is called by the <code>H5check()</code> macro
|
|
with the include file version constants. The function
|
|
compares its arguments to the result returned by
|
|
<code>H5get_libversion()</code> and if a mismatch is detected prints
|
|
an error message on the standard error stream and aborts.
|
|
</dl>
|
|
|
|
<hr>
|
|
<address><a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a></address>
|
|
<br>
|
|
|
|
<!-- Created: Wed Apr 22 11:24:40 EDT 1998 -->
|
|
<!-- hhmts start -->
|
|
Last modified: Fri Oct 30 10:32:50 EST 1998
|
|
<!-- hhmts end -->
|
|
|
|
</body>
|
|
</html>
|