Python 3.8 was removed from the tested runtimes for 2024.2[1] and has
not been tested since then.
Also add Python 3.12 which is part of the tested runtimes for 2025.1.
Now unit tests job with Python 3.12 is voting.
[1] https://governance.openstack.org/tc/reference/runtimes/2024.2.html
Change-Id: Ib819cb4674f3c02e65e4478ea8c68aaa19b7ea8c
Previously, RedirectMatch rules were evaluated using Python's re regexp
module. However, Apache httpd uses the PCRE library for evaluating
regular expressions,[1] and there are subtle differences between the
Python and PCRE implementations. Using the PCRE library itself (via the
pcre-python binding) provides more representative results, and hence
more confidence to the user that any rules that pass whereto's tests
will work in the same way in a real Apache configuration.
[1] https://httpd.apache.org/docs/trunk/glossary.html#regex
Change-Id: Ibef3376d9da0688d0c97f5837dacc5b7cc52431c
The Python re module uses '\n' for group backreference substitution,
whereas mod_alias uses '$n', and thus we must translate between them
when processing RedirectMatch directives. Previously this was done by
substituting backslashes for any dollar signs in the replacement string.
However, group substitution only occurs when the $ is not escaped with a
backslash and is followed by a decimal digit. Follow the same rules
here.
Change-Id: Ib33534b40e0b126c769ec17f76e1ecc83d790ebc