From Fedora Project Wiki
(Name and Summary)
mNo edit summary
 
(29 intermediate revisions by 3 users not shown)
Line 35: Line 35:
* they stop building documentation.
* they stop building documentation.


Packages that use Sphinx on Python 2 on runtime are Sphinx extensions, themes etc. and will be removed together with {{package|python2-sphinx}}.
Packages that use Sphinx on Python 2 at runtime are Sphinx extensions, themes etc. and will be removed together with {{package|python2-sphinx}}.


== Owner ==
== Owner ==
Line 42: Line 42:
This should link to your home wiki page so we know who you are.  
This should link to your home wiki page so we know who you are.  
-->
-->
* Name: [[User:FASAcountName| Your Name]]
* Name: [[User:Churchyard|Miro Hrončok]] as the lead Python 2 deletionist
* Name: [[User:Cstratak|Charalampos Stratakis]] as the {{package|python-sphinx}} maintainer
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. -->
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. -->
* Email: <your email address so we can contact you, invite you to meetings, etc.>
* Email: python-maint@redhat.com
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
Line 65: Line 66:
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
-->
-->
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1685211 #1685211]
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/306 #306]


== Detailed Description ==
== Detailed Description ==


<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
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}} https://src.fedoraproject.org/rpms/python-sphinx/pull-request/8
* {{package|python2-catkin-sphinx}} https://src.fedoraproject.org/rpms/python-catkin-sphinx/pull-request/2
* {{package|python2-numpydoc}} https://src.fedoraproject.org/rpms/python-numpydoc/pull-request/1
* {{package|python2-openstack-doc-tools}} (already removed in F30)
* {{package|python2-openstackdocstheme}} (already removed in F30)
* {{package|python2-snowballstemmer}} https://src.fedoraproject.org/rpms/python-snowballstemmer/pull-request/1
* {{package|python2-sphinx-intl}} https://src.fedoraproject.org/rpms/python-sphinx-intl/pull-request/3
* {{package|python2-sphinx-theme-alabaster}} https://src.fedoraproject.org/rpms/python-sphinx-theme-alabaster/pull-request/2
* {{package|python2-sphinx_rtd_theme}} https://src.fedoraproject.org/rpms/python-sphinx_rtd_theme/pull-request/1
* {{package|python2-sphinxcontrib-httpdomain}} https://src.fedoraproject.org/rpms/python-sphinxcontrib-httpdomain/pull-request/2
* {{package|python2-sphinxcontrib-websupport}} https://src.fedoraproject.org/rpms/python-sphinxcontrib-websupport/pull-request/3
* {{package|sphinx-webtools}} https://src.fedoraproject.org/rpms/sphinx-webtools/pull-request/2
* {{package|trac-sphinx-plugin}} https://src.fedoraproject.org/rpms/trac-sphinx-plugin/pull-request/2
The following (source) packages currently (2019-02-06) BuildRequire any of the above and will need to be modified to stop BuildRequiring them:
* {{package|alot}}
* {{package|autotest-framework}}
* {{package|beaker}}
* {{package|BEDTools}}
* {{package|bpython}}
* {{package|bro}}
* {{package|bugzilla}}
* {{package|bzr}}
* {{package|catkin}}
* {{package|datagrepper}}
* {{package|extra-cmake-modules}}
* {{package|fedmsg}}
* {{package|gdeploy}}
* {{package|gnuradio}}
* {{package|h5py}}
* {{package|idris}}
* {{package|libmypaint}}
* {{package|mirrorbrain}}
* {{package|mod_wsgi}}
* {{package|moksha}}
* {{package|mp}}
* {{package|nextcloud-client}}
* {{package|nordugrid-arc-nagios-plugins}}
* {{package|notmuch}}
* {{package|offlineimap}}
* {{package|owncloud-client}}
* {{package|paraview}}
* {{package|percona-xtrabackup}}
* {{package|petsc}}
* {{package|python-arc}}
* {{package|python-bashate}}
* {{package|python-bloom}}
* {{package|python-Bottleneck}}
* {{package|python-breathe}}
* {{package|python-case}}
* {{package|python-catkin_pkg}}
* {{package|python-cliapp}}
* {{package|python-cloudservers}}
* {{package|python-debtcollector}}
* {{package|python-dulwich}}
* {{package|python-eventlet}}
* {{package|python-factory-boy}}
* {{package|python-fedora}}
* {{package|python-feedparser}}
* {{package|python-flask}}
* {{package|python-flask-httpauth}}
* {{package|python-funcsigs}}
* {{package|python-futurist}}
* {{package|python-gabbi}}
* {{package|python-genmsg}}
* {{package|python-genpy}}
* {{package|python-gunicorn}}
* {{package|python-hacking}}
* {{package|python-hardware}}
* {{package|python-hl7}}
* {{package|python-htmlmin}}
* {{package|python-jenkins-job-builder}}
* {{package|python-jsonpath-rw-ext}}
* {{package|python-kafka}}
* {{package|python-kazoo}}
* {{package|python-kitchen}}
* {{package|python-larch}}
* {{package|python-mpd2}}
* {{package|python-mpmath}}
* {{package|python-netaddr}}
* {{package|python-ngram}}
* {{package|python-nose_fixes}}
* {{package|python-novaclient}}
* {{package|python-nss}}
* {{package|python-numpydoc}}
* {{package|python-olefile}}
* {{package|python-openstackdocstheme}}
* {{package|python-openstack-doc-tools}}
* {{package|python-oslo-config}}
* {{package|python-oslo-serialization}}
* {{package|python-oslo-utils}}
* {{package|python-osrf-pycommon}}
* {{package|python-os-service-types}}
* {{package|python-parsley}}
* {{package|python-pathlib}}
* {{package|python-pbr}}
* {{package|python-pika}}
* {{package|python-pillow}}
* {{package|python-pint}}
* {{package|python-plaster}}
* {{package|python-pwntools}}
* {{package|python-pycares}}
* {{package|python-pygments}}
* {{package|python-pyperclip}}
* {{package|python-pypump}}
* {{package|python-pyramid}}
* {{package|python-reno}}
* {{package|python-restauth-common}}
* {{package|python-rosdep}}
* {{package|python-rosdistro}}
* {{package|python-rosinstall}}
* {{package|python-rospkg}}
* {{package|python-sane}}
* {{package|python-scripttest}}
* {{package|python-slixmpp}}
* {{package|python-sphinx}}
* {{package|python-sphinxcontrib-websupport}}
* {{package|python-sphinx-intl}}
* {{package|python-statsd}}
* {{package|python-statsmodels}}
* {{package|python-testtools}}
* {{package|python-tracing}}
* {{package|python-txaio}}
* {{package|python-txsocksx}}
* {{package|python-vcstools}}
* {{package|python-webcolors}}
* {{package|python-werkzeug}}
* {{package|python-whoosh}}
* {{package|python-wrapt}}
* {{package|python-wsgi_intercept}}
* {{package|python-wstool}}
* {{package|python-yaql}}
* {{package|python-zope-component}}
* {{package|python-zope-schema}}
* {{package|python2-django1.11}}
* {{package|python2-docs}}
* {{package|python2-matplotlib}}
* {{package|scipy}}
* {{package|seqan2}}
* {{package|shiboken}}
* {{package|sphinx-webtools}}
* {{package|swift-lang}}
* {{package|the-new-hotness}}
* {{package|tortoisehg}}
* {{package|tryton}}
* {{package|tsung}}
* {{package|umit}}
* {{package|virtio-forwarder}}
* {{package|ViTables}}
* {{package|xapian-bindings}}
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 ==
== Benefit to Fedora ==
Line 100: Line 271:
     https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack)
     https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack)
-->
-->
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 ==
== Scope ==
* Proposal owners:
* Proposal owners: remove above-mentioned packages as soon as possible, update {{package|python-sphinx}} to 2.0.0 or newer, provide guidance and help.
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


* Other developers: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Other developers: stop using {{package|python2-sphinx}} (list of affected packages in the description) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


* Release engineering: [https://pagure.io/releng/issues #Releng issue number] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE AS WELL AS FOR SELF CONTAINED CHANGES -->
* Release engineering: [https://pagure.io/releng/issue/8100 #8100] (no Release Engineering impact is anticipated) <!-- REQUIRED FOR SYSTEM WIDE AS WELL AS FOR SELF CONTAINED CHANGES -->
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuild required?  include a link to the releng issue.  
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuild required?  include a link to the releng issue.  
The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing, and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication -->
The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing, and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication -->
** [[Fedora_Program_Management/ReleaseBlocking/Fedora{{FedoraVersionNumber|next}}|List of deliverables]]: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
** [[Fedora_Program_Management/ReleaseBlocking/Fedora{{FedoraVersionNumber|next}}|List of deliverables]]: empty <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Please check the list of Fedora release deliverables and list all the differences the feature brings -->
<!-- Please check the list of Fedora release deliverables and list all the differences the feature brings -->


* Policies and guidelines: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Policies and guidelines: none <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Do the packaging guidelines or other documents need to be updated for this feature?  If so, does it need to happen before or after the implementation is done?  If a FPC ticket exists, add a link here. -->
<!-- Do the packaging guidelines or other documents need to be updated for this feature?  If so, does it need to happen before or after the implementation is done?  If a FPC ticket exists, add a link here. -->


* Trademark approval: N/A (not needed for this Change)
* Trademark approval: not needed for this Change
<!-- If your Change may require trademark approval (for example, if it is a new Spin), file a ticket ( https://fedorahosted.org/council/ ) requesting trademark approval from the Fedora Council. This approval will be done via the Council's consensus-based process. -->
<!-- If your Change may require trademark approval (for example, if it is a new Spin), file a ticket ( https://fedorahosted.org/council/ ) requesting trademark approval from the Fedora Council. This approval will be done via the Council's consensus-based process. -->


Line 124: Line 298:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
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 ==
== How To Test ==
Line 142: Line 319:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
TBD


== User Experience ==
== User Experience ==
Line 155: Line 332:
  - Green has been scientifically proven to be the most relaxing color. The move to a default background color of green with green text will result in Fedora users being the most relaxed users of any operating system.
  - Green has been scientifically proven to be the most relaxing color. The move to a default background color of green with green text will result in Fedora users being the most relaxed users of any operating system.
-->
-->
Already covered by sections above.


== Dependencies ==
== Dependencies ==
Line 160: Line 339:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
Described by the sections above.


== Contingency Plan ==
== Contingency Plan ==


<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* 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. <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
* Contingency deadline: N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency deadline: any time before release <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
* Blocks release? N/A (not a System Wide Change), Yes/No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks release? No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks product? product <!-- Applicable for Changes that blocks specific product release/Fedora.next -->
* Blocks product? No <!-- Applicable for Changes that blocks specific product release/Fedora.next -->


== Documentation ==
== Documentation ==
Line 176: Line 355:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
This page is the documentation.


== Release Notes ==
== Release Notes ==
Line 185: Line 364:
-->
-->


[[Category:ChangePageIncomplete]]
TBD.
 
[[Category:ChangeAcceptedF31]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 192: Line 373:


<!-- Select proper category, default is Self Contained Change -->
<!-- Select proper category, default is Self Contained Change -->
[[Category:SelfContainedChange]]
[[Category:SystemWideChange]]
<!-- [[Category:SystemWideChange]] -->
<!-- [[Category:SystemWideChange]] -->

Latest revision as of 15:21, 6 March 2019


Update Sphinx to version 2 and drop Python 2 support from Sphinx

Summary

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 Package-x-generic-16.pngpython-sphinx to 2.0.x and we drop Package-x-generic-16.pngpython2-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 Package-x-generic-16.pngpython2-sphinx.

Owner

Current status

Detailed Description

See live (or several days old) information of Python dependents of Package-x-generic-16.pngpython2-sphinx at the Python 2 Dropping Database.

We will remove the following (sub)packages:

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:

  • /usr/bin/sphinx-apidoc
  • /usr/bin/sphinx-autogen
  • /usr/bin/sphinx-build
  • /usr/bin/sphinx-quickstart

Their -3 and -3.X suffixed counterparts will be kept as symbolic links for backwards compatibility. Explicit conflicts with old Package-x-generic-16.pngpython2-sphinx will be added and Package-x-generic-16.pngpython2-sphinx will be obsoleted via Package-x-generic-16.pngfedora-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-x-generic-16.pngpython-sphinx to 2.0.0 or newer, provide guidance and help.
  • Other developers: stop using Package-x-generic-16.pngpython2-sphinx (list of affected packages in the description)
  • Policies and guidelines: none
  • Trademark approval: not needed for this Change

Upgrade/compatibility impact

The new Package-x-generic-16.pngpython3-sphinx package will have to conflict with the old Package-x-generic-16.pngpython2-sphinx package because the unversioned executables will be moved from Package-x-generic-16.pngpython2-sphinx to Package-x-generic-16.pngpython3-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-x-generic-16.pngpython2-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.