blob: 9b3b0118ea02a63f64a9f17dfe0a212dd0273cb4 [file] [log] [blame]
Soby Mathew6325be52020-06-17 13:58:51 +01001Release Cadence and Process
2===========================
3
4Project Release Cadence
5-----------------------
6
Anton Komlev731aa572021-11-03 12:31:19 +00007The project aims to do a release once every 6 months around April and November
Anton Komlev3356ba32022-03-31 22:02:11 +01008time and are listed in the :ref:`releases/index:Future release plans`.
Anton Komlev731aa572021-11-03 12:31:19 +00009The releases are to be performed and tagged on a dedicated release branch.
10The release process is initiated by an announcement in
11`TF-M mailing list <https://lists.trustedfirmware.org/mailman/listinfo/tf-m>`_
12and followed by the creation of a release branch.
13Normal development on the main branch is not blocked and can be continued.
14The testing will be performed on release candidates and depending on
15issues found, additional candidates may be created to fix and retest the issues.
Soby Mathew6325be52020-06-17 13:58:51 +010016
Anton Komlev3356ba32022-03-31 22:02:11 +010017:doc:`The Platform owners </contributing/maintainers>` are expected to
Anton Komlev731aa572021-11-03 12:31:19 +000018verify their platforms and confirm the correct operations or provide fixes
19in a timely manner to include in the release. The release notes will list
20all verified platforms. The platforms in Trusted Firmware OpenCI is
21automatically tested and any issues found shall be fixed.
Soby Mathew6325be52020-06-17 13:58:51 +010022
Anton Komlev731aa572021-11-03 12:31:19 +000023After the final tag, the changes from the release branch will be back ported
24to main branch.
Soby Mathew6325be52020-06-17 13:58:51 +010025
Anton Komlev731aa572021-11-03 12:31:19 +000026.. uml::
27
28 @startuml
29 concise "main branch" as main
30 concise "release branch v1.1.x" as rel1
31 concise "release branch v1.2.x" as rel2
32
33 @main
34 -3 is development
35 @0 <-> @8 : release cadence: ~6 months
36
37 @rel1
38 0 is rc1
39 main -> rel1 : start
40 +1 is rc2
41 +1 is v1.1.0
42 +1 is {-}
43 rel1 -> main : back port
44 +1 is v1.1.1 #pink
45 +1 is {-}
46 rel1 -> main : cherry-pick
47 +3 is {hidden}
48
49 @rel2
50 8 is rc1
51 main -> rel2 : start
52 +1 is v1.2.0
53 +1 is {-}
54
55 rel2 -> main : back port
56
57 @0 <-> @3 : release process
58 @4 <-> @5 : hotfix
59
60 @enduml
Soby Mathew6325be52020-06-17 13:58:51 +010061
62Although this document specifies the release cadence, this does not preclude
63an adhoc release for specific project requirements.
64
Minos Galanakis3568bea2020-11-16 20:15:48 +000065Release Version Scheme
66----------------------
67
68Trusted Firmware-M uses a semantic versioning scheme. A version number is
69compiled as a dot separated set of numbers:
70
71**TF-Mv<MAJOR>.<MINOR>.<HOTFIX>**
72
73- <MAJOR>: Major release version for significant feature and API changes.
74- <MINOR>: Minor release version for incremental features and API changes.
75- <HOTFIX>: Used only for backporting **critical bug fix/security patches**.
76
Soby Mathew6325be52020-06-17 13:58:51 +010077--------------
78
79*Copyright (c) 2020, Arm Limited. All rights reserved.*