https://fedoraproject.org/wiki/Changes/Sphinx2

== Summary ==
The version 2.0.x of [https://www.sphinx-doc.org/ Sphinx], popular
Python documentation generator and framework, is expected to be
[https://github.com/sphinx-doc/sphinx/issues/5950 released in early
2019]. It 
[https://www.sphinx-doc.org/en/master/changes.html#incompatible-changes
drops support for Python 2]. As part of
[[FinalizingFedoraSwitchtoPython3|Finalizing Fedora's Switch to Python
3]], we update {{package|python-sphinx}} to 2.0.x and we drop
{{package|python2-sphinx}} and related packages from
[[Releases/31|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
{{package|python2-sphinx}}.

== Owner ==
* Name: [[User:Churchyard|Miro Hrončok]] as the lead Python 2 deletionist
* Name: [[User:Cstratak|Charalampos Stratakis]] as the
{{package|python-sphinx}} maintainer
* Email: python-ma...@redhat.com


== Detailed Description ==
See live (or several days old) information of Python dependents of
{{package|python2-sphinx}} at the
[https://fedora.portingdb.xyz/pkg/python-sphinx/ Python 2 Dropping
Database].

We will remove the following (sub)packages:

* {{package|python2-sphinx}}
* {{package|python2-catkin-sphinx}}
* {{package|python2-numpydoc}}
* {{package|python2-openstack-doc-tools}}
* {{package|python2-openstackdocstheme}}
* {{package|python2-snowballstemmer}}
* {{package|python2-sphinx-intl}}
* {{package|python2-sphinx-theme-alabaster}}
* {{package|python2-sphinx_rtd_theme}}
* {{package|python2-sphinxcontrib-httpdomain}}
* {{package|python2-sphinxcontrib-websupport}}
* {{package|sphinx-webtools}}
* {{package|trac-sphinx-plugin}}

The following (source) packages currently (2019-02-06) BuildRequire
any of the above and will need to be modified to stop BuildRequiring
them:

(See wiki page for a full listing)

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:

* <code>/usr/bin/sphinx-apidoc</code>
* <code>/usr/bin/sphinx-autogen</code>
* <code>/usr/bin/sphinx-build</code>
* <code>/usr/bin/sphinx-quickstart</code>

Their <code>-3</code> and <code>-3.X</code> suffixed counterparts will
be kept as symbolic links for backwards compatibility.
Explicit conflicts with old {{package|python2-sphinx}} will be added
and {{package|python2-sphinx}} will be obsoleted via
{{package|fedora-obsolete-packages}}.

== 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.

== Scope ==
* Proposal owners: remove above-mentioned packages as soon as
possible, update {{package|python-sphinx}} to 2.0.0 or newer, provide
guidance and help.
* Other developers: stop using {{package|python2-sphinx}} (list of
affected packages in the description)
* Release engineering: [https://pagure.io/releng/issue/8100 #8100] (no
Release Engineering impact is anticipated)
** List of deliverables: empty
* Policies and guidelines: none
* Trademark approval: not needed for this Change

== Upgrade/compatibility impact ==
The new {{package|python3-sphinx}} package will have to conflict with
the old {{package|python2-sphinx}} package because the unversioned
executables will be moved from {{package|python2-sphinx}} to
{{package|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 ==
TBD

== User Experience ==
Already covered by sections above.

== Dependencies ==
Described by the sections above.

== Contingency Plan ==
* Contingency mechanism: If absolutely needed, the change owners will
add compatibility {{package|python2-sphinx}} package 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

== Documentation ==
This page is the documentation.

== Release Notes ==
TBD.

-- 
Ben Cotton
Fedora Program Manager
TZ=America/Indiana/Indianapolis
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

Reply via email to