Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 1 | Versioning policy |
| 2 | ================== |
| 3 | |
| 4 | This document captures information about the version identifier used by the |
| 5 | project. It tells the meaning of each part, where the version information is |
| 6 | captured and how it is managed. |
| 7 | |
Gyorgy Szing | a6c95df | 2022-11-25 11:15:51 +0100 | [diff] [blame] | 8 | Format of version IDs |
| 9 | --------------------- |
Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 10 | |
| 11 | The version identifier identifies the feature set supported by a specific |
| 12 | release, and captures compatibility information to other releases. |
| 13 | |
| 14 | This project uses "Semantic Versioning", for details please refer to |SEMVER|. |
| 15 | |
Gyorgy Szing | a6c95df | 2022-11-25 11:15:51 +0100 | [diff] [blame] | 16 | The version number is constructed from three numbers, and an optional |
| 17 | pre-release identifier. The `MAJOR` number is changed when incompatible API |
| 18 | changes are introduced, the `MINOR` version when new functionality is added in a |
| 19 | backward compatible manner, and the `PATCH` version when backwards compatible |
| 20 | bug fixes are added. The pre-release identifier is appended after the numbers |
| 21 | separated with a ``-`` and can be the string ``alpha`` or ``beta``. |
Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 22 | |
Gyorgy Szing | a6c95df | 2022-11-25 11:15:51 +0100 | [diff] [blame] | 23 | Each release will get a unique version id assigned. When a release is made, the |
Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 24 | version number will get incremented in accordance with the compatibility rules |
| 25 | mentioned above. |
| 26 | |
Gyorgy Szing | a6c95df | 2022-11-25 11:15:51 +0100 | [diff] [blame] | 27 | Version ID hierarchy |
| 28 | -------------------- |
| 29 | |
| 30 | The project hosts multiple components which can be used separately and thus need |
| 31 | compatibility information expressed independently. Such components get a |
Gabor Toth | 841b0b6 | 2023-05-22 10:28:29 +0200 | [diff] [blame] | 32 | dedicated version ID. Examples are :ref:`libs-libsp` :ref:`libs-libts` and |
Gabor Toth | ee2e7cb | 2024-10-07 17:02:56 +0200 | [diff] [blame] | 33 | :ref:`libs-libpsats`. |
Gyorgy Szing | a6c95df | 2022-11-25 11:15:51 +0100 | [diff] [blame] | 34 | |
| 35 | Components are never released standalone but only part of a TS release. In that |
| 36 | sense a set of independent component version IDs are assigned to a TS release ID. |
Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 37 | |
| 38 | Storage and format |
| 39 | ------------------ |
| 40 | |
| 41 | The 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 | |
Gyorgy Szing | a6c95df | 2022-11-25 11:15:51 +0100 | [diff] [blame] | 55 | *Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.* |
Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 56 | |
| 57 | SPDX-License-Identifier: BSD-3-Clause |