| A guide to the various backport scripts: |
| ======================================== |
| |
| There two primary functions: |
| |
| F1. Auto-merge bot; the nightly svn-role commits. |
| |
| F2. Conflicts detector bot; the backportbot GitHub Action. |
| |
| And two interactive functions: |
| |
| F3. Reviewing STATUS nominations and casting votes. |
| |
| F4. Adding new entries to STATUS. |
| |
| The scripts are: |
| |
| backport/*.py: |
| Python-based library implementation of STATUS parsing (status.py), |
| of merging nominated revisions (merger.py) and some WC helper functions |
| (wc.py). Colloquially referred to as 'backport.py', even though there is |
| no script by that name. Written in Python 3. |
| |
| The modules include their unit tests, see 'python3 -munittest |
| backport.status' and 'python3 -munittest backport.merger'. However, |
| changes to these files should be tested both by the unit tests and by the |
| backport_tests.py blackbox/regression tests. |
| |
| detect-conflicting-backports.py: |
| Implementation of [F2] using backport.py. Used by GitHub Actions, see |
| ../../.github/workflows/detect-backport-conflicts.yml |
| |
| merge-approved-backports.py: |
| Implementation of [F1] using backport.py. Used on svn-qavm to |
| automatically merge approved backports, see documentation in PMC private |
| repo. |
| |
| manage-backports.py: |
| Implementation of [F3] using backport.py. |
| |
| nominate-backport.py: |
| Implementation of [F4] using backport.py. |
| |
| backport_tests.py: |
| Regression tests for detect-conflicting-backports.py and merge-approved-backports.py |
| Uses the svntest framework (../../subversion/tests/cmdline/svntest/). |
| |
| backport_tests_data/backport*.dump: |
| Expected output files for backport_tests.py; see the BackportTest |
| decorator in backport_tests.py. |
| |
| All scripts can be run with '--help' to display their usage messages. |
| |
| Previously there was a Perl based script backport.pl implementing the same |
| features. It unmaintained and removed in Subversion 1.15.x, replaced by the |
| above scripts. |
| |
| TODO: document that "Notes: ... --accept=foo ..." is parsed, see backport_tests.py #3. |
| |