From Fedora Project Wiki
No edit summary
(Update Contingency Plan and docs)
Line 88: Line 88:


== How To Test ==
== How To Test ==
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.
See [[FinalizingFedoraSwitchtoPython3#How_To_Test|How_To_Test section in the Finalizing Fedora's Switch to Python 3]] document.
 
Remember that you are writing this how to for interested testers to use to check out your change implementation - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your change.
 
A good "how to test" should answer these four questions:
 
0. What special hardware / data / etc. is needed (if any)?
1. How do I prepare my system to test this change? What packages
need to be installed, config files edited, etc.?
2. What specific actions do I perform to check that the change is
working like it's supposed to?
3. What are the expected results of those actions?
-->
 
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
 
== User Experience ==
<!-- If this change proposal is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)


== Dependencies ==
== Dependencies ==
Line 114: Line 94:


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


== 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.  -->
* Contingency mechanism: (What to do?  Who will do it?) In case the change is not completed in time, it will be moved to the next Fedora release.
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency deadline: beta freeze
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
* Blocks release? No
* Contingency deadline: N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks product? No
<!-- 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 product? product <!-- Applicable for Changes that blocks specific product release/Fedora.next -->


== Documentation ==
== Documentation ==
<!-- Is there upstream documentation on this change, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
* [[FinalizingFedoraSwitchtoPython3]]
 
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/6AIJ6CYUYXACKR4TJH2ATY2JYWSHPRSG/ Discussion on Fedora devel mailing list]
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/DQ4VMCKFO7I5ZVRDTGEMISG6LG7P7BM7/#Q225ZPP7R5OAI6MWDW7D5HUNMPIFV3EI Mass package change (python2- binary package renaming), part 1]
N/A (not a System Wide Change)
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/JBLBDFGQJZ5ZDNXPKW5CHNTWGEQ2YTYJ/ MASS CHANGE announcement: python2- prefix renaming, part 2]
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/EJ5XP2R54V62K7FD5DIPQS3ZYKPUIULH/ Mass Pull Request filing for ambiguous Python 2 requirements].


== Release Notes ==
== Release Notes ==
Line 138: Line 116:
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
-->
-->
TBD


[[Category:ChangePageIncomplete]]
[[Category:ChangePageIncomplete]]

Revision as of 13:58, 19 December 2017


Eliminate the python- prefix from the Python 2 package names and /usr/bin/python from shebangs

Summary

With Python 2 approaching it's EOL, we are trying to prepare Fedora for a transition to Python 3 as default, so that python without a version number means Python 3. This Fedora change is the first step on the way to achieving this.

Owner

Current status

  • Targeted release: Fedora 28
  • Last updated: 2017-12-19
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

Finalizing Fedora's Switch to Python 3 document provides detailed information on the matter. This Fedora change covers only Phase 1 of the transition steps, and aims to clean up Fedora packages in accordance with recent changes to Python packaging guidelines regarding the usage of python without a version number in package names, requirements, shebangs, etc. The clean up covers:

  • Renaming Python 2 binary RPMs from python-foo to python2-foo

This is already partially done by applying automated patches as announced in Mass package change (python2- binary package renaming). The packages which still need to be fixed are tracked in PortingDB.

  • Fixing ambiguous Python 2 dependency declarations, i.e using python2-foo instead of python-foo in requirements

We have started opening automatic Pull Requests with patches as announced in Mass Pull Request filing for ambiguous Python 2 requirements. The packages which will be targeted are tracked in PortingDB.

  • Ensuring that /usr/bin/python or /usr/bin/env python shebangs are replaced with either /usr/bin/python2 or /usr/bin/python3


Each of the above conforms to the Python packaging guidelines and was approved by FPC. The work on the change is already in progress and will be tracked by this Fedora change.

Benefit to Fedora

See Benefit to Fedora section in the Finalizing Fedora's Switch to Python 3 document.

Scope

  • Proposal owners:

Proposal owners are to communicate the idea to the packagers and fix all affected packages via Mass_package_changes procedure.

  • Other developers:

Package maintainers will be asked to review Pagure PRs.

  • Policies and guidelines:
    • Using python2/python3 instead of python in binary RPM package name guidelines, fpc
    • Using python2/python3 instead of python in (Build)Requires, guidelines, fpc
    • Using /usr/bin/python2 instead of /usr/bin/python in shebangs and Requires, guidelines, fpc

Upgrade/compatibility impact

N/A (not a System Wide Change)

How To Test

See How_To_Test section in the Finalizing Fedora's Switch to Python 3 document.

Dependencies

TBD

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) In case the change is not completed in time, it will be moved to the next Fedora release.
  • Contingency deadline: beta freeze
  • Blocks release? No
  • Blocks product? No

Documentation

Release Notes

TBD