Earlier this week at GUADEC, the always affable Dave Neary presented his GNOME Census work. Unfortunately, I was not there to see it, but I read his excellent post on the topic.
One of the reactions from the survey was that Red Hat are responsible for 16% of the contributions to GNOME whereas Canonical are responsible for a measly 1%.
Of course, this has generated some flame, such as a particularly angry post from Greg DeKoenigsberg and the rather pithy response from Jeffrey Stedfast. Greg is clearly pissed, and Jeffrey is clearly pissed at Greg being pissed, and I suspect Greg is going to get even more pissed at Jeffrey being pissed. The worse thing is that they are both going to be pissed at me for this blog post.
First I want to put these figures in perspective and then I want to talk about how we read the figures we do have.
I think the GNOME Census report is excellent, and it provides some excellent visibility into contributions in GNOME, but it only takes into account upstream contributions to GNOME itself. What the report doesn’t take into account are upstream contributions that are built on the GNOME platform but (a) not part of official GNOME modules, and (b) hosted and developed elsewhere, such as Launchpad. As such, while the report is accurate for showing code and contributions accepted into GNOME, there are also many projects built on GNOME technology that are not taken into account due to non-inclusion in GNOME modules or being developed outside of GNOME infrastructure.
As a general rule, Canonical staff develop inside Launchpad. The reason is simple; Launchpad and Bazaar provide a powerful development environment that was also built by Canonical and we therefore have lots of internal skills and best practice based on these tools. Launchpad is also a fundamental component in Ubuntu development and all the software we develop ultimately ships in Ubuntu, so using the same development forge makes sense. Finally, the site is a Free Software and Open Source project, so there really no philosophical reason to move, testified by the 18,000+ Free Software projects happily using Launchpad already.
Canonical is actively developing upstream desktop software, but doing it in Launchpad. Some examples include:
- Messaging Menu
- Application Indicators
- Indicator Applet
- Indicator Date Time Applet
- Sound Indicator
- Me Menu
- Indicator Global Menu
This is by no means the full list, and is other work such as Simple Scan, the Hardware Drivers tool, Computer Janitor, and more. Many of these contributions (such as Application Indicators and Simple Scan) could bring real value to GNOME, but they have not been accepted. I know that the Canonical engineers who work on them would be delighted if they were included in GNOME.
The above list also doesn’t include significant upstream investment in other areas such as Upstart, Bazaar, Launchpad, and a full team building Ubuntu. I don’t want to turn this into a “who contributed more” competition, but I think for some to suggest Canonical is a bad citizen who is not contributing upstream code is unreasonable. To suggest that Canonical has limited code inside approved GNOME modules is fair.
So that was the first thing I wanted to clarify; Canonical does invest heavily in upstream work, but GNOME is not the only home for upstream contributions.
If there is one thing that the GNOME Census has really outlined is that we should all be proud of Red Hat and their contributions to GNOME. You only have to take a look at all the red items on this image to get a feeling for the wonderful work that Red Hat is doing inside GNOME. Novell too. Look the green items in there; Novell has done a wonderful job maintaining many modules inside GNOME. In fact, there are many companies investing inside GNOME modules and inside GNOME infrastructure. I don’t believe it would be fair to undermine these contributions in any way; they are testament to the ethos of those companies and their commitment to GNOME. All of the people working at those companies are doing good work within the spirit of Free Software.
Likewise, I don’t think it is fair to undermine Canonical’s contributions just because many of them exist outside of GNOME. Our engineers are also doing good work within the spirit of Free Software. I have never claimed for a second that Canonical are equal to Red Hat and Novell in terms of our accepted contributions in GNOME; it is clear that there are far few contributions from Canonical staff inside accepted GNOME modules, but this does not for a second mean that Canonical is not (a) producing upstream contributions and (b) heavily invested in the GNOME platform. Ubuntu, our primary product is a GNOME desktop, and the vast majority of our engineers are GNOME users and developers and they work every day on a GNOME based product.
So in a nutshell, this is my take: both Red Hat and Canonical invest heavily in Open Source development, but they do it in different ways and different places. The GNOME Census clearly outlines that within GNOME modules, Red Hat are doing far more, but that doesn’t mean that Canonical are sitting on their thumbs and doing nothing, far from it.