Okash Khawaja | 671bed2 | 2022-11-10 15:51:19 +0000 | [diff] [blame] | 1 | This directory contains code related to long-term support management of TF-A. |
| 2 | |
| 3 | lts-triage.py |
| 4 | ============= |
| 5 | |
| 6 | Purpose of this script is to check a patch and determine if that patch qualifies |
| 7 | as a candidate for one of the LTS branches. |
| 8 | |
| 9 | Currently it focuses on cpu errata while it contains basic support for security |
| 10 | patches. It computes a crude score: |
| 11 | |
| 12 | 1 point if subject line matches tokens for cpu errata or security |
| 13 | 1 point for "report_errata ERRATA" in a lib/cpus/aarch{32,64}/*.S file |
| 14 | 1 point for "- ``ERRATA_" in docs/design/cpu-specific-build-macros.rst file |
| 15 | |
| 16 | Note that the script only looks at commits which are not merge commits. |
| 17 | |
Okash Khawaja | 66a3a7e | 2023-01-24 11:06:16 +0000 | [diff] [blame] | 18 | The script expects two branches: 'integration' and 'to_check'. 'integration' is |
| 19 | the actual integration branch of the TF-A project while 'to_check' points to the |
| 20 | tip of latest patch in the patchset that was submitted. |
| 21 | |
| 22 | The script needs to work out how many commits are in the current patchset which |
| 23 | will be the ones it needs to triage. In order to do that the script looks at two |
| 24 | parameters which are currently fixed in code. We can turn them into args if needed. |
| 25 | First is REBASE_DEPTH which is the number of commits in integration branch to look |
| 26 | for the common commit between patchset and integration branch. Second parameter is |
| 27 | MAX_PATCHSET_DEPTH which is the maximum number of commits we expect in the patchset |
| 28 | submitted. |
| 29 | |
Okash Khawaja | 6875150 | 2023-02-03 18:53:14 +0000 | [diff] [blame^] | 30 | At the end, if any commit has non-zero score, the script will create a file named at |
| 31 | the path provided by --email_path argument. |
| 32 | |
Okash Khawaja | 671bed2 | 2022-11-10 15:51:19 +0000 | [diff] [blame] | 33 | Running it: |
| 34 | ----------- |
| 35 | |
| 36 | To run it, provide it a path to a TF-A git repo. Here's help output for convenience: |
| 37 | |
Okash Khawaja | 6875150 | 2023-02-03 18:53:14 +0000 | [diff] [blame^] | 38 | $ python lts-triage.py -h |
| 39 | usage: lts-triage.py [-h] --repo REPO --email_path EMAIL_PATH [--debug] |
Okash Khawaja | 671bed2 | 2022-11-10 15:51:19 +0000 | [diff] [blame] | 40 | |
| 41 | check patches for LTS candidacy |
| 42 | |
| 43 | options: |
| 44 | -h, --help show this help message and exit |
| 45 | --repo REPO path to tf-a git repo |
Okash Khawaja | 6875150 | 2023-02-03 18:53:14 +0000 | [diff] [blame^] | 46 | --email_path EMAIL_PATH |
| 47 | path including the filename for email file |
Okash Khawaja | 671bed2 | 2022-11-10 15:51:19 +0000 | [diff] [blame] | 48 | --debug print debug logs |
| 49 | |
Okash Khawaja | 671bed2 | 2022-11-10 15:51:19 +0000 | [diff] [blame] | 50 | Below is an example output. On left is commit hash of each of the commits |
| 51 | observed by this script and on right is score assigned to it. |
| 52 | |
| 53 | $ python lts/lts-triage.py --repo ../trusted-firmware-a/ |
| 54 | 888eafa00b99aa06b4ff688407336811a7ff439a: 3 |
| 55 | 79544126943a90d31d81177655be11f75330ffed: 3 |
| 56 | 43438ad1ad6651964e9ae75d35f40aed8d86d088: 3 |
| 57 | 028c4e42d8f632d40081b88f66d0d05c7d7c9b23: 0 |
| 58 | 20155112c5d2fb296fef40a12b1c6ce12f49b1c8: 0 |
| 59 | 4090ac33f44bd24d73161032faa817eb03f2e41d: 0 |
| 60 | cf58b2d41cb0d24239b98de98264b31690711549: 0 |
| 61 | e74d658181e5e69b6b5e16b40adc1ffef4c1efb9: 1 |
| 62 | ad6eb1951b986f30635025bbdf29e257b6b1e362: 0 |
| 63 | 8a6a9560b5dcccfb68064c0c8c9b4b47981c6ac7: 0 |
| 64 | 93cec697deb654303379cae8f25a31dc8b90cd31: 0 |
| 65 | a194255d75ed9e2ef56bd6e14349a3e7d86af934: 0 |
| 66 | 98a43d9f6c22498d9e1a6e7ace1bc6d23ac58d5a: 0 |
| 67 | 07dc8ba93b319de2bf0be0c287373db74019878e: 0 |
| 68 | c6877763cd3a286983df160c8207368174c1b820: 0 |
| 69 | 03ebf409c711e9f2006cedded7dc415dfe566975: 1 |
| 70 | de7e9b562afccd6d71df1abf1907f48d164a3a7e: 0 |
| 71 | 720e7b66f2353ef7ed32a8f85f8396fbc0766ffc: 0 |
| 72 | 62a93aa7afcd022f06d322c36979f0aa02713beb: 0 |
| 73 | b5f06d3dfad8c27bdf528b083ef919ce4022c52d: 0 |