Lustre versioning ================= This document describes versioning of source and binaries for Lustre. Versions ======== The Lustre build version is set in lustre/autoconf/lustre-version.ac file with the LUSTRE_MAJOR, LUSTRE_MINOR, LUSTRE_PATCH, and LUSTRE_FIX fields. These are used to generate the LUSTRE_VERSION string and the LUSTRE_VERSION_CODE in lustre/include/lustre_ver.h. LUSTRE_VERSION_CODE can be used in conjunction with OBD_OCD_VERSION() to conditionally enable functionality by Lustre version, or to mark some part of code obsolete when a future version of Lustre is built. It is preferable to mark code obsolete starting at the x.y.50 build so that it is removed early in the development cycle. Packages ======== Major releases should get a 3-digit version x.y.0, and if a maintenance release is needed it will increment the 3rd digit. During development, versions start at x.y.50 and increment toward the x.(y+1).0 release. Release candidate versions must have the proper build version for the release, but are tagged in Git as v2_1_0_RC1. Final release versions are tagged in Git as both v2_1_0_0 and 2.1.0. Usage: ------ New numbers are used as follows: 1. major: - increased when major new functionality becomes available 2. minor: - for each new release with new functionality 3. patch: - for a stable maintenance release or development snapshot 4. test: - when developers feel it is time to exchange a named version What will run, what won't ? --------------------------- 1. If the test level is non-zero, i.e. there are 4 digits in the version, no guarantees of any kind are made. 2. For three digit releases/tags the code should perform according to the announcement.