Features/Python3

From Sugar Labs
Jump to: navigation, search

Summary

Migration from Python 2 to Python 3, while continuing to support Python 2 where possible.

Owner

Current status

  • Targeted release: 0.115
  • Last updated: 2019-08-29
  • Percentage of completion: 10%

Detailed Description

Port to Python 3 via the Six environment.

Security updates and upstream support for Python 2 are due to be withdrawn, and this will prevent running Sugar on Linux.

Downstream distributions are removing Python 2 packages.

Benefit to Sugar

Benefit to the platform is continued availability. Activities will have access to Python 3 language features. Systems with Python 2 available will continue to run Python 2 activities.

Scope

Components to be changed include datastore (carquinyol), toolkit (sugar3), gwebsockets, artwork, shell (jarabe), and Sucrose activities.

Specific changes are tracked at https://github.com/orgs/sugarlabs/projects/1

UI Design

No UI impact.

How To Test

https://github.com/sugarlabs/sugar/blob/master/docs/development-environment.md#native-sugar

User Experience

Systems without Python 2 available will have a severe reduction in available activities.

Dependencies

None.

Contingency Plan

None. Sugar will be in jeopardy.

Documentation

https://github.com/sugarlabs/sugar-docs/blob/master/src/python-porting-guide.md

Release Notes

Sugar is ported to Python 3.

Comments and Discussion