Update Sphinx to version 2 and drop Python 2 support from Sphinx
The version 2.0.x of Sphinx, popular Python documentation generator and framework, is expected to be released in early 2019. It drops support for Python 2. As part of Finalizing Fedora's Switch to Python 3, we update
python-sphinx to 2.0.x and we drop
python2-sphinx and related packages from Fedora 31 and further.
Package maintainers using Sphinx on Python 2 have three options:
- they stop using Python 2 entirely (preferred), dropping their python2 subpackages if not dependent upon by other packages,
- they switch to Sphinx on Python 3 for building their documentation,
- they stop building documentation.
Packages that use Sphinx on Python 2 at runtime are Sphinx extensions, themes etc. and will be removed together with
- Name: Miro Hrončok as the lead Python 2 deletionist
- Name: Charalampos Stratakis as the
- Email: firstname.lastname@example.org
- Release notes owner:
- Targeted release: Fedora 31
- Last updated: 2019-03-06
- Tracker bug: #1685211
- Release notes tracker: #306
See live (or several days old) information of Python dependents of
python2-sphinx at the Python 2 Dropping Database.
We will remove the following (sub)packages:
python2-openstack-doc-tools(already removed in F30)
python2-openstackdocstheme(already removed in F30)
The following (source) packages currently (2019-02-06) BuildRequire any of the above and will need to be modified to stop BuildRequiring them:
As said in the summary, packages will either switch to Python 3 Sphinx or stop building the docs. Change owners can provide guidance and help, yet they cannot be expected to fix all the packages.
The following tools will be switched to Python 3:
-3.X suffixed counterparts will be kept as symbolic links for backwards compatibility.
Explicit conflicts with old
python2-sphinx will be added and
python2-sphinx will be obsoleted via
Benefit to Fedora
Fedora is the leading environment for Python development and will include the newest and greatest Sphinx for users and packagers. The removal of Python 2 Sphinx will help in getting rid of a significant amount of Python 2 usage, as Fedora's long term plan is to get rid of this legacy interpreter. Python 2 is deprecated in Fedora and its upstream support ends on 2020-01-01, very early in the Fedora 31 life time.
- Proposal owners: remove above-mentioned packages as soon as possible, update
python-sphinxto 2.0.0 or newer, provide guidance and help.
- Other developers: stop using
python2-sphinx(list of affected packages in the description)
- Release engineering: #8100 (no Release Engineering impact is anticipated)
- List of deliverables: empty
- Policies and guidelines: none
- Trademark approval: not needed for this Change
python3-sphinx package will have to conflict with the old
python2-sphinx package because the unversioned executables will be moved from
python3-sphinx. Proper obsoletes will be added to ensure a clean upgrade path.
Fedora users using RPM-packaged Sphinx will use Sphinx on Python 3 by default, as many would expect. Fedora users still needing to use Sphinx running on Python 2 will use Python virtual environment and pip.
How To Test
Already covered by sections above.
Described by the sections above.
- Contingency mechanism: If absolutely needed, the change owners will add compatibility
python2-sphinxpackage with Sphinx 1.8.x but they are not willing to maintain it, so they plan to orphan it soon after Fedora 31 is released.
- Contingency deadline: any time before release
- Blocks release? No
- Blocks product? No
This page is the documentation.