Since documentation changes are backported to 3.8 and 3.9 stable branches, if we increase the minimum required Sphinx version in master, I would prefer to also increase it in 3.8 and 3.9 branches.
I would prefer to not have to check manually if a doc backport PR is still compatible with Sphinx 2 or not. If we skip some doc backports, conflicts will become more likely with following doc backports.
I looked at Sphinx and Python versions of Debian, Ubuntu and Fedora: https://bugs.python.org/issue42843#msg384963
In my list, there is only Debian Buster (stable) which doesn't have Sphinx 3 yet. It uses Python 3.7 and so would not be affected by Python 3.8 changes.
The alternative is to keep Sphinx 2 support, use strip_signature_backslash and don't use :no-trim-doctest-flags: ?
On Tue, Jan 12, 2021 at 9:44 PM Julien Palard via Python-Dev email@example.com wrote:
During the development of cpython 3.10, Sphinx was bumped to 3.2.1.
Problem is Sphinx 3 have some incompatibilities with Sphinx 2, some that we could work around, some are bit harder, so we may need to bump `needs_sphinx = '3.2'` (currently it is 1.8).
I found two incompatibilities:
- We're using :no-trim-doctest-flags:, introduced in Sphinx 3.2.0, if we
build with Sphinx < 3.2.0 the blocks using it are dropped by Sphinx (we use it in library/doctest).
- double backslashes in domain directives are no longer replaced by
single backslashes. But a configuration value (strip_signature_backslash) can be used to have the same behavior on Sphinx 2 and 3.
So yes, it's still possible to build the docs with Sphinx 1.8 using `make html SPHINXERRORHANDLING=`, it "works" but:
- Doctests code blocks using no-trim-doctest-flags dissapear.
- Some functions declarations are lacking a backslash, like print(*objects, sep=' ', end='n', ...
Which is bad.
For the first one we could still workaround with an ugly `sed -i /no-trim-doctest-flags/d`, or simply stop using it (and reopen bpo-36675). For the 2nd one we could use `strip_signature_backslash` in cpython 3.10 to have the same behavior.
So the question is: Should we bump minimum version of Sphinx from 1.8 to 3.2.1 along with Python 3.10? For the moment this is where we go, but if you're having to maintain a release of Python along with Sphinx < 3, please make speak.
Conversation has already started here  and here .
-- [Julien Palard](https://mdk.fr) _______________________________________________ Python-Dev mailing list -- firstname.lastname@example.org To unsubscribe send an email to email@example.com https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://firstname.lastname@example.org/message/E64YE3DQ... Code of Conduct: http://python.org/psf/codeofconduct/