Tuesday, January 25, 2011

Wrap-up: Python ⊕ GNOME Hackfest 2011

A bunch of GNOME hackers spent the last week hacking on the Python bindings and this post gives an account of the achievements and tries to give credit where is due.

First, all attendants made substantial contributions and they and their employers (if not volunteers) should be thanked by their commitment: John (J5) Palmieri (Red Hat), Sebastian Pölsterl (volunteer), Laszlo Pandy (volunteer), Simon Schampijer (OLPC), Ignacio Casal Quinteiro (volunteer), Steve Frécinaux (volunteer), Simon van der Linden (volunteer), Martin Pitt (Canonical), Pavel Holejsovsky (volunteer) and myself (Collabora).


Also, Johan Dahlin (litl), Colin Walters (Red Hat), Paolo Borelli (volunteer) and Mikkel Kamstrup (Canonical) joined us remotely to hack together.

In numbers, at the hackfest were pushed 72 commits to PyGObject, 13 to gobject-introspection and 21 to Gtk+. There was quite a bit of Bugzilla activity as well.

One of the highlights was the push of *lots* of annotations into Gtk+, work submitted by Pavel and reviewed by Johan and some hackfest attendants. This makes a big part of the Gtk+ API accessible through introspection but there will be bugs so testing and corrections are still needed.

Another important contribution has been Martin's work on improving the GVariant and GBus API as exposed by PyGObject. He has a nice blog post explaining his work.

Steve did an amazing job delving into the ugliest innards of PyGObject and fixing some really hard memory leaks. Also, he added several test cases for other reference counting conditions which will help with not breaking it in the future.

Among other things, Laszlo worked on preserving GError information when propagating exceptions to Python and also has been looking at improving considerably our startup speed.

John kept hacking on his rewrite of the invoke path, including all argument validation and marshalling, so we get closer in speed to the static bindings. He gave a presentation explaining his strategy and people in the room seemed to like it. I expect a blog post from him soon on this subject.

Simon (svdlinden) did a lot of bug triaging, code reviews and rationalized our build system, needed after years of regular maintenance hacks.

Sebastian worked mainly on adding overrides, annotations and improving the perl script we provide to make porting easier. This as part of his porting of DVB Daemon to Gtk+ 3.

Nacho kept porting GEdit plugins to introspection and submitted misc. patches as he went, both to core PyGObject and to overrides.

Simon (erikos) started porting some containers in Sugar to Gtk+ 3 with great enthusiasm, but he found that the recent API changes in Gtk+ weren't supported by PyGObject nor gobject-introspection. Several fixes went in and others are still travelling through Bugzilla.

Johan and Colin helped out with reviews and answering our questions about how best to fix things in gobject-introspection, Paolo was there spotting any problems with the code that was being checked in and Mikkel was porting an Ubuntu app and reporting issues.

To finish, I spent most of the time reviewing and discussing approaches with the others but also managed to find some time to do some actual coding myself. Hope to find time during this week to push the last patches through bugzilla and make a new release with all that good stuff.

I'm pretty sure I have forgotten to give credit about something to someone so I apologize in advance and will gladly update this post if I'm told to :)

Thanks to Collabora for sponsoring the hotel, coffee, everynight's beer and the nice duckfest on Thursday at the U Slovanské lípy, check out the photos below:



The GNOME Foundation sponsored the travel and lodging for the participants of the hackfest:


We are also very obliged to the people at the brmlab hackerspace who hosted us during the whole week, they were really great:


Friday, December 3, 2010

Python ♥ GNOME Hackfest 2011

Looks like we are almost ready for one more push to Python development in GNOME 3, as originally announced by J5.

From 17th to 21th of January we'll be gathering at the brmlab hackerspace in Prague to hack on the applications of the brave souls that are taking the lead and port them to the future: Gtk+ 3, Python 3 and introspection.

We are having several GNOME volunteers, and Canonical, Collabora, OLPC, openSUSE and Red Hat  are sending their people to lend a hand.

If you think you should be there, please act quickly and add your name to the wiki before J5 secures the budget. If you would like to contribute to the funds or in any other way that would help this hackfest become a success, please send email to the GNOME Foundation board.

Wednesday, October 27, 2010

The cost of doing your own shell on top of GNOME

In this post, Dave Neary writes:

OLPC had many teething problems with the Sugar desktop environment. Bugs, stability and performance issues plagued the project for many months, to the point where they abandoned the development of the stack as the primary target platform for the devices. The project lives on in Sugar Labs, thans to a broad and vibrant developer community.
-- snip --
There is another possibility which seems to me more plausible: building a rock solid and functional desktop is hard. Really hard.

Just wanted to mention that the Sugar team never had more than 4 full-time paid developers (and most of the time far less than that), and this is relevant to this discussion because shows that with the right approach and knowledge in the team, the challenge doesn't need to be so insurmountable. As a comparison, I would be very surprised if the other GNOME-based shells mentioned would have had teams with less than a few dozens of engineers.

Now, Sugar as a project and its architecture were set up by the Desktop Team at Red Hat, composed by long-time and well-known GNOME hackers, of which most of them are now involved in the GNOME Shell, maybe not by chance.

With this I want to say that maybe Canonical has in their Unity team people with equivalent experience, who have shaped the GNOME project since its inception and thus know how to take this challenge. If that's the case, then I think they would have a bigger chance than what Dave concedes.

Friday, October 22, 2010

Now moving for real

In January I tried to move from Sugar to other projects, but Collabora prevented it by hiring me to work on Sugar and Telepathy integration.

Nine months and a release cycle later, I'm doing it for real. During the next months I will be switching to work on totally different stuff, involving Clutter and WebKit hacking.

Also plan to keep hacking a bit on Telepathy, would be a pity stop using what I learned during most of this year.

Tuesday, October 5, 2010

Notes on porting a Python application to GNOME 3

For you, GNOME Planet readers, Jordi is porting Naufrago! from PyGTK to GNOME 3 (so PyGObject + introspection) and has posted in his blog some notes that will help others doing the same.

Monday, October 4, 2010

Lost email

My email client just permanently deleted a message marked as spam before I could open it, but had time to glance the subject line and it seemed to be a request for contacts in LatAm related to the OLPC deployments there.

So if the person who sent it is reading this, just send it again.

Friday, October 1, 2010

Get the latest PyGObject and introspection bits!

So people are starting to port their apps to introspection from the about-to-be-obsolete PyGtk+ bindings and I'm getting questions in #python @ GIMPNet about how to get the latest and greatest version without having to build stuff.

For those in Fedora: you can get it already from F15, will be backported to F14 after it's out.

For those in Debian: watch experimental for updated packages soon.

For those in Ubuntu: update to Maverick and watch the telepathy PPA for updated packages soon.

Update from comments:

For those in openSUSE: you can get it already from openSUSE Factory, and will be backported to 11.3 as part of the GNOME 2.32 backport.

For those in Microsoft Windows: no binary packages have been built at this moment and nobody is currently known to be working on it.

If anybody has corrections or additions, please comment and I will update the main post.