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