Features/GTK3/Desktop Summit activities

From Sugar Labs
< Features‎ | GTK3
Revision as of 10:35, 5 August 2011 by DanielDrake (talk | contribs) (Created page with "A [http://wiki.desktopsummit.org/Workshops_%26_BoFs/2011/Hacking_with_PyGObject PyGObject hacking/porting day] will be run on August 10th at the desktop summit. Although it is pr...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

A PyGObject hacking/porting day will be run on August 10th at the desktop summit. Although it is probably too early to port Sugar (with Features/GTK3 only written and announced a few days before the event), some fundamental important activities could happen:

Engage knowledgeable people

There will be knowledgeable people at the event - Tomeu, J5, and more. It would be great if Sugar contributors could sit down with them, ask them to read Features/GTK3, and discuss. Does that look sensible? What considerations have been missed? etc.

Polish no-hippo work

Raul and Walter have done a great job eliminating hippocanvas from the whole of Sugar. This work needs to be polished and tested.

Some of this work is invasive and involves API changes and breaks activities like Chat, but if there are any self-contained changes, could they be upstreamed for 0.94? Particularly in sugar-toolkit. This would help decrease the complexity of the task.

Initial PyGI experiment

Porting a minimalistic part of sugar-toolkit (along with a minimalistic activity) to PyGI/GTK3 would be a great proof-of-concept and a great way of raising attention to issues that we have not considered.

Here is an experiment that would be interesting:

  1. Port the HelloWorld activity to GTK3, and change all imports of "sugar" to "sugar1".
  2. Copy the "sugar" module (in /usr/lib/python2.7/site-packages) to "sugar1"
  3. Inside sugar1, use a regular expression to replace all "import sugar" with "import sugar1", and "from sugar import foo" with "from sugar1 import foo"
  4. Modify /usr/bin/sugar-activity to import sugar1, instead of sugar.
  5. Launch HelloWorld activity
  6. HelloWorld will fail inside some certain sugar1 class, where PyGTK is being mixed with PyGI. Port that sugar1 class to PyGI.
  7. Repeat the above 2 steps until HelloWorld works.

Hopefully, sugar-toolkit classes are not too intertwined, so this experiment wouldn't eat too much time, due to not having to port too many sugar-toolkit classes (famous last words).