Allow passing multiple branches to build via CLI
A full set of Python 3.9-3.13 security+bugfix releases were made last week:
https://discuss.python.org/t/python-3-13-1-3-12-8-3-11-11-3-10-16-and-3-9-21-are-now-available/73214
The bugfix branches (3.12 and 3.13) are automatically built on cron.
The security branches (3.9-3.11) need manual rebuilds. We also have the final 3.8 to manually run. It's taken 16 and 13 hours for a full build of the first two so far (3.11 and 3.10; see https://github.com/python/docsbuild-scripts/issues/216).
We will certainly have big omnibus security releases in the future and instead of having to run each one separately:
/srv/docsbuild/venv/bin/python /srv/docsbuild/scripts/build_docs.py --branch 3.11
/srv/docsbuild/venv/bin/python /srv/docsbuild/scripts/build_docs.py --branch 3.10
/srv/docsbuild/venv/bin/python /srv/docsbuild/scripts/build_docs.py --branch 3.9
/srv/docsbuild/venv/bin/python /srv/docsbuild/scripts/build_docs.py --branch 3.8
It would be useful to pass all branch versions, in a similar way we can with --languages:
/srv/docsbuild/venv/bin/python /srv/docsbuild/scripts/build_docs.py --branch 3.11 3.10 3.9 3.8
This PR does that.
I added unit tests for the Version.filter method I changed, along with coverage. We can use coverage to guide adding more tests in the future.
I also added --branches as a new name for this argument and kept the old --branch so as not to break any other scripts, but we could change it later.
We could also make it's use more explicitly deprecated, like print a warning if --branch is used? Maybe it's safe to rename it right away?