Page MenuHomePhabricator

Long-term support (LTS) proposal
Updated YesterdayPublic

LTS Proposal
https://developer.trustedfirmware.org/file/data/yhf5nfsofaqobwja5ss3/PHID-FILE-e2hxgf66tgkg3qzayfyv/TF-A_LTS_Proposal.pdf

Overview

An important criterion for evaluating and adopting a software platform is support. The Trusted Firmware-A community has been releasing code from the tip every six months. This model works very well for software innovation and implementing new hardware features. But for platforms in production, this policy does not scale in terms of maintenance, backward compatibility of important software fixes, getting latest security mitigations, and overall product lifecycle management.

Several open-source software projects (e.g. Ubuntu, Yocto, Linux Kernel) have faced this problem during their lifetime and have implemented a long-term support release as a solution. Long-term support not only extends the period of software maintenance, but also alters the type and frequency of software updates (patches) to reduce the risk, expense, and disruption of software deployment, while promoting the dependability of the software. It does not necessarily imply technical support.

Long-term support is needed for commercial reasons too. More specifically, on the device side, when a product is released, the companies must support it such that the number of changes to the firmware are kept to a minimum to avoid the risk of regression. At the same time, the companies don't want to exclude critical patches such as those for security advisories. Similarly on server side, companies want to minimize the churn when deploying fixes during incident response, e.g. due to critical security bugs. This means that those companies must maintain and backport critical updates to old branches internally. As this effort is duplicated across different companies using TF-A, it makes sense to factor out this effort into a community wide LTS effort.

This document proposes a plan to leverage the path chosen by various open-source software projects and define a long-term support release strategy. This proposal will not succeed without the support of the community and relies on their contributions.

Problems

The following are some of the problems slowing down device upgrades.

  1. The investment to maintain a software release and keep it updated with important software changes from upstream is too high.
  2. The cost to productize and deploy a newly released version is too high.
  3. Lack of tests to cover all scenarios means that a new public release cannot be immediately deployed to the field.
  4. Some aspects like documentation, code analysis reports, test reports and long term availability of tools are not available.

Community involvement

The LTS topic was first presented by @vwadekar as a tech forum discussion on 10 Sep, 2020. The LTS topic was rebooted in the community in May'22. A proposal was created by @okash and @vwadekar and presented to the community in tech forums on 14 July, 2022 and 8 Sep 2022. The recordings can be found at https://www.trustedfirmware.org/meetings/tf-a-technical-forum/.

Thanks to the responses on the mailing list, the proposal has now evolved into the attached execution plan.

First LTS branch

The result of the community interest and review of the execution plan from the board, is the introduction of the first LTS release branch. The following sub-sections document the expectations from the branch and the path to the first LTS release.

Expectations

  1. Stable and well-tested code branch
  2. Well-defined criteria to pick changes for merge
  3. High quality bar for every patch that gets merged
  4. Active support from the maintainers for a minimum of five years
  5. Clear communication of important milestones to the community

Release planning

  1. The first LTS release will use TF-A v2.8 as the base and be available in Feb 2023.
  2. The branch name will be based on the format: lts-<base tf-a version>.<rolling minor version>. e.g. lts-2.8.0 for the first branch.
  3. The branch maintainers plan to introduce a new mailing list (tfa-lts@lists.trustedfirmware.org) to engage with the community. We expect the mailing list to be used for announcements, to report issues, to propose changes to cherry-pick, to propose policy changes, to provide feedback, etc.

Call to action

Reviewers are encouraged to review the plan and provide feedback. We request more people to try the LTS release when available and make the project a success.

References

Last Author
vwadekar
Last Edited
Wed, Jan 25, 8:54 PM

Event Timeline

joannafarley-arm created this object with edit policy "Trusted Firmware A (Project)".
joannafarley-arm changed the edit policy from "Trusted Firmware A (Project)" to "Custom Policy".Oct 7 2020, 4:18 PM
vwadekar changed the title from LTS Proposal to Long-term support (LTS) proposal.Oct 7 2020, 4:24 PM
vwadekar edited the content of this document. (Show Details)
vwadekar changed the title from LTS Proposal to Long-term support (LTS) proposal.Oct 7 2020, 4:55 PM
vwadekar changed the title from LTS Proposal to Long-term support (LTS) proposal.
vwadekar edited the content of this document. (Show Details)
vwadekar edited the content of this document. (Show Details)
vwadekar changed the title from LTS Proposal to Long-term support (LTS) proposal.Oct 7 2020, 4:57 PM
vwadekar edited the content of this document. (Show Details)
vwadekar changed the title from LTS Proposal to Long-term support (LTS) proposal.Oct 7 2020, 5:02 PM
vwadekar edited the content of this document. (Show Details)
vwadekar published a new version of this document.

This is a great initiative. Support this completely, although the "Expectation from LTS codebase" section scares me :). Given the size of the community(that i'm aware of), the goals set out are great long term goals so may be it should be renamed as Long term expectations.

As a start, I think once in 2 years LTS branch, with only security, errata fixes and critical(subjective) bug fixes that apply to the LTS branch and no feature back ports would be good. This can be added to Open CI to ensure no regressions and can potentially be run on partner platforms if they could donate to OpenCI.
For maintenance of LTS, we could have a couple of volunteers(perhaps from TF-A maintainers) rotate every 2 weeks or 4 weeks to keep an eye out on the LTS branch and merge these patches/fixes. Assuming the tip is high quality, i imagine the amount of work or frequency of patches merging and work load may not be too bad. For regressions caused by patch merge, the volunteers would need to work with patch authors to get it merged(which can be challenging).

Let me know your thoughts. I'm sure i've oversimplified things but we can use this as a start and iterate to smaller steps or larger steps.

vwadekar edited the content of this document. (Show Details)Sep 26 2022, 9:03 PM
vwadekar added a subscriber: okash.
vwadekar edited the content of this document. (Show Details)Sep 26 2022, 9:05 PM
vwadekar edited the content of this document. (Show Details)Sep 30 2022, 11:39 AM
vwadekar edited the content of this document. (Show Details)
vwadekar edited the content of this document. (Show Details)Oct 12 2022, 11:34 AM
vwadekar edited the content of this document. (Show Details)
vwadekar changed the edit policy from "Custom Policy" to "Custom Policy".
vwadekar edited the content of this document. (Show Details)Oct 12 2022, 11:52 AM
vwadekar edited the content of this document. (Show Details)Dec 6 2022, 3:10 PM
vwadekar edited the content of this document. (Show Details)Thu, Jan 19, 1:22 PM
vwadekar edited the content of this document. (Show Details)Wed, Jan 25, 8:54 PM