blob: 4e9e670aa7238cb09130dc7da9f8492eaec474aa [file] [log] [blame]
This directory contains code related to long-term support management of TF-A.
lts-triage.py
=============
Purpose of this script is to check a patch and determine if that patch qualifies
as a candidate for one of the LTS branches.
Currently it focuses on cpu errata while it contains basic support for security
patches. It computes a crude score:
1 point if subject line matches tokens for cpu errata or security
1 point for "report_errata ERRATA" in a lib/cpus/aarch{32,64}/*.S file
1 point for "- ``ERRATA_" in docs/design/cpu-specific-build-macros.rst file
Note that the script only looks at commits which are not merge commits.
The script expects two branches: 'integration' and 'to_check'. 'integration' is
the actual integration branch of the TF-A project while 'to_check' points to the
tip of latest patch in the patchset that was submitted.
The script needs to work out how many commits are in the current patchset which
will be the ones it needs to triage. In order to do that the script looks at two
parameters which are currently fixed in code. We can turn them into args if needed.
First is REBASE_DEPTH which is the number of commits in integration branch to look
for the common commit between patchset and integration branch. Second parameter is
MAX_PATCHSET_DEPTH which is the maximum number of commits we expect in the patchset
submitted.
At the end, if any commit has non-zero score, the script will create a file named at
the path provided by --email_path argument.
Running it:
-----------
To run it, provide it a path to a TF-A git repo. Here's help output for convenience:
$ python lts-triage.py -h
usage: lts-triage.py [-h] --repo REPO --email_path EMAIL_PATH [--debug]
check patches for LTS candidacy
options:
-h, --help show this help message and exit
--repo REPO path to tf-a git repo
--email_path EMAIL_PATH
path including the filename for email file
--debug print debug logs
Below is an example output. On left is commit hash of each of the commits
observed by this script and on right is score assigned to it.
$ python lts/lts-triage.py --repo ../trusted-firmware-a/ --email_path ./email.txt
feat(errata_framework): wrappers to propagate Aarch32 errata info: 0
feat(errata_framework): add a way to automatically report errata: 0
feat(errata_framework): add a concise way to implement Aarch64 errata: 0
refactor(cpus): convert print_errata_status to C: 0
refactor(cpus): rename errata_report.h to errata.h: 0
refactor(cpus): move cpu_ops field defines to a header: 0
chore(fvp): add the aarch32 cortex A57 to the build: 0
chore(cpus): remove redundant asserts: 0
refactor(cpus): shorten errata flag defines: 0
## stopping because found sha1 common between the two branches: 1678bbb57249b6edd4cdebc3cbc33b04df8fa098