blob: 8a53b5e9133d8d1cb9bb9d8cd21701faecd47f32 [file]
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.