This is the running minutes and actions for TF-A LTS
- List Item
**Date**: Oct 25, 2022
**Attendees**: Okash Khawaja (NVIDIA), Varun Wadekar (Google), Bipin Ravi (arm), Joanna Farley (arm), Matteo Carlini (arm)
# Define what we want to do with the automation.
# Automated script to identify the patches that qualify for LTS branch
# How to identify a patch being a CPU errata implementation from the commit header/message and patch stack? – (Bipin)
# Start with CPU Errata identification script design. Initially list all the steps. Target to have an early implemented version for this script by TF-A v2.8 (Okash).
# Add additional capabilities like Security, Platform related errata/bug fixes patches identification to be added after the CPU errata. TBD
# Automated script for integration to LTS branch
# What’s the language currently used to add hooks? – (Bipin)
# Git API to find the patch series? – TBD
# TF.org, auto merger logic etc. – Need help
# Overall Flow
# Whatever we change is posted in TF-A integration branch.
# To track commit header, commit message and files changed. Identify keywords to generate alerts on a match. Check “CPU Errata patch identification” section below for details.
# Assumption is patch owners/reviewers make sure to enforce/gate keep using the right tags in commit messages/header at least moving forward.
# For missed patches, we need to identify the right keywords/mechanism to identify them and enhance the script as we go on.
# Generate an early email alert to LTS maintainers
# All merge conflicts are resolved in TF-A integration. So, LTS to use TF-A master branch as the base to pick final matched patches.
# Cherry pick errata to LTS branch from TF-A master branch once the patch is merged.
# Auto merge if possible, to the LTS integration branch. How do we do it? TBD
# Auto run the CI, plan nightly Open-CI runs.
# Automated email alerts for the CI results to the LTS maintainers.
# LTS merge process
# Keep it simple.
# 2 weeks window from LTS candidate to LTS tag
# Start off by having 3 emails
# First email when creating the candidate. Interested partners can run their platform regressions with the LTS RC.
# Second email middle of the 2-week period warning about the approaching LTS tag(major/minor)
# Third email announcing the LTS tag
# Additional relevant patches/errata to be discussed for identification
# Platform bug fixes
# GIC errata
# Backporting concerns
# Porting patches identified for LTS branch and an effort to backport to a very old LTS tag, theoretically increasing complexity to get it merged or even impossible.
# Need to discuss this more but lower chances initially to encounter this.
# Script ownership/maintainership to be shared by Arm, Google and NVIDIA.
# Currently no Linaro involvement
# Can we assume all CI scripts and other infra can be used from Linaro?
# For TF.org, Jenkins, Infra support etc. file ticket and can request Linaro to help.
# Current LTS assigned maintainers do not have the expertise in gerrit administrative efforts including configuring.
# Need to discuss this further and find a solution.
# CPU Errata patch identification
# Specific changes in the patch diff to be looked for
# assembly macros within the <cpu>.S file within the patch is also checked in diff
# New line with first word “report_errata” followed by second word “ERRATA_(wildcard)” string in lib/cpus/aarch../*.S file associated with the patch.
# New line within the docs/design/cpu-specific-build-macros.rst having the string “``ERRATA_(wildcard)``”
# lib/cpus/cpu-ops.mk part of the patch hold the same “ERRATA_(wildcard)” string
# For CPUs, the errata enable compile flag follows the format ERRATA_<CPUNAME>_<ERRATA_ID> which could be useful later.
**Date**: Oct 18, 2022
**Attendees**: Okash Khawaja (NVIDIA), Varun Wadekar (Google), Bipin Ravi (arm), Joanna Farley (arm), Doug Richmond (arm)
# LTS Branch will be created after the V2.8 release at the end of November.
# Must also branch TFTF and the CI.
# Target for the formal release version of the LTS branch will be at the beginning of February actual date TBD.
# Partner testing will be performed on the LTS candidate on their downstream platforms during December and January to ensure that the LTS branch is considered stable. This is supposed to cover the extended regressions on platforms outside of TF-A. During this time the LTS should be labeled as an RC version until conclusion of testing and agreement that the formal first LTS release can be approved and published.
# Only Bugs and fixes approved by the maintainers should be approved to be included in the LTS up to the point of its first version.
# The versioning scheme needs to be defined. The first release in February could be versioned as lts-2.8.1 but needs agreement that this versioning does not have the potential of causing confusion with any consumers.
# Any fixes to the LTS will only be fixes to the published functionality within either common or platform code. If there are corner cases / exceptions to this policy, then it will be the responsibility of the maintainers to decide if the code is merged from TF-A main to the LTS branch.
# All changes required by the LTS will be tested and merged to TF-A main before being considered for inclusion in the LTS. Any exception to this requirement needs to be further thought about and discussed.
# A mailing list needs to be created for the LTS branch with all LTS interested partners and maintainers to ensure good communication for the branch status.
# Errata and other fixes required by the LTS from TF-A main will need to be identified, tested, approved by maintainers, and merged into the LTS. This process needs to be made as efficient as possible to reduce the effort required.
# To allow this process to be made efficient scripts will need to be developed to highlight changes (security fixes, bugs or errata) to cherry pick the changes from TF-A Main and trigger CI tests (post commit hook to auto merge into another branch and kick off runs) and automatically email the maintainers for their manual approval prior to automatic merging to the LTS.
# The manual approval is to maintain the quality of the LTS in case of patches not being correctly identified by entry of keywords for inclusion in the LTS branch.
# This design requires more discussion, and a follow up design is to be created with detail for the scripts which will need development prior to the LTS being published.
# Resource for the script development needs to be named. There is currently no development resource to perform this work.
# Where does the script run?
# Errata for all CPUs needs to be included in the LTS branch. If a new partner was to start using the LTS for resident LTS CPUs, it could cause significant effort to add all the applicable errata if they were not present in the first place. Only adding critical errata for CPUs being used for current interested partners using the LTS on platforms could cause other issues with the branch configuration quality.
# The LTS life span is understood to be 5 years (with interest to extend up to 7 years which needs further thoughts) and all LTS participating partners and arm are committed to provide maintainer support for this period. Arm has stated their named resource for Year 1 and subsequent years are to be confirmed after this pilot period.