Changes

4,060 bytes added ,  01:09, 29 July 2018
Created page with "= Port Sugar Labs' Python code to Python 3 = == Project Introduction == Sugar currently uses Python 2. Since support for python 2 is being drawn, we are porting our code to P..."
= Port Sugar Labs' Python code to Python 3 =

== Project Introduction ==
Sugar currently uses Python 2. Since support for python 2 is being drawn, we are porting our code to Python 3.

It is one of the [https://wiki.sugarlabs.org/go/Goals/2018_Submissions/Migrate_all_core_Sugar_Labs_code_to_Python3 goals for Sugar Labs] for 2018, with a suggested timeframe of ~12-16 months for completing the project.

The project was taken up by Sugar Labs in [https://wiki.sugarlabs.org/go/Summer_of_Code/2018 Google Summer of Code 2018]

== Project Summary ==
The project progress can be tracked [https://github.com/orgs/sugarlabs/projects/1 here].

;Sugar
: Target: Port entirely to Python 3
: WIP: https://github.com/Pro-Panda/sugar/tree/python3
: Status: While some critical issues still persist, most of the functionality is running and tested.

;Sugar-Toolkit-Gtk3
: Target: Should be compatible with both Python 2 and Python 3, to support the large number of activities currently in Python 2
: WIP: https://github.com/Pro-Panda/sugar-toolkit-gtk3/tree/python3-port
: Status: Mostly complete; what remains is an entire project in itself of [https://github.com/orgs/sugarlabs/projects/4 porting the Telepathy Bindings]

;Sugar-Datastore
: Target: Port entirely to Python 3
: WIP: https://github.com/Pro-Panda/sugar-datastore/tree/python3-port
: Status: Complete(possible fix patches do come up while porting sugar); Fedora packaging and testing remains

;Sugar-Artwork
: Target: Port entirely to Python 3 (use system empy bindings for Python 3)
: WIP: https://github.com/Pro-Panda/sugar-artwork/tree/python3-port
: Status: Complete; Fedora packaging and testing remains

;Sugar Desktop Activities

{| style="text-align: center;"
! | Activity
! Status [WIP/Ported]
! Pull Request
|-

|Log
|Ported
|[https://github.com/sugarlabs/log-activity/issues/9 PR link]
|-

|JukeBox
|Ported
|[https://github.com/sugarlabs/jukebox-activity/pull/20 PR link]
|-

|Abacus
|Ported
|[https://github.com/sugarlabs/activity-abacus/pull/15 PR link]
|-

|Calculate
|Ported
|[https://github.com/sugarlabs/sugarlabs-calculate/issues/53 PR link]
|-

|Chat
|Ported
|[https://github.com/sugarlabs/chat/issues/13 PR link]
|-

|CowBulls
|Ported
|[https://github.com/sugarlabs/CowBulls-activity/issues/11 PR link]
|-

|Finance
|Ported
|[https://github.com/sugarlabs/finance-activity/issues/16 PR link]
|-

|Hello-world
|Ported
|[https://github.com/sugarlabs/hello-world/issues/3 PR link]
|-

|Imageviewer
|Ported
|[https://github.com/sugarlabs/imageviewer-activity/issues/26 PR link]
|-

|Read
|Ported
|[https://github.com/sugarlabs/read-activity/issues/21 PR link]
|-

|Spirolaterals
|Ported
|[https://github.com/sugarlabs/spirolaterals/issues/12 PR link]
|-

|Terminal
|Ported
|[https://github.com/sugarlabs/terminal-activity/issues/29 PR link]
|-

|Write
|Ported
|[https://github.com/sugarlabs/write-activity/issues/24 PR link]
|-

|Nutrition
|Ported
|[https://github.com/sugarlabs/nutrition/issues/4 PR link]
|-

|}

== Contributing to the Project ==
There are several ways of contributing to the project
; Port Telepathy bindings
: Telepathy does not have python 2 bindings and needs to be ported to its PyGObject bindings as a prerequisite for porting to Python 3
: See https://github.com/orgs/sugarlabs/projects/4

; Test Debian Packages
: Debian packages for core modules here: https://github.com/Pro-Panda/sugar-packages
: Please install, test and report bugs, (or better, submit fix patches)

; Fedora Packaging
: Make Fedora packages of core modules (WIP links above) and test them

; Port Sugar Desktop Activities to Python 3:
: See the guide to port activities to Python 3: https://github.com/sugarlabs/sugar-docs/blob/master/src/python-porting-guide.md

; Improve test coverage
: Sugar and the components lack in testing mechanisms and scripts. Our current test coverage is very basic and minimal. Improving the same is critical and the best time would be to so while Porting and testing the components
: Some test scripts are here - https://github.com/Pro-Panda/sugar-python3-tests
43

edits