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