1Versioning policy 2================== 3 4This document captures information about the version identifier used by the 5project. It tells the meaning of each part, where the version information is 6captured and how it is managed. 7 8Format of version IDs 9--------------------- 10 11The version identifier identifies the feature set supported by a specific 12release, and captures compatibility information to other releases. 13 14This project uses "Semantic Versioning", for details please refer to |SEMVER|. 15 16The version number is constructed from three numbers, and an optional 17pre-release identifier. The `MAJOR` number is changed when incompatible API 18changes are introduced, the `MINOR` version when new functionality is added in a 19backward compatible manner, and the `PATCH` version when backwards compatible 20bug fixes are added. The pre-release identifier is appended after the numbers 21separated with a ``-`` and can be the string ``alpha`` or ``beta``. 22 23Each release will get a unique version id assigned. When a release is made, the 24version number will get incremented in accordance with the compatibility rules 25mentioned above. 26 27Version ID hierarchy 28-------------------- 29 30The project hosts multiple components which can be used separately and thus need 31compatibility information expressed independently. Such components get a 32dedicated version ID. Examples are :ref:`libs-libsp` :ref:`libs-libts` and 33:ref:`libs-libpsats`. 34 35Components are never released standalone but only part of a TS release. In that 36sense a set of independent component version IDs are assigned to a TS release ID. 37 38Storage and format 39------------------ 40 41The version number of each release will be stored at two locations: 42 #. In a tag of the version control system in the form of "vX.Y.Z" where X Y 43 and Z are the major, minor and patch version numbers. 44 #. In a file called version.txt. This file uses ASCII encoding and will 45 contain the version number as "X.Y.Z" where X Y and Z are the major, 46 minor and patch version numbers. 47 48.. note:: The version id is independent from version identifiers of the 49 versioning system used to store the |TS| (i.e. git). 50 51-------------- 52 53.. _`Semantic Versioning`: https://semver.org/spec/v2.0.0.html 54 55*Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.* 56 57SPDX-License-Identifier: BSD-3-Clause 58