July 30, 2010, 11:28 AM — I'll admit it, when I saw the results of the GNOME Census put together by Dave Neary, I was ticked off, too.
Neary, who highlighted the results of his survey of the GNOME 2.30 code at GUADEC this week, set off a minor firestorm within the community when it was noted that among all the organizational commiters to the GNOME base code, Canonical, makers of the Ubuntu distribution, seemed to have contributed very little to GNOME.
Right now, the popular rallying cry for Canonical's critics is that Red Hat has placed 16.3 percent of GNOME's code commits, as opposed to Canonical's 1.03 percent.
Actually, I was a bit more specific. My first reaction to seeing the table of commits was incredulousness at seeing how Canonical compared to Sun Microsystems, not Red Hat.
(As an aside, and to be more fair to Sun, I should note that open source developer Carlo Daffara gave an informative reply to my initial tweet: "Sun made lots of work on GNOME--unfortunately, too few people noticed it. The work on security labels for GNOME was nice.")
Meanwhile, while I was working out my inner demons about Sun, others in the community were angry about Canonical's low amount of commits compared to Red Hat. And the chief pitchfork carrier, in this case, was Greg DeKoenigsberg, CTO of The Institute for the Study of Knowledge Management in Education, a non-profit in Half Moon Bay, CA, and formerly the Senior Community Architect at Red Hat.
In a very heated blog post, DeKoenigsberg blasted Canonical for their lack of participation in GNOME, particularly in light of the fact that Canonical has often stated that their upstream contributions to the desktop are a key focus of their development strategy.
"I mean, I always knew that Red Hat put in a lot of work into GNOME, because I saw it every day--but until now, I thought that Canonical also put a lot of work into GNOME. They’ve certainly given the impression, over the last several years, of having put a lot of work into GNOME. They’ve been very successful at positioning themselves as the Eternal Champion of the Linux Desktop, and positioning Red Hat as the boring old has-beens who long ago abandoned the Desktop fight, and just do backroom server work that Real Linux People don’t care about," DeKoenigsberg wrote.
Read the rest, bring a fire extinguisher. DeKoenigsberg is angry, and may have a right to be.
Canonical CTO Matt Asay made a comment soon after he noted DeKoenigsberg's blog entry "spanking" Canonical that finally made me stop and think that maybe there's more to this.
"Important to note [the GNOME Census] all-time GNOME contributions. Canonical will never catch up with Red Hat. It's not helpful data," Asay wrote.
And that is a very important point: in the grand scheme of total commits to GNOME, there is no way Canonical will be able to match Red Hat's totals now. If the numbers reflected commits over the last year or so, I would be willing to bet that Canonical's numbers would be closer to Red Hat's.
There's a larger issue here, though, that Canonical seems unwilling to address, as illustrated by their public responses to this situation. I mentioned a comment Asay made about Canonical getting spanked by DeKoenigsberg? Here's the entire tweet:
"[DeKoenigsberg] spanks Canonical for not contributing enough to Gnome... Fair [point], but we contribute tens of millions of users," Asay wrote.
This comment was echoed in Jono Bacon's more robust response earlier this morning: "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."
Bacon also highlighted that while Canonical places a strong premium on desktop development, many of the changes are not at the core GNOME level.
"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," Bacon stated.
So, to the smaller issue of just how much code Canonical contributes to GNOME, it seems that a lot of the work they contribute are just not showing up in GNOME proper. It would be nice to see where their work is showing up, since when Canonical was criticized in 2008 about a lack of contributions to the Linux kernel, then-CEO Mark Shuttleworth said in an Ars Technica interview:
"The ecosystem is broader, deeper and richer than Greg was making out and those relationships are more complex than [Linux kernel developer] Greg [Kroah-Hartman] was making out. I believe Ubuntu and Canonical are making a very big difference in free software, and that has little to do with how many patches in the kernel have an @canonical.com email address associated with them," he said. "I'm not going to hire lots of people to keep Greg happy. I do continue to hire people to make free software into an amazing experience for me, my friends, my colleagues and peers, and everyone else I meet in a plane, train or on the street."
This leads me to the broader problem Canonical has. People are not angry just because Canonical doesn't seem to contribute to the kernel, or GNOME, or what have you. People are angry with Canonical because they have continually marketed themselves as $DEITY's gift to Linux and yet every time there are stats like this released, the company still seems to fall short.
The responses coming out today tell me this disconnect is still very prevalent in Canonical's culture.
From Asay: We bring more users to Linux. That's true. While DeKoenigsberg complains that Canonical is nothing more than a "marketing organization masquerading as an engineering organization," Red Hat (and Novell and all the other commercial distros) need to recognize that in terms of packaging and marketing Linux, Canonical has done more for adding desktop Linux users than Red Hat or Novell ever have. They may not like that, but to date, that's the truth.
From Bacon: The free and open source contributions made by Canonical show up in areas like applications and integration, plus building tools like Launchpad. Yes, very much so: this was even noted by Neary himself in his presentation (note slide 20). Though even Bacon notes that such contributions have not always been accepted by the upstream community. In the current example, this may come down to a difference in philosophies within the GNOME community.
Both of these responses are, to an extent, true. There is more to community participation than who contributes how much code. But participants in open source cannot ignore the value system of the particular community they are working with, either. Canonical seems to be placing a lot of merit in its non-code contributions to the community. That's all well and good, but they cannot escape the fact that as an active development organization in the broader Linux ecosystem, code contributions are still a valued currency.
The most telling response that shows Canonical's disconnect from the development community comes from Shuttleworth himself, who uses the notion of tribalism to try to head off the coming nuclear Armageddon that may be coming from the Ubuntu community.
"There is no need to get into a playground squabble about your values, your ethics, your capabilities or your contribution. If you can do better, figure out how to do that, but do it because you are inspired by what makes Ubuntu wonderful: free software, delivered freely, in a way that demonstrates real care for the end user. Don’t do it because you feel intimidated or threatened or belittled," Shuttleworth wrote.
Unfortunately, in a valid effort to try to get this "rise above" argument out to his community, Shuttleworth reveals the core of why people are so pissed off at Canonical: that their values and goals seem to somehow trump the values of the broader Linux ecosystem. This entreaty for peace, to me, comes across as insulting, particularly labeling the legitimate concerns of developers as a "playground squabble."
I will always agree that reasoned discourse is better than a flamefest. I had a conversation about this with former openSUSE Community Manager Joe Brockmeier this morning, and he put it quite succinctly.
"We have the issue out in the open so it's time to get the parties in question at the table and fix the problems--we all want the same things and it's damaging to the community to be pointing fingers and frothing at the mouth," Brockmeier told me.
In our conversation, both Brockmeier and I agreed there is a real perception that Canonical has not been as good a community citizen as it could be. Yes, there are Canonical contributions being made on top of GNOME desktop and in other areas of Linux, but somehow these contributions are always touted by Canonical, while non-Canonical contributions seem to get downplayed or hardly mentioned at all. (Today's post by Bacon notwithstanding.)
The time has come for that reasoned discourse, Canonical.
The economy of Linux contains different kinds of currency: users, documentation, and contributions are all separate parts of the greater whole. But when you're working with developers, they may not want to see how much you are doing in the other areas. They want to see how much code you're bring to the table.
Canonical is trying highlight the bigger picture where they do make an impact, spending their user currency, or Launchpad currency, or all their other contributions' currency. What they fail to recognize is that developers won't always take that currency.
I have used Canonical as an example of why open source is not a democracy--it's a meritocracy. But in the strict meritocratic economy of developing code, Canonical will have trouble getting respect if they don't spend more.
That's the problem Canonical needs to address. Developers value contribution. Rightly or wrongly, Canonical is perceived as a low contributor. Don't tell Linux developers about how many users you have, or how many improvements you've made to Ubuntu--show developers where the upstream contributions to the broader ecosystem are.
And developers? Be aware there are other ways to contribute, and start looking at all the code Canonical sends upstream, not just in GNOME. You may find Canonical has been a better citizen than you think.