From Fedora Project Wiki
(Add new NautilusExtensionsPython3 Self-Contained Change)
 
mNo edit summary
Line 189: Line 189:
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.
-->
-->
'''NOTE: Category is actually "ChangeAnnounced". Leaving the category alone in order to permit investigation into a MediaWiki issue'''


[[Category:ChangeReadyForWrangler]]
[[Category:ChangeReadyForWrangler]]

Revision as of 19:52, 29 November 2018


Migrate Python-based Nautilus extensions to Python 3

Summary

The Python backend for the nautilus-python extension will be updated from python2 to python3. All Nautilus extensions written in Python will need to be checked for Python 3 compatibility and updated if necessary. Extensions compatible only with Python 2 will no longer be supported.

Owner

Current status

  • Targeted release: Fedora 30
  • Last updated: 2018-11-29
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

The nautilus-python package allows Nautilus extensions to be written in the Python scripting language. In Fedora releases up to and including Fedora 29, these extensions were executed in a Python 2 environment. With the general move to Python 3 as Fedora's default Python runtime and the impending deprecation of Python 2, nautilus-python will execute extension code in a Python 3 context. Compatibility with Python 3 will be required for all Python-based Nautilus extensions.

(Note: In Fedora 28 the nautilus-python package was named python2-nautilus. For Fedora 29 the name has been reverted to nautilus-python to better indicate its status as a Nautilus component.)

Benefit to Fedora

In addition to eliminating nautilus-python's direct dependency on Python 2, this change will remove all Python-based Nautilus extensions from the list of Fedora components which still require the legacy Python 2 interpreter (which has been deprecated, and is slated for removal). It will allow us to ensure that all Python-based Nautilus extensions still in use are fully compatible with Python 3.

Scope

  • Proposal owners: Build nautilus-python with Python 3 support and deploy.
  • Other developers: N/A (not a System Wide Change)
  • Release engineering: N/A (not a System Wide Change)
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

N/A (not a System Wide Change)

How To Test

Launch the Nautilus file manager and verify that any functionality provided by Python-based extensions is still available.

User Experience

As long as Python 3 compatibility is verified for all Nautilus Python extensions, users will see no impact from this change. If any extensions are not compatible with Python 3 and must be removed, users may notice loss of certain functionality from Nautilus.

Dependencies

Any Nautilus extensions which use nautilus-python will have to be checked for Python 3 compatibility. Repackaging should not be necessary, as the nautilus-python dependency Required by those packages will be carried forward to Python 3 builds.

The list of packages in the Fedora 29 repos which depend on nautilus-python is, as of 2018-11-08:

  • kde-connect-nautilus
  • nautilus-font-manager
  • nautilus-pastebin
  • nautilus-phatch
  • nextcloud-client-nautilus
  • nitroshare-extension-nautilus
  • onionshare
  • owncloud-client-nautilus
  • qdigidoc-nautilus
  • rabbitvcs-nautilus
  • tilix-nautilus
  • tortoisehg-nautilus

Contingency Plan

Continue shipping builds of nautilus-python based on Python 2.

  • Contingency mechanism: N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change)
  • Blocks product? None

Documentation

N/A (not a System Wide Change)

Release Notes

The Nautilus Python extension has switched to the Python 3 runtime, and all Python-based Nautilus extensions now require Python 3 compatibility.

NOTE: Category is actually "ChangeAnnounced". Leaving the category alone in order to permit investigation into a MediaWiki issue