From Fedora Project Wiki
(Create new change proposal for removal of Python 2 support from FreeIPA)
 
mNo edit summary
 
(15 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 ==


The FreeIPA upstream project is going to drop support for Python 2.7 in the upcoming release 4.8.
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 [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 43: Line 46:
* python2-ipaserver
* python2-ipaserver
* python2-ipatests
* python2-ipatests
* python2-ipa-desktop-profile-client (dependency)


== Benefit to Fedora ==
== Benefit to Fedora ==


<!-- What is the benefit to the distribution?  Will the software we generate be improved? How will the process of creating Fedora releases be improved?
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.
 
      Be sure to include the following areas if relevant:
      If this is a major capability update, what has changed?
          For example: This change introduces Python 5 that runs without the Global Interpreter Lock and is fully multithreaded.
      If this is a new functionality, what capabilities does it bring?
          For example: This change allows package upgrades to be performed automatically and rolled-back at will.
      Does this improve some specific package or set of packages?
          For example: This change modifies a package to use a different language stack that reduces install size by removing dependencies.
      Does this improve specific Spins or Editions?
          For example: This change modifies the default install of Fedora Workstation to be more in line with the base install of Fedora Server.
      Does this make the distribution more efficient?
          For example: This change replaces thousands of individual %post scriptlets in packages with one script that runs at the end.
      Is this an improvement to maintainer processes?
          For example: Gating Fedora packages on automatic QA tests will make rawhide more stable and allow changes to be implemented more smoothly.
      Is this an improvement targeted as specific contributors?
          For example: Ensuring that a minimal set of tools required for contribution to Fedora are installed by default eases the onboarding of new contributors.
 
    When a Change has multiple benefits, it's better to list them all.
 
    Consider these Change pages from previous editions as inspiration:
    https://fedoraproject.org/wiki/Changes/Annobin (low-level and technical, invisible to users)
    https://fedoraproject.org/wiki/Changes/ParallelInstallableDebuginfo (low-level, but visible to advanced users)
    https://fedoraproject.org/wiki/Changes/VirtualBox_Guest_Integration (primarily a UX change)
    https://fedoraproject.org/wiki/Changes/NoMoreAlpha (an improvement to distro processes)
    https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack)
-->


== Scope ==
== Scope ==
Line 78: 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 84: 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 95: Line 73:


== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
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.
N/A (not a System Wide Change)
 
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 111: Line 89:
== Dependencies ==
== Dependencies ==


* fedora-obsolete-packages
* ipsilon-tools-ipa
* ipsilon-tools-ipa
* python2-ipa-desktop-profile-client
* python2-ipa-desktop-profile-client
Line 123: Line 102:


== Documentation ==
== Documentation ==
N/A (not a System Wide Change)
This page is the main documentation.
 
Also see https://pythonclock.org/ and [[Changes/Mass_Python_2_Package_Removal|Mass Python 2 Package Removal]].


== Release Notes ==
== Release Notes ==
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this change, indicate them here.  A link to upstream documentation will often satisfy this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release.


Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
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 -->
Line 138: Line 116:
<!-- After review, the Wrangler will move your page to Category:ChangeReadyForFesco... if it still needs more work it will move back to Category:ChangePageIncomplete-->
<!-- After review, the Wrangler will move your page to Category:ChangeReadyForFesco... if it still needs more work it will move back to Category:ChangePageIncomplete-->


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

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.