# h5cube File Specifications¶

This page collates all existing versions of the h5cube file specification for convenient access. The versioning scheme used here follows the spirit of Semantic Versioning: $$\newcommand{mtt}[1]{\texttt{#1}}$$

• Specification version numbers will be of the form $$\mtt{vx.y.z}$$, where $$\mtt x$$, $$\mtt{y}$$, and $$\mtt{z}$$ indicate major, minor, and patch categories of changes. If $$\mtt z$$ is not present, it implicitly holds a value of zero.
• An increment in the patch version level indicates minor editorial fix(es), such as correcting typos or introducing clarification(s) that do not affect the semantic content of the specification.
• An increment in the minor version level indicates that new field(s) or other semantic content have been added to the specification, but existing fields/content are unchanged.
• An increment in the major version level indicates that existing field(s)/content have been removed/changed. New field(s)/content may also have been added.

Based upon the above, it is expected that applications built against the specific version $$\mtt{vX.Y.Z}$$ should be compatible with the following versions $$\mtt{vx.y.z}$$:

• $$\mtt x = \mtt X$$, $$\mtt y = \mtt Y$$, $$\mtt z \geq \mtt Z$$
• $$\mtt x = \mtt X$$, $$\mtt y > \mtt Y$$, any $$\mtt z$$

Applications may or may not be compatible with versions $$\mtt x > \mtt X$$, depending on the particular changes introduced with that major version increment.