From Fedora Project Wiki
(add documentation)
mNo edit summary
 
(11 intermediate revisions by 3 users not shown)
Line 31: Line 31:
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=1629080 #1629080]
* Release notes tracking: [https://pagure.io/fedora-docs/release-notes/issue/216 #216]


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


On Fedora 27 to 29, FreeIPA client and server packages use Python 3 default. Additionally FreeIPA provides Python 2 packages. The Python 2 packages are not used by FreeIPA, but are merely provided for backwards compatibility, e.g. Python 2 applications that python2-ipaclient to communicate with a FreeIPA server.  
On Fedora 27 to 29, FreeIPA client and server packages use Python 3 default. Additionally FreeIPA provides Python 2 packages. The Python 2 packages are not used by FreeIPA, but are merely provided for backwards compatibility, e.g. Python 2 applications that utilize python2-ipaclient to communicate with a FreeIPA server.  


The FreeIPA upstream project is going to drop support for Python 2.7 in the upcoming FreeIPA release 4.8.0. Python 2 support is not only causing development and testing overhead. It's also blocking improvements like new 389-DS installer, use of new Python features, and more. The removal of Python 2 support was [https://lists.fedoraproject.org/archives/list/freeipa-devel@lists.fedorahosted.org/thread/KU6R2DV47DR43PBCHHPT4OYVVQJEXTVG/ announced] on the FreeIPA development on 2018-09-03.
The FreeIPA upstream project is going to drop support for Python 2.7 in the upcoming FreeIPA release 4.8.0. Python 2 support is not only causing development and testing overhead. It's also blocking improvements like using new python-based 389-DS installer, use of new Python features, and more. The removal of Python 2 support was [https://lists.fedoraproject.org/archives/list/freeipa-devel@lists.fedorahosted.org/thread/KU6R2DV47DR43PBCHHPT4OYVVQJEXTVG/ announced] on the FreeIPA development on 2018-09-03.


=== Removed packages ===
=== Removed packages ===
Line 49: Line 50:
== Benefit to Fedora ==
== Benefit to Fedora ==


The removal of Python 2 support is in alignment with [[Changes/Mass_Python_2_Package_Removal|Mass Python 2 Package Removal]] change proposal.  
The removal of Python 2 support is in alignment with [[Changes/Mass_Python_2_Package_Removal|Mass Python 2 Package Removal]] proposal. FreeIPA depends has a large list of dependencies. The change makes it possible to drop more Python 2 packages.


== Scope ==
== Scope ==
Line 55: Line 56:
** Release FreeIPA 4.8.0 until mid January 2019
** Release FreeIPA 4.8.0 until mid January 2019
** Build and deliver FreeIPA 4.8.0 packages before 2019-01-29
** Build and deliver FreeIPA 4.8.0 packages before 2019-01-29
** Add removed packages to ''fedora-obsolete-packages''.


* Other developers:
* Other developers:
Line 61: Line 63:
** Port Ipsilion Project to Python 3 and no longer depend on FreeIPA's Python 2 packages.
** Port Ipsilion Project to Python 3 and no longer depend on FreeIPA's Python 2 packages.


* 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 -->
FreeIPA team is willing to help to aforementioned projects with their port to use Python 3 FreeIPA libraries.
<!-- 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 -->
* Release engineering: [https://pagure.io/releng/issue/7760 #7760] There is no releng work needed for this change.
** [[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]]: N/A (no new feature, just package removal)
<!-- Please check the list of Fedora release deliverables and list all the differences the feature brings -->


* Policies and guidelines: N/A (not needed for this Change)
* Policies and guidelines: N/A (not needed for this Change)
Line 73: Line 74:
== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==


The removal of Python 2 support will not affect FreeIPA server or client systems.
The removal of Python 2 support will not affect FreeIPA server or client systems. However 3rd party applications and scripts may be affected. These applications and scripts must be ported to Python 3.


However 3rd party applications and scripts may be affected. These applications and scripts must be ported to Python 3.
On upgrade from Fedora 29, previously installed ''python2-ipa*''  packages cannot be retained. All ''python[23]-ipa*'' packages have a hard version dependency on common files with a requires line like ''Requires: freeipa-common = %{version}-%{release}''. This requires cannot be satisfied for existing ''python2-ipa*''. Therefore ''python2-ipa*'' packages have to added to ''fedora-obsolete-packages'' package. This will ensure that the Python 2 packages are uninstalled on system upgrade.


== How To Test ==
== How To Test ==
Line 88: Line 89:
== Dependencies ==
== Dependencies ==


* fedora-obsolete-packages
* ipsilon-tools-ipa
* ipsilon-tools-ipa
* python2-ipa-desktop-profile-client
* python2-ipa-desktop-profile-client
Line 108: Line 110:
FreeIPA no longer supports Python 2. All ''python2-ipa*'' packages and ''python-ipa*'' aliases are discontinued.
FreeIPA no longer supports Python 2. All ''python2-ipa*'' packages and ''python-ipa*'' aliases are discontinued.


[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF30]]
<!-- 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 -->

Latest revision as of 19:54, 14 September 2018

FreeIPA Python 2 Removal

Summary

FreeIPA 4.8 will require Python 3.6+ and therefore no longer provide Python 2 packages on Fedora 30.

Owner

Current status

Detailed Description

On Fedora 27 to 29, FreeIPA client and server packages use Python 3 default. Additionally FreeIPA provides Python 2 packages. The Python 2 packages are not used by FreeIPA, but are merely provided for backwards compatibility, e.g. Python 2 applications that utilize python2-ipaclient to communicate with a FreeIPA server.

The FreeIPA upstream project is going to drop support for Python 2.7 in the upcoming FreeIPA release 4.8.0. Python 2 support is not only causing development and testing overhead. It's also blocking improvements like using new python-based 389-DS installer, use of new Python features, and more. The removal of Python 2 support was announced on the FreeIPA development on 2018-09-03.

Removed packages

  • python2-ipalib
  • python2-ipaclient
  • python2-ipaserver
  • python2-ipatests
  • python2-ipa-desktop-profile-client (dependency)

Benefit to Fedora

The removal of Python 2 support is in alignment with Mass Python 2 Package Removal proposal. FreeIPA depends has a large list of dependencies. The change makes it possible to drop more Python 2 packages.

Scope

  • Proposal owners:
    • Release FreeIPA 4.8.0 until mid January 2019
    • Build and deliver FreeIPA 4.8.0 packages before 2019-01-29
    • Add removed packages to fedora-obsolete-packages.
  • Other developers:
    • Port Fleet Commander's fc-admin to Python 3 and no longer depend on FreeIPA's Python 2 packages.
    • Drop Fleet Command's Python 2 desktop profile package
    • Port Ipsilion Project to Python 3 and no longer depend on FreeIPA's Python 2 packages.

FreeIPA team is willing to help to aforementioned projects with their port to use Python 3 FreeIPA libraries.

  • Release engineering: #7760 There is no releng work needed for this change.
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

The removal of Python 2 support will not affect FreeIPA server or client systems. However 3rd party applications and scripts may be affected. These applications and scripts must be ported to Python 3.

On upgrade from Fedora 29, previously installed python2-ipa* packages cannot be retained. All python[23]-ipa* packages have a hard version dependency on common files with a requires line like Requires: freeipa-common = %{version}-%{release}. This requires cannot be satisfied for existing python2-ipa*. Therefore python2-ipa* packages have to added to fedora-obsolete-packages package. This will ensure that the Python 2 packages are uninstalled on system upgrade.

How To Test

  • A fresh Fedora 30 installation will no longer have python2-ipa* packages available.
  • On upgrade from Fedora 29, all python2-ipa* packages are uninstalled.

User Experience

N/A

Dependencies

  • fedora-obsolete-packages
  • ipsilon-tools-ipa
  • python2-ipa-desktop-profile-client
  • fleet-commander-admin

Contingency Plan

  • Contingency mechanism: Keep shipping FreeIPA 4.7
  • Contingency deadline: 2019-01-31
  • Blocks release? No
  • Blocks product? N/A

Documentation

This page is the main documentation.

Also see https://pythonclock.org/ and Mass Python 2 Package Removal.

Release Notes

FreeIPA no longer supports Python 2. All python2-ipa* packages and python-ipa* aliases are discontinued.