blob: 1da63c8bf8dac69080fee4bc44423d79d751c13b [file] [log] [blame]
Okash Khawaja671bed22022-11-10 15:51:19 +00001This directory contains code related to long-term support management of TF-A.
2
3lts-triage.py
4=============
5
6Purpose of this script is to check a patch and determine if that patch qualifies
7as a candidate for one of the LTS branches.
8
9Currently it focuses on cpu errata while it contains basic support for security
10patches. It computes a crude score:
11
121 point if subject line matches tokens for cpu errata or security
131 point for "report_errata ERRATA" in a lib/cpus/aarch{32,64}/*.S file
141 point for "- ``ERRATA_" in docs/design/cpu-specific-build-macros.rst file
15
16Note that the script only looks at commits which are not merge commits.
17
18Running it:
19-----------
20
21To run it, provide it a path to a TF-A git repo. Here's help output for convenience:
22
23$ python lts/lts-triage.py -h
24usage: lts-triage.py [-h] --repo REPO [--branch BRANCH] [--sample_size SAMPLE_SIZE] [--debug]
25
26check patches for LTS candidacy
27
28options:
29 -h, --help show this help message and exit
30 --repo REPO path to tf-a git repo
31 --branch BRANCH branch to check. default = integration
32 --sample_size SAMPLE_SIZE
33 how many patches to scan. default = 20
34 --debug print debug logs
35
36Below is an example output. On left is commit hash of each of the commits
37observed by this script and on right is score assigned to it.
38
39$ python lts/lts-triage.py --repo ../trusted-firmware-a/
40888eafa00b99aa06b4ff688407336811a7ff439a: 3
4179544126943a90d31d81177655be11f75330ffed: 3
4243438ad1ad6651964e9ae75d35f40aed8d86d088: 3
43028c4e42d8f632d40081b88f66d0d05c7d7c9b23: 0
4420155112c5d2fb296fef40a12b1c6ce12f49b1c8: 0
454090ac33f44bd24d73161032faa817eb03f2e41d: 0
46cf58b2d41cb0d24239b98de98264b31690711549: 0
47e74d658181e5e69b6b5e16b40adc1ffef4c1efb9: 1
48ad6eb1951b986f30635025bbdf29e257b6b1e362: 0
498a6a9560b5dcccfb68064c0c8c9b4b47981c6ac7: 0
5093cec697deb654303379cae8f25a31dc8b90cd31: 0
51a194255d75ed9e2ef56bd6e14349a3e7d86af934: 0
5298a43d9f6c22498d9e1a6e7ace1bc6d23ac58d5a: 0
5307dc8ba93b319de2bf0be0c287373db74019878e: 0
54c6877763cd3a286983df160c8207368174c1b820: 0
5503ebf409c711e9f2006cedded7dc415dfe566975: 1
56de7e9b562afccd6d71df1abf1907f48d164a3a7e: 0
57720e7b66f2353ef7ed32a8f85f8396fbc0766ffc: 0
5862a93aa7afcd022f06d322c36979f0aa02713beb: 0
59b5f06d3dfad8c27bdf528b083ef919ce4022c52d: 0