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
- Name: Kalev Lember, Frank Dana
- Email: klember@redhat.com, ferdnyc@gmail.com
- Release notes owner:
Current status
- Targeted release: Fedora 30
- Last updated: 2019-01-07
- Tracker bug: #1664077
- Release notes tracker: #278
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)
- List of deliverables: 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.