xref: /rk3399_ARM-atf/docs/about/lts.rst (revision faa8c65675380ec09c1caa2e03a640cfa62f4ebb)
1d39c2f38SGovindraj RajaLTS - Long-Term Support
2d39c2f38SGovindraj Raja=======================
3d39c2f38SGovindraj Raja
4d39c2f38SGovindraj Raja.. table:: Table 1: Document History
5d39c2f38SGovindraj Raja
6d39c2f38SGovindraj Raja  +-------------+--------------------+-------------------------------------------------------+
7d39c2f38SGovindraj Raja  | Date        | Author             | Description                                           |
8d39c2f38SGovindraj Raja  +=============+====================+=======================================================+
9d39c2f38SGovindraj Raja  | 2022-07-20  | Okash Khawaja,     | Initial draft.                                        |
10d39c2f38SGovindraj Raja  |             | Varun Wadekar      |                                                       |
11d39c2f38SGovindraj Raja  +-------------+--------------------+-------------------------------------------------------+
12d39c2f38SGovindraj Raja  | 2022-07-21  | Varun Wadekar      | Refine the Maintainership guidelines and planning     |
13d39c2f38SGovindraj Raja  |             |                    | sections. Introduce a new section documenting a day   |
14d39c2f38SGovindraj Raja  |             |                    | in the life of a LTS branch maintainer                |
15d39c2f38SGovindraj Raja  +-------------+--------------------+-------------------------------------------------------+
16d39c2f38SGovindraj Raja  | 2022-08-05  | Okash Khawaja,     | Merge two drafts (draft 1 and 2), address comments    |
17d39c2f38SGovindraj Raja  |             | Varun Wadekar      | made by both authors, cosmetic changes to the content |
18d39c2f38SGovindraj Raja  |             |                    | all over the document                                 |
19d39c2f38SGovindraj Raja  +-------------+--------------------+-------------------------------------------------------+
20d39c2f38SGovindraj Raja  | 2022-08-05  | Okash Khawaja      | Add note about testing support available from TF.org  |
21d39c2f38SGovindraj Raja  +-------------+--------------------+-------------------------------------------------------+
22d39c2f38SGovindraj Raja  | 2022-08-05  | Varun Wadekar      | Changed the “Future plans” section to “FAQ” and       |
23d39c2f38SGovindraj Raja  |             |                    | answered some of the questions with feedback from     |
24d39c2f38SGovindraj Raja  |             |                    | the community.                                        |
25d39c2f38SGovindraj Raja  +-------------+--------------------+-------------------------------------------------------+
26d39c2f38SGovindraj Raja  | 2025-01-07  | Govindraj Raja     | Convert from pdf to rst.                              |
27d39c2f38SGovindraj Raja  +-------------+--------------------+-------------------------------------------------------+
28*faa8c656SGovindraj Raja  | 2025-01-07  | Govindraj Raja     | Updates based on learnings and suggestions.           |
29*faa8c656SGovindraj Raja  +-------------+--------------------+-------------------------------------------------------+
30d39c2f38SGovindraj Raja
31d39c2f38SGovindraj RajaThis document proposes a plan for long-term support (LTS) of the |TF-A| project.
32d39c2f38SGovindraj Raja
33d39c2f38SGovindraj RajaWhy is LTS required?
34d39c2f38SGovindraj Raja--------------------
35d39c2f38SGovindraj RajaLTS is needed for commercial reasons. More specifically, on the device side,
36d39c2f38SGovindraj Rajawhen a product is released, the companies have to support that in-market product
37d39c2f38SGovindraj Rajasuch that the amount of changes to the firmware are kept to a minimum to avoid
38d39c2f38SGovindraj Rajathe risk of regression. At the same time the companies don't want to exclude
39d39c2f38SGovindraj Rajacritical patches such as those for security advisories. Similarly on the server side,
40d39c2f38SGovindraj Rajacompanies want to minimize the churn when deploying fixes during incident
41d39c2f38SGovindraj Rajaresponse, e.g. due to critical security bugs.
42d39c2f38SGovindraj Raja
43*faa8c656SGovindraj RajaAlso, the European Cyber Resilience Act (CRA) is a new EU legislation that mandates
44*faa8c656SGovindraj Rajacybersecurity standards for products containing digital elements, aiming to
45*faa8c656SGovindraj Rajaprotect consumers and businesses by ensuring manufacturers build security into
46*faa8c656SGovindraj Rajatheir hardware and software throughout their lifecycle, including automatic
47*faa8c656SGovindraj Rajaupdates and incident reporting; essentially requiring all digital products
48*faa8c656SGovindraj Rajasold in the EU to meet specific cybersecurity requirements.
49*faa8c656SGovindraj Raja
50*faa8c656SGovindraj RajaThis means that companies have to maintain and backport critical updates to
51d39c2f38SGovindraj Rajaold branches internally. As this effort is duplicated across different companies
52d39c2f38SGovindraj Rajausing TF-A, it makes sense to factor out this effort into a community-wide LTS.
53d39c2f38SGovindraj Raja
54d39c2f38SGovindraj RajaWhat does LTS mean for TF-A?
55d39c2f38SGovindraj Raja----------------------------
56d39c2f38SGovindraj RajaIn this section we will define exactly what constitutes LTS for TF-A.
57d39c2f38SGovindraj RajaSpecifically, we will define the following characteristics:
58d39c2f38SGovindraj Raja
59d39c2f38SGovindraj Raja- criteria for selecting patches which will be backported to LTS branches
60d39c2f38SGovindraj Raja- lifetime and frequency of LTS branches
61d39c2f38SGovindraj Raja
62d39c2f38SGovindraj Raja**Criteria**
63d39c2f38SGovindraj Raja
64d39c2f38SGovindraj RajaWe must have an objective criterion for selecting patches to be backported to
65d39c2f38SGovindraj RajaLTS branches. This will make maintenance easy because:
66d39c2f38SGovindraj Raja
67d39c2f38SGovindraj Rajaa. there will be less -- ideally no -- discussion when selecting patches to backport
68d39c2f38SGovindraj Rajab. large parts of the process can be automated
69d39c2f38SGovindraj Raja
70d39c2f38SGovindraj RajaBelow is the criteria
71d39c2f38SGovindraj Raja
72d39c2f38SGovindraj Raja#. No features will be backported.
73d39c2f38SGovindraj Raja#. Security advisories: Any patch that makes it into :ref:`Security Advisories`
74d39c2f38SGovindraj Raja   is automatically selected for back porting. This includes patches to external
75d39c2f38SGovindraj Raja   components too, e.g. libfdt.
76d39c2f38SGovindraj Raja#. Workarounds for CPU and other ARM IP errata
77d39c2f38SGovindraj Raja#. Workarounds for non-ARM IP errata, e.g. TI UART
78d39c2f38SGovindraj Raja#. Fixes for platform bugs. These patches must not modify any code outside of
79d39c2f38SGovindraj Raja   the specific platform that the fix applies to.
80d39c2f38SGovindraj Raja#. Patches can only be backported from the master branch. In other words, the
81d39c2f38SGovindraj Raja   master branch will be a superset of all the changes in any LTS branch.
82d39c2f38SGovindraj Raja
83d39c2f38SGovindraj Raja**Lifetime and frequency**
84d39c2f38SGovindraj Raja
85d39c2f38SGovindraj RajaThis section approaches three questions: for how long should an LTS release be
86d39c2f38SGovindraj Rajasupported, how frequently should LTS releases be made and at which time(s) of
87d39c2f38SGovindraj Rajathe year should the releases be made.
88d39c2f38SGovindraj Raja
89d39c2f38SGovindraj Raja1. For how long should an LTS release be supported?
90d39c2f38SGovindraj Raja
91*faa8c656SGovindraj RajaThe Linux kernel maintainers supports an LTS branch for 2 years. Since firmware
92*faa8c656SGovindraj Rajatends to have less churn and longer lifetime than a HLOS, TF-A is trying to
93*faa8c656SGovindraj Rajasupport at-least 7 years for its LTS. Initially it was intended to support
94*faa8c656SGovindraj Raja5 years but there has been no objections to extend LTS support to 7 years.
95*faa8c656SGovindraj RajaThere are many challenges that may influence the 7 year support from CI
96*faa8c656SGovindraj Rajainfrastructure to availability of maintainers.
97d39c2f38SGovindraj Raja
98d39c2f38SGovindraj Raja2. How frequently should LTS releases be made?
99d39c2f38SGovindraj Raja
100d39c2f38SGovindraj RajaGiven that many products that have a release cycle, have a yearly release
101d39c2f38SGovindraj Rajacycle, it would make sense to have yearly TF-A releases.
102d39c2f38SGovindraj Raja
103d39c2f38SGovindraj Raja3. Which time(s) of the year should the releases be made?
104d39c2f38SGovindraj Raja
105d39c2f38SGovindraj RajaTF-A releases are cut twice a year: May and November. Basing LTS release
106d39c2f38SGovindraj Rajaon the November TF-A release has a few benefits. First, it aligns with Linux
107d39c2f38SGovindraj RajaLTS releases which happen towards the end of each year. Second, it aligns
108d39c2f38SGovindraj Rajawith Android releases which tend to fall in Q3 each year. Since product
109d39c2f38SGovindraj Rajareleases are timed with Android release, this gives enough time to harden
110d39c2f38SGovindraj Rajathe TF-A LTS release during development so that it's ready for launch in
111d39c2f38SGovindraj RajaQ3 following year. On the other hand, if the May release of TF-A is chosen as
112d39c2f38SGovindraj Rajathe basis for LTS then developers will have little time -- about a month,
113d39c2f38SGovindraj Rajataking into account the test-and-debug phase before LTS is cut (see below) --
114d39c2f38SGovindraj Rajabefore Android release.
115d39c2f38SGovindraj Raja
116d39c2f38SGovindraj RajaTo summarize, there will be one LTS release per year. It will be supported for
117d39c2f38SGovindraj Raja5 years and we can discuss extending it to 7 years later on. The LTS release
118d39c2f38SGovindraj Rajawill be based on the November release of TF-A.
119d39c2f38SGovindraj Raja
120d39c2f38SGovindraj Raja**Testing Criteria**
121d39c2f38SGovindraj Raja
122d39c2f38SGovindraj RajaEvery patch merged to the LTS branch will complete the following tests before
123d39c2f38SGovindraj Rajagetting approved.
124d39c2f38SGovindraj Raja
125d39c2f38SGovindraj Raja#. TFTF tests currently running in the testing farm
126d39c2f38SGovindraj Raja#. CI/CD static analysis scans
127d39c2f38SGovindraj Raja#. Coverity scans
128d39c2f38SGovindraj Raja#. Platform tests
129d39c2f38SGovindraj Raja
130d39c2f38SGovindraj RajaPlatforms that are not maintained upstream will undergo testing downstream in a
131d39c2f38SGovindraj Rajapre-defined window. The platform maintainer will complete the testing and provide
132d39c2f38SGovindraj Rajaa verified score on the patch once testing is completed.
133d39c2f38SGovindraj Raja
134d39c2f38SGovindraj Raja** A note about test coverage from TF.org **
135d39c2f38SGovindraj Raja
136d39c2f38SGovindraj RajaCurrently TF.org maintains a CI system to run TF-A automated tests on a
137d39c2f38SGovindraj Rajaselection of HW boards donated by TF.org members (a benefit reserved to project
138d39c2f38SGovindraj Rajamembers, see the project charter for more details). This automated test coverage
139d39c2f38SGovindraj Rajawill be extended to cover testing for LTS as well for boards that are part of
140d39c2f38SGovindraj Rajathe CI system.
141d39c2f38SGovindraj Raja
142*faa8c656SGovindraj Raja**TFTF Branching**
143d39c2f38SGovindraj Raja
144d39c2f38SGovindraj RajaA note about testing here. After a patch is backported to an LTS branch, that
145d39c2f38SGovindraj Rajabranch will need to be regression tested. Since TFTF moves forward with latest
146d39c2f38SGovindraj RajaTF-A changes, newer TFTF tests may not apply to old LTS branches. Therefore
147d39c2f38SGovindraj RajaTFTF will also need to be branched, in-sync with TF-A LTS branches. In other
148d39c2f38SGovindraj Rajawords, there will be one TFTF LTS branch corresponding to each TF-A LTS branch.
149d39c2f38SGovindraj RajaThe TFTF LTS branch will be used to regression test the corresponding TF-A LTS
150d39c2f38SGovindraj Rajabranch.
151d39c2f38SGovindraj Raja
152d39c2f38SGovindraj RajaAs we work with the LTS branch of TFTF, we might also need fixes for TFTF
153d39c2f38SGovindraj Rajaitself to be ported to LTS. However, decision-making about those patches need
154d39c2f38SGovindraj Rajanot be as stringent as for TF-A.
155d39c2f38SGovindraj Raja
156*faa8c656SGovindraj Raja**CI Scripts**
157*faa8c656SGovindraj Raja
158*faa8c656SGovindraj RajaCI Scripts moves forward with TF-A changes, since we need to checkout the
159*faa8c656SGovindraj Rajacorresponding release version of CI scripts for LTS.
160*faa8c656SGovindraj Raja
161*faa8c656SGovindraj RajaThough we are unlikely to update CI scripts, but time to time migrating a newer
162*faa8c656SGovindraj RajaFVP version or deprecating certain tests due to unavailability of platforms may
163*faa8c656SGovindraj Rajainfluence updates to CI Scripts.
164*faa8c656SGovindraj Raja
165*faa8c656SGovindraj Raja**Hafnium / OP-TEE**
166*faa8c656SGovindraj Raja
167*faa8c656SGovindraj RajaBoth Hafnium and OP-TEE move forward with TF-A changes so we need to freeze their
168*faa8c656SGovindraj Rajacorresponding version from TF-A release for a LTS.
169*faa8c656SGovindraj Raja
170*faa8c656SGovindraj Raja**MbedTLS**
171*faa8c656SGovindraj Raja
172*faa8c656SGovindraj RajaUpdates to the version of MbedTLS used with LTS will happen time to time based on
173*faa8c656SGovindraj Rajamaintainers call to update them or not.
174*faa8c656SGovindraj Raja
175d39c2f38SGovindraj RajaRelease details
176d39c2f38SGovindraj Raja---------------
177d39c2f38SGovindraj RajaThis section goes into details of what the LTS release process will look like.
178d39c2f38SGovindraj Raja
179d39c2f38SGovindraj Raja
180d39c2f38SGovindraj Raja**Test-and-debug period**
181d39c2f38SGovindraj Raja
182d39c2f38SGovindraj RajaSince the LTS branch will be used in product releases, it is expected that more
183d39c2f38SGovindraj Rajatesting and debugging will be done on the November release of TF-A. Therefore
184d39c2f38SGovindraj Rajait would make sense to leave at least a month after the November release and
185d39c2f38SGovindraj Rajathen cut the LTS branch. We recommend two months, given that one of the months
186d39c2f38SGovindraj Rajais December which tends to be slower due to holidays. So, an end-of-November
187d39c2f38SGovindraj RajaTF-A release would result in a beginning-of-February LTS release. Note that
188d39c2f38SGovindraj Rajathe LTS branch will be created at the same time as the TF-A November release,
189d39c2f38SGovindraj Rajabut it will be officially released at the end of January or early February.
190d39c2f38SGovindraj RajaGoing forward we should strive to make the period smaller and smaller until
191d39c2f38SGovindraj Rajaideally it coincides with TF-A November release which means that our test
192d39c2f38SGovindraj Rajaand CI/CD infra is good enough to allow that to happen.
193d39c2f38SGovindraj Raja
194d39c2f38SGovindraj Raja**Example timeline**
195d39c2f38SGovindraj Raja
196d39c2f38SGovindraj RajaBelow is an example timeline starting from the November 2022 release of TF-A.
197d39c2f38SGovindraj Raja
198d39c2f38SGovindraj Raja.. image:: ../resources/diagrams/lts-timeline-example.png
199d39c2f38SGovindraj Raja
200d39c2f38SGovindraj Raja- Nov 2022: TF-A 2.8 is released towards the end of Nov, 2022. Not shown in the
201d39c2f38SGovindraj Raja  diagram, at the same time LTS release candidate branch is made which is based
202d39c2f38SGovindraj Raja  on TF-A 2.8. This means new features going in 2.8 won’t go in the LTS branch.
203d39c2f38SGovindraj Raja  We can call it `LTS 2.8-rc`.
204d39c2f38SGovindraj Raja- Feb 2023: After testing and debugging LTS 2.8-rc for a couple of months,
205d39c2f38SGovindraj Raja  LTS 2.8.0 is officially released in early Feb 2023.
206d39c2f38SGovindraj Raja- May 2023: TF-A 2.9 is released but since this is not an LTS branch it doesn’t
207d39c2f38SGovindraj Raja  affect LTS.
208d39c2f38SGovindraj Raja- Somewhere between May and Nov of 2023: A security advisory comes up and the
209d39c2f38SGovindraj Raja  related patches go into TF-A master branch. Since these patches fall under
210d39c2f38SGovindraj Raja  LTS criteria, they are backported to LTS 2.8.0 which results in LTS 2.8.1
211d39c2f38SGovindraj Raja  being released. Note that here we don’t allow the extra testing and debugging
212d39c2f38SGovindraj Raja  time that we had between Nov 2022 and early Feb 2023. This is because there
213d39c2f38SGovindraj Raja  isn’t as much to test and debug as an annual LTS release has. Also companies
214d39c2f38SGovindraj Raja  might want to deploy critical patches soon.
215d39c2f38SGovindraj Raja- Nov 2023: TF-A 2.10 is released. Not shown in the diagram, at the same time
216d39c2f38SGovindraj Raja  LTS 2.10-rc is made. It’s tested by partners for a couple of months.
217d39c2f38SGovindraj Raja- Feb 2024: LTS 2.10.1 is released in early Feb. Now there are two LTS
218d39c2f38SGovindraj Raja  branches: 2.8.1 and 2.10.1.
219d39c2f38SGovindraj Raja
220d39c2f38SGovindraj RajaNote that TFTF will follow similar branching model as TF-A LTS, i.e. there will
221d39c2f38SGovindraj Rajabe TFTF LTS 2.8.0 in Feb 2023, 2.8.1 (if new TFTF tests need to be added for
222d39c2f38SGovindraj Rajathe security advisory) when there is TF-A LTS 2.8.1 and so on.
223d39c2f38SGovindraj Raja
224d39c2f38SGovindraj RajaMaintainership
225d39c2f38SGovindraj Raja--------------
226d39c2f38SGovindraj Raja
227d39c2f38SGovindraj Raja**Guidelines & Responsibilities**
228d39c2f38SGovindraj Raja
229d39c2f38SGovindraj Raja#. Maintainers shall be impartial and strive to work for the benefit of
230d39c2f38SGovindraj Raja   the community
231d39c2f38SGovindraj Raja#. Objective and well-defined merge criteria to avoid confusion and discussions
232d39c2f38SGovindraj Raja   at random points in time when there is a "candidate" patch
233d39c2f38SGovindraj Raja#. The maintainers shall explain the lifecycle of a patch to the community,
234d39c2f38SGovindraj Raja   with a detailed description of the maximum time spent in each step
235d39c2f38SGovindraj Raja#. Automate, automate, automate
236d39c2f38SGovindraj Raja#. Reviewers should not focus too much on "what" and instead focus on "how"
237d39c2f38SGovindraj Raja#. Constantly refine the merge criteria to include more partner use cases
238d39c2f38SGovindraj Raja#. Ensure that all candidate patches flow from the main branch to all LTS branches
239*faa8c656SGovindraj Raja#. Maintainers collaborate in the following discord channel -
240*faa8c656SGovindraj Raja   https://discord.com/channels/1106321706588577904/1162029539761852436
241*faa8c656SGovindraj Raja#. Maintainers discuss and provide updates about upcoming LTS releases in the above
242*faa8c656SGovindraj Raja   mentioned discord channel.
243d39c2f38SGovindraj Raja
244d39c2f38SGovindraj Raja**Options**
245d39c2f38SGovindraj Raja
246d39c2f38SGovindraj RajaThese are some options in the order of preference.
247d39c2f38SGovindraj Raja
248d39c2f38SGovindraj Raja#. Current set of :ref:`lts maintainers` from tf.org(or hired contractor) take care of the LTS
249d39c2f38SGovindraj Raja#. From the community, create a set of maintainers focused solely on the LTS branches
250d39c2f38SGovindraj Raja
251d39c2f38SGovindraj RajaA day in the life of a maintainer
252d39c2f38SGovindraj Raja*********************************
253d39c2f38SGovindraj RajaThis section documents the daily tasks that a maintainer might perform to
254d39c2f38SGovindraj Rajasupport the LTS program. It is expected that a maintainer follows clearly laid
255d39c2f38SGovindraj Rajadown steps and does not have to make policy level decisions for merge, testing,
256d39c2f38SGovindraj Rajaor candidate patch selection.
257d39c2f38SGovindraj Raja
258d39c2f38SGovindraj Raja#. Monitor the main branch to identify candidate patches for the LTS branches
259*faa8c656SGovindraj Raja#. Monitor emails from LTS triage report to choose patches that should be
260*faa8c656SGovindraj Raja   cherry-picked for LTS branches.
261*faa8c656SGovindraj Raja#. Cherry-pick agreed patches to LTS branches co-ordinate review process and Monitor
262*faa8c656SGovindraj Raja   CI results.
263d39c2f38SGovindraj Raja#. Monitor the mailing list for any LTS related issues
264d39c2f38SGovindraj Raja#. Propose or solicit patches to the main branch and tag them as candidates for LTS
265d39c2f38SGovindraj Raja
266d39c2f38SGovindraj RajaExecution Plan
267d39c2f38SGovindraj Raja**************
268d39c2f38SGovindraj RajaThis section lists the steps needed to put the LTS system in place. However,
269d39c2f38SGovindraj Rajato kick start LTS in Nov ‘22, only a few steps are needed. The rest can follow
270d39c2f38SGovindraj Rajain the background.
271d39c2f38SGovindraj Raja
272d39c2f38SGovindraj RajaInitial release steps
273d39c2f38SGovindraj Raja*********************
274d39c2f38SGovindraj Raja
275d39c2f38SGovindraj RajaThe following steps are necessary to kickstart the project and potentially
276d39c2f38SGovindraj Rajacreate the first LTS from the Nov’22 release.
277d39c2f38SGovindraj Raja
278d39c2f38SGovindraj Raja#. Create a TF-A LTS release-candidate branch and a TFTF LTS branch immediately
279d39c2f38SGovindraj Raja   after the Nov’22 release
280d39c2f38SGovindraj Raja#. Request all platform-owners to test and debug the RC branch
281d39c2f38SGovindraj Raja#. Gather feedback from the test and debug cycle
282d39c2f38SGovindraj Raja#. Mark the TF-A LTS branch ready by the end of January
283d39c2f38SGovindraj Raja#. Announce the official LTS release availability on the mailing lists
284d39c2f38SGovindraj Raja
285d39c2f38SGovindraj RajaLong term release plan
286d39c2f38SGovindraj Raja**********************
287d39c2f38SGovindraj RajaAbove will buy us time to then work on the rest of the execution plan which
288d39c2f38SGovindraj Rajais given below.
289d39c2f38SGovindraj Raja
290d39c2f38SGovindraj Raja#. The review criteria for LTS patches must be the same as TF-A patches
291d39c2f38SGovindraj Raja#. The maintainers shall publish the well-defined merge criteria to allow
292d39c2f38SGovindraj Raja   the community to choose candidate patches
293d39c2f38SGovindraj Raja#. The maintainers shall publish a well-defined test specification for any
294d39c2f38SGovindraj Raja   patch entering the LTS branch
295d39c2f38SGovindraj Raja
296d39c2f38SGovindraj Raja   a. Tests required to pass in the CI/CD flow
297d39c2f38SGovindraj Raja   b. Static analysis scans
298d39c2f38SGovindraj Raja   c. Coverity scans
299d39c2f38SGovindraj Raja
300d39c2f38SGovindraj Raja#. The maintainers shall publish a mechanism to choose candidate patches for
301d39c2f38SGovindraj Raja   the LTS branch
302d39c2f38SGovindraj Raja#. The maintainers shall publish a mechanism to report bugs `[1]`_ seen with
303d39c2f38SGovindraj Raja   an LTS branch
304d39c2f38SGovindraj Raja#. The maintainers shall publish a versioning mechanism for the LTS branch
305d39c2f38SGovindraj Raja
306*faa8c656SGovindraj Raja   a. Bump minor version for any “logical” `[2]`_ fix(es) that gets merged
307d39c2f38SGovindraj Raja
308d39c2f38SGovindraj Raja#. The CI/CD infrastructure shall provide test support for all “live” LTS
309d39c2f38SGovindraj Raja   branches at any given point in time
310d39c2f38SGovindraj Raja#. The CI/CD infrastructure shall provide means to
311d39c2f38SGovindraj Raja
312d39c2f38SGovindraj Raja   a. notify all maintainers that a patch is ready for review
313d39c2f38SGovindraj Raja   b. automatically cherry-pick a patch to a given LTS branch
314d39c2f38SGovindraj Raja   c. get it through the CI/CD testing flow
315*faa8c656SGovindraj Raja   d. gentle ping in LTS discord channel asking for reviews to ensure
316*faa8c656SGovindraj Raja      cherry-picks are merged.
317d39c2f38SGovindraj Raja
318d39c2f38SGovindraj RajaFAQ
319d39c2f38SGovindraj Raja***
320d39c2f38SGovindraj Raja
321d39c2f38SGovindraj RajaIn our discussions, in addition to the above points we also considered some
322d39c2f38SGovindraj Rajaquestions. They have been discussed on the mailing list too.
323d39c2f38SGovindraj Raja
324d39c2f38SGovindraj Raja| Q. What happens when a bug fix applies just to a LTS branch and not to the
325d39c2f38SGovindraj Raja     master branch?
326d39c2f38SGovindraj Raja| A. This will be treated as a special case and the bug, and the fix will be
327d39c2f38SGovindraj Raja     discussed
328d39c2f38SGovindraj Raja
329d39c2f38SGovindraj Raja| Q. When testing a backported patch, what if one of the partners needs more
330d39c2f38SGovindraj Raja     time while the patch fix is time-critical and, hence slowing other
331d39c2f38SGovindraj Raja     partners?
332d39c2f38SGovindraj Raja| A. The maintainers will add more detail to the review and merge process to
333d39c2f38SGovindraj Raja     handle this scenario.
334d39c2f38SGovindraj Raja
335d39c2f38SGovindraj Raja| Q. How do we handle the increasing version numbers for errata fixes?
336d39c2f38SGovindraj Raja| A. Too many CPU errata workarounds resulting in too many LTS releases.
337d39c2f38SGovindraj Raja     We propose bumping the version number for each logical fix as
338d39c2f38SGovindraj Raja     described in the section “Long term release plan” above because
339d39c2f38SGovindraj Raja     that will help accurately track what changes have been deployed in-field.
340d39c2f38SGovindraj Raja
341d39c2f38SGovindraj Raja| Q. What if LTS support duration needs to be extended to longer than 5 years?
342d39c2f38SGovindraj Raja| A. Still under discussion.
343d39c2f38SGovindraj Raja
344d39c2f38SGovindraj RajaThese are uncharted waters, and we will face some unseen problems. When they
345d39c2f38SGovindraj Rajabecome real problems, then we will have concrete data and be better able to
346d39c2f38SGovindraj Rajaaddress them. This means that our LTS definition as presented in this document
347d39c2f38SGovindraj Rajais not the final one. We will constantly be discussing it and deciding how to
348d39c2f38SGovindraj Rajaadapt it as we see practical problems.
349d39c2f38SGovindraj Raja
350d39c2f38SGovindraj Raja.. _[1]:
351d39c2f38SGovindraj Raja
352d39c2f38SGovindraj Raja[1] The plan is to create a system where reviewers can tag a patch on mainline which
353d39c2f38SGovindraj Rajagets automatically rebased on LTS and pushed to Gerrit. On seeing this patch,
354d39c2f38SGovindraj Rajathe CI/CD starts tests and provides a score. In parallel, the system also sends
355d39c2f38SGovindraj Rajaan email to the maintainers announcing the arrival of a candidate patch for the
356d39c2f38SGovindraj RajaLTS branch.
357d39c2f38SGovindraj Raja
358d39c2f38SGovindraj Raja.. _[2]:
359d39c2f38SGovindraj Raja
360d39c2f38SGovindraj Raja[2] Logical will be a patch or patches implementing a certain fix. For example, if a
361d39c2f38SGovindraj Rajasecurity mitigation is fixed with the help of three patches, then all of them are
362d39c2f38SGovindraj Rajaconsidered as one "logical" fix. The version is incremented only after all these
363d39c2f38SGovindraj Rajapatches are merged. with the maintainers. If agreed unanimously, the bug fix
364d39c2f38SGovindraj Rajawill be merged to the affected LTS branches after completing the review process.
365