The Official Ubuntu Book (2011)
Chapter 7. The Ubuntu Community
• Teams, Processes, and Community Governance
• Getting Involved
Community is a word often used in discussions of Ubuntu. Early articles about Ubuntu bore subtitles asking, “Would you like some community with that?” The earliest press releases and communiqués from the project emphasized a “community-driven approach” to operating system development and distribution. In fact the highest-level governance board in Ubuntu is called the Community Council and Canonical, Ltd. employs a full-time community team, which is lead by Jono Bacon, one of the authors of early editions of this book. It is to that end that we have made a very conscious decision to spend an entire chapter of this book describing the Ubuntu community. In fact, every edition has been dedicated to the Ubuntu community!
Still, while the Ubuntu community is important, it is not always easy to succinctly describe it. Ubuntu is, in large part, developed and funded by Canonical, Ltd. The community, almost by definition, extends far beyond Canonical, Ltd. The Ubuntu project has members and self-declared activists (Ubunteros), but the Ubuntu community is more than even those with such explicitly declared relationships. The project contains a wide variety of different venues for participation. But while the community is active in each of these areas, its scope is even wider.
The Ubuntu community is the collection of individuals who build, promote, distribute, support, document, translate, and advocate Ubuntu—in myriad ways and in myriad venues. Most people in the Ubuntu community have never met, talked with, or heard of each other. Members of the community are linked by their contributions, both technical and nontechnical, and by Ubuntu itself. These contributions have built Ubuntu as a distribution, as a social movement, as a set of support infrastructures, and as a project. In short, they have built Ubuntu as a community. While any active software development project has a number of people making contributions, not every project has a community.
Community is also a term that represents a promise by the Ubuntu project to remain inclusive. The focus on community means that volunteers are not only welcome but also essential. It means that Ubuntu is a “place” where individuals can come together to create something greater than the sum of its parts. The word community gives a nod to the fact that while much development work is paid for by Canonical, Ltd., and while some people contribute more hours, more effort, more code, more translations, more documentation, or more advocacy work to Ubuntu than others, no individual or subgroup can take credit for everything that Ubuntu has become. In Ubuntu, no contribution is expendable. Having a community also reflects Ubuntu’s goal to provide a low barrier for entry for these contributions. Anyone who cares about Ubuntu can contribute to the project and can, in whatever ways are most appropriate, become a participant in the Ubuntu community.
This chapter provides a bird’s-eye view of the venues and processes in which the Ubuntu community is active. First, it takes a tour through the venues through which the Ubuntu community both consumes and communicates information. It continues by looking at the way the community is organized and the processes by which that organization works. Finally, it walks you through the ways you can participate in the Ubuntu community and contribute to its success.
As we described in Chapter 1, transparent and public communication was an early goal of the Ubuntu project. Technical and community decisions are made publicly and are accessible to all interested parties. When this is impossible (e.g., when there is a face-to-face meeting and it’s simply not possible for everyone interested to attend), the community attempts to publish summaries and minutes and to provide avenues for feedback. Ubuntu contains no “member only,” “developer only,” or “decision maker only” back channels except to preserve individual privacy or security—and the Ubuntu community refuses to create them. All work in Ubuntu occurs in places where everyone can view the work, and anyone who agrees to engage constructively and respectfully can participate.
Of course, this activity is public only to those who know where to find it. This section tries to document the venues for communication in Ubuntu as completely as possible. It describes the places where discussions of development, support, and advocacy take place. While nobody can engage in communication in all of the venues described, knowledge of what exists allows participants to be more informed when they need to choose the right place to ask a question or to make a suggestion.
The single most important venue for communication in Ubuntu is the Ubuntu mailing lists. These lists provide the space where all important announcements are made and where development discussions take place. There are, at the time of this writing, more than 300 public e-mail lists. This number is constantly growing.
An up-to-date, full page of mailing lists for Ubuntu can be found at http://lists.ubuntu.com, where users can see a list of available mailing lists, view archived discussions, and subscribe to lists through a Web interface.
Lists are one of the oldest forms of communication by e-mail. A mailing list provides a single e-mail address that, when mailed to, will then relay the received message to a large number of people. In Ubuntu, lists are topical, and individuals can subscribe to a mailing list if they want to receive information on the list’s topic. All mailing lists at Ubuntu are hosted at lists.ubuntu.com. If you would like to send a message to a list, simply e-mail <mailing list name>@lists.ubuntu.com, replacing <mailing list name> with the name of the list you are trying to mail.
With a few exceptions (e.g., the e-mail lists for the Technical Board or Community Council), anybody can subscribe to any Ubuntu list. In most cases, the capability to send e-mail to lists is restricted to list members (membership in lists is, of course, open to anyone). This means that all e-mail sent to a list from someone who is not a member of that list is put into a queue to be reviewed by a human moderator before it is broadcast to list members. This is done as an antispam measure. Users can subscribe to lists and then configure the system to never send e-mail. For several e-mail lists, all messages are moderated. This is largely to ensure that lists remain “low volume” or “announcement only.”
Ubuntu’s mailing lists are run by the popular Mailman software, which may be familiar to some users. Mailman makes it simple to subscribe to lists, to unsubscribe, and to configure any number of options about mail delivery. One popular option is to receive a daily digest of messages rather than a separate e-mail each time a new message is sent. This is all available through a Web interface at http://lists.ubuntu.com. Users can also subscribe to lists by sending an e-mail with “subscribe” in the subject line to <mailing list name>-REQUEST@lists.ubuntu.com.
While each list plays an important role in the Ubuntu community, the following central lists warrant a little more detail. You might find it a good idea to subscribe to them.
This fully moderated list relays all important announcements for the Ubuntu project and usually contains less than one e-mail per week. It is the place where new releases are announced and where other important information can be found first. If you use Ubuntu, you may want to consider subscribing to this list. If you subscribe to only one list, this should be it.
This fully moderated list contains announcements related to the development of Ubuntu. It is low volume and contains one to three e-mails per week. If you work with code in Ubuntu, use a development release, or contribute on any technical level, you should be on this list. This is the list that everyone involved in development for Ubuntu is expected to read.
This list is the primary open list for general-purpose discussion of Ubuntu development. If you are looking to contribute to Ubuntu in any technical way, you should subscribe to this list and begin to follow the discussion. The list has a relatively high volume of e-mails.
This list is a moderated list for discussion of Ubuntu. While subscribing remains free, posting to the list is restricted to those who are Ubuntu developers or chosen other developers. Others may post, but all posts are checked by a moderation team.
Internet Relay Chat
While mailing lists provide the primary venue for asynchronous communication (i.e., not at the same time), there is still an important need for synchronous, or real-time, collaboration. Internet Relay Chat (IRC) fills this niche. While it was designed primarily for group (i.e., many-to-many) communication in channels, it is also equipped with private messaging capabilities that facilitate one-to-one communication—all instantaneously. It is very similar to instant messaging or chat room communication. While time zones and a round globe make it difficult for the global Ubuntu community to meet at the same time, many users and developers take advantage of IRC’s capability to let anyone chat about an issue in real time or to ask a question and have it answered immediately.
Like mailing lists, IRC channels provide a venue for a variety of different types of communication in a variety of different subcommunities in Ubuntu. There are many different channels, including channels in a variety of languages.
All official Ubuntu IRC channels are located on the FreeNode IRC network, which also hosts a range of other free and open source software projects. Users can connect to IRC using several pieces of software in Ubuntu, including Pidgin, XChat-gnome (Figure 7-1), IRSSI, and a freenode webchat client is available for users who aren’t using a local application on their machine for IRC but would like to join the channels from time to time (Figure 7-2). Mailing lists such as the email@example.com. Will assist users in finding the right help and support, #ubuntu is designed for help and support. When joining any channel, users should carefully read the topic as many frequently asked questions are answered there, and moderators of the channel can be annoyed by users who ask questions the moderators have already taken the time to answer in the channel’s topic.
Figure 7-1 XChat-gnome is an IRC client that allows Ubuntu users to connect to the Ubuntu IRC channels.
Figure 7-2 Freenode webchat client sign in screen and view of the #ubuntu-community-team IRC channel on freenode.net
Currently the #ubuntu channel is usually the biggest channel on the FreeNode network, with over 1,000 simultaneous users at most times—and it’s continuing to grow—especially around releases. Another important channel is #ubuntu-devel, which is reserved for discussion of Ubuntu development. Similarly, Kubuntu users hang out in #kubuntu and developers in #kubuntu-devel. Edubuntu and Xubuntu have similarly named user and support channels. To keep #ubuntu focused on support, all general chatter has been moved to #ubuntu-offtopic, and there are similar channels for Kubuntu, Edubuntu, and Xubuntu. Support for development releases has moved to #ubuntu+1. Maintaining channels with specific purposes has allowed the support community to stay focused and help as many people as possible. A full list of channels can be found at http://help.ubuntu.com/community/InternetRelayChat.
The official Ubuntu forums are the most frequently used venues for communication in Ubuntu. For a number of reasons, many users prefer communication through a Web-based forum or bulletin board over mailing lists. The Ubuntu forums were created to satisfy this group and have done so with amazing success.
The forums are accessible online at ubuntuforums.org and have shown an impressive amount of usage. Statistics as of the time of writing show activity of more than 10 million messages on more than 1.5 million topics. The forums also boast more than 1 million registered users with around 10,000 online at any given moment. The forums continue to grow explosively. The topics discussed in the forums run the gamut in categories like these:
• Support discussions, including spaces for questions about specific hardware (e.g., Dell computers with Ubuntu preinstalled, or networking and multimedia cards) and specific use cases (e.g., desktop or server users)
• Ubuntu community discussions, including spaces for discussions by people working on art for Ubuntu, those working in science and education, and those developing new documentation and tutorials
• Forum-specific community discussion spaces, including several social spaces and places for administrative and community governance discussions
Each category includes subforums, each containing many threads. Many of these forums provide important spaces dedicated to important community discussions, including:
• A forum to highlight community announcements and news
• A discussion area for support for a variety of third-party projects built on top of Ubuntu that are useful primarily to Ubuntu users or that otherwise serve the Ubuntu community
• Forums for discussion and planning for local community teams (discussed later in this chapter) from across the world
By covering such ground, the Ubuntu forums provide an impressive support resource. They offer an excellent venue for both asking questions and answering questions, both receiving support and making important contributions to the Ubuntu community. If you are interested in any of these, the forums are a good place to begin.
The only caveat regarding the forums worth mentioning is that they are not frequently used by those developing Ubuntu—although there are exceptions to that rule. If users want to send messages directly to the Ubuntu developers, the forums may not provide the most effective tool. If users want to get involved in technical contributions to the project, they will, in all likelihood, have to augment their forums’ patronage with the use of mailing lists or Launchpad.
The forums were founded by and are moderated and maintained entirely by volunteers, and are governed by the Forums Council (discussed later in this chapter), which currently contains no Canonical employees.
Since nearly day one, a large chunk of Ubuntu documentation and support has taken place in the official Ubuntu wiki. In case you don’t already know, a wiki—pronounced “wik-ee”—is a Web site where any viewer can add, remove, or edit content. The first wiki was created by Ward Cunningham in 1995, and wikis have shown themselves to be an extremely effective tool for collaborative writing in recent years. The term is shortened from wiki wiki—Hawaiian for “quick.” Many wikis have been created. Most famous among these wikis is the online encyclopedia Wikipedia, which now contains more than 2.3 million articles in the English version alone.
There are several Ubuntu wikis, but two are central to the community. The first is the community support and documentation wiki at http://help.ubuntu.com/community (Figure 7-3). It is edited and directed by the Ubuntu Documentation Team and focuses on issues of community-produced technical documentation for Ubuntu. The second wiki is at https://wiki.ubuntu.com and is meant to be used for everything else. The documentation wiki can be thought of as a project to build an expansive manual through community contributions and editing. The general-purpose wiki is used for specification writing and traffic, conference organization, meet-ups, pages for teams and individuals involved in Ubuntu, and absolutely anything else that is in written form and relevant to the Ubuntu community. Both wikis can be edited, added to, or reorganized by anyone in the community who creates an account, and edits are unrestricted. Since registration is required, each change can be traced to a particular user.
Figure 7-3 Front page of the Ubuntu community support and documentation wiki
Unlike other documentation that ships with Ubuntu, anyone can fix an error, inaccuracy, or out-of-date fact in the wiki. As a result, there is no good way to determine whether information in the wiki is correct. It cannot be subjected to the same type of quality assurance workflow that a document such as this book might be. However, it is also much more likely to be up to date in the quickly changing world of Ubuntu development, where there is a new release every six months. The wiki provides a venue for this level of up-to-date information with a low barrier to entry and, as a result, acts as an invaluable resource for the community.
The two major wikis each run the Moin Moin wiki software, and the use and operation of the wikis is identical. To use the wikis, you can either search or browse them. Searching is the most common way to get information from the wiki, and users can easily search either titles or the full text of the wiki. To achieve the best results, it is usually best to search titles and then the text to ensure that you look for more relevant information first.
For people who prefer to browse, the general-purpose wiki is divided into a number of categories that include the following:
The documentation is browsable in sections that try to serve users at different stages of familiarity with Ubuntu or with particular types of problems. The major divisions in the community documentation wiki include these:
• General help and information for new users
• Help for those switching from Mac OS X, Windows, or another Linux distribution who want a quick guide using analogies they are familiar with
• A large variety of information for people to read after they have installed Ubuntu and have questions about applications or types of use
• Information on maintaining and troubleshooting Ubuntu installs
• Help on connecting and configuring hardware
Most of these categories are relatively self-explanatory. Additionally, the general wiki provides a prominent link to information and support resources in languages other than English. The comprehensive list at www.ubuntu.com/support/community/locallanguage provides both links to pages within the wiki that include documentation and information in languages other than English and links to more than a dozen other wikis that are in another language entirely. Users looking for wiki pages in a language other than English are advised to visit this page.
The Fridge (http://fridge.ubuntu.com) is the quirky community portal for Ubuntu. In many Western cultures, refrigerators provide a central sort of “bulletin board” in a family’s home. Because refrigerators are magnetic, children and parents can use magnets to hang pieces of paper that they want to share with the community of people who come in contact with that fridge. For children, this often includes good grades, news reports, or other information that someone is proud of or wants to share. The Fridge tries to create such a shared resource within the Ubuntu community. The Fridge home page is shown in Figure 7-4.
Figure 7-4 The Fridge home page
The Fridge is perhaps best described as the community portal for Ubuntu. It is part news site, part grassroots marketing and advocacy site. It hosts developer interviews, news, a picture gallery, a calendar with a list of upcoming events, polls, a list of Ubuntu-in-the-press citations, and much more. The core content on the site is arranged as a Web log. Users frequently set The Fridge as their home page or subscribe to the site via its RSS feed. The Fridge is unique in the community in that it appeals to a wide variety of Ubuntu participants—developers, advocates, translators, users—and provides a venue where each group can share information with others. There is a story every two to three days on The Fridge, although this may increase to up to several stories a day with time. Users can comment and discuss each story in the comments section on the Fridge.
Anyone can contribute content to The Fridge. If you would like to contribute, you can do so by sending your suggestions for features, articles, or even a piece of original work (such as an article, photo, or event review) to firstname.lastname@example.org or by following any of the suggested ways on the https://wiki.ubuntu.com/Fridge/Submit.
Ask Ubuntu is a new free and community-driven question and answer site designed to make it easy for users to get answers to Ubuntu-related questions. It’s also a place for users to share their knowledge about the Ubuntu Platform.
The site concentrates on answers that are voted on by the community and peer reviewed by other members of the site, which can keep the information up to date and topical.
The Ask Ubuntu website features the ability for users to ask and answer questions, and, through membership and active participation, to vote questions and answers up or down and edit questions and answers in a wiki fashion. Users of Stack Overflow can earn reputation points and “badges”; for example, a person is awarded 10 reputation points for receiving an “up” vote on an answer given to a question, and can receive badges for their valued contributions. All user generated content is licensed under a Creative Commons license.
Ask Ubuntu became an official Ubuntu Q&A tool during the Ubuntu 11.04 release cycle. Users will need to go to http://askubuntu.com/.
From here users will have access to answer or ask questions as well as search and view all the questions that have already been asked. Users do not have to register or login in to have access to the site. For those users who wish to register, there are several ways this can be accomplished. If you have an account on Google, Yahoo!, my openid, Facebook, your Ubuntu Account, aol, or opened, you can associate that account to your AskUbuntu account and sign in using any of those accounts.
More information on AskUbuntu can be found at: http://askubuntu.com/
Social media sites such as Facebook, Twitter and identi.ca are also used to disseminate information to the community as well.
Developer Summits, Sprints, and Rallies
While the vast majority of the work of the Ubuntu community takes place online, Ubuntu contributors do, from time to time, meet face to face. Since Ubuntu was first released, there have been several public developer summits, sprints and rallies organized and funded by Canonical, Ltd. Highlights include:
• The Mataró Sessions in Mataró, Catalonia, Spain, in December 2004—the first Ubuntu development summit
• The two named Ubuntu conferences in 2005: Ubuntu Down Under in Sydney, Australia, in April and the Ubuntu Below Zero in Montreal, Canada, in November
• Ubuntu Developer Summit Mountain View at Google Headquarters in Mountain View, California, in November 2006
• Ubuntu Developer Summit-N in Orlando, Florida—in October 2010, the most recent developer summit at the time of writing
With Canonical, Ltd., Ubuntu tries to organize the developer summits so that they occur once per release, usually toward the very beginning of a release cycle, so that the specifications and goals for the forthcoming release can be discussed, thrashed out, and decided upon. These meetings move around the globe geographically so that, over a several-year period, a large percentage of the Ubuntu community will be able to attend at least one summit and meet with other developers.
While the format changes slightly each time, these meetings have been between one and two weeks in length. Frequently, a given attendee stays for only one week. At Ubuntu Below Zero, for example, the second week was devoted almost entirely to discussing, implementing, and developing infrastructure related to Launchpad (see Chapter 10). The format of these summits has changed as the attendees have experimented with different methods for structuring the events and maximizing the efficiency of these short periods. One common theme, though, is a process of writing specifications. Through remote participation the developer summits are now available for people who can’t attend in person. Remote participation enables off-site attendees to interact via the Internet in designated IRC channels, and many of the sessions are now videotaped as well.
At developer summits, attendees describe features that they would like to see in the next Ubuntu release. At an arranged time or in a series of meetings, a small set of interested community contributors and developers works to draft a written specification. This process of drafting involves brainstorming and ends up with a formal, approved spec that describes a problem or need and provides a detailed description of how it will be fixed or implemented. While these specifications are often technical in nature, they are also used to describe goals that may pertain to localization, documentation, or community building. For example, both The Fridge and the planning of each summit began as a specification. With time, these specifications are categorized in terms of priority for the upcoming release. Later, individuals will claim or be assigned some set of these specs. Paid developers at Canonical, Ltd., frequently take responsibility for the highest-priority technical specs. Each specification is written up and improved as a blueprint on Launchpad so that Ubuntu developers and contributors who cannot attend the summit are still able to participate.
These conferences have, so far, occurred in hotels with conference centers and have been attended by up to several hundred people. The exception was the 2006 conference, which was graciously hosted by Google. The meetings have been wholly organized and funded by Canonical, Ltd., which ensures that its employees attend and also distributes funds for other active volunteers to travel. This funding tends to be divided up based on the contributions of volunteers over the last release cycle and their geographic proximity to the summit location. This is done to minimize travel expenditures and to ensure that users around the world get a chance to attend a conference when it comes near them.
In addition to the biannual summits, Canonical, Ltd. organizes a number of sprints/rallies each year. These sprints/rallies tend to be one to three-week intense collocated work sessions that involve a team or subteam tasked with a well-defined goal. They provide a time when team members can write code, write documentation, make plans, or do whatever else is necessary to fulfill that goal. The sprints tend to be smaller, less than 100 people, while the rallies can often be over 100 people; yet both attempt to squeeze large amounts of work into a short period of time and have earned a reputation for being exhausting, fulfilling, amazingly productive, fun experiences. These sprints/rallies are work sessions and are usually limited to a group of Canonical, Ltd., employees; however, upon occasion may also include volunteer attendees.
Developer summits and sprints are effective but are primarily of interest to technically minded people or individuals who are already very actively involved in the Ubuntu community. Their goal is to accomplish work through high-bandwidth face-to-face interaction among existing teams. User conferences try to provide an alternative space for users who are not yet actively involved in the community. These conferences attempt to bring people up to speed on Ubuntu and to provide a space for community building, support, and networking.
While many local community teams have regular meetings and their own Ubuntu events, there have been several larger-scale Ubuntu user conferences to date, and several more are currently being planned. These conferences fall into two major classes. The first class is a set of laid-back, lightly organized, day-long “unconferences” called Ubucons (short for Ubuntu Conferences). Ubucons have been held many times, the first two at Google headquarters, in Mountain View and in New York City, and others are designed to coincide with the much larger Linux World conferences that many other Ubuntu users attend. The unconference format means that much of the schedule is left up in the air until the morning of the meeting and that many of the attendees are encouraged to come prepared with their own demonstrations, talks, and workshops and with a list of things they would like to learn. Attended by a group of about a hundred users and a handful of developers, Ubucons have provided a simple way for users to connect with each other. Additionally, Ubucons have, to date, also provided space for “installfests” where users can bring computers and have Ubuntu installed on their machines by other Ubuntu users, developers, and aficionados.
Any active group of Ubuntu users can plan a Ubucon, and Ubucons have taken place in a variety of locations around the world. For example, Ubucon’s now take place in conjunction with such events as the Southern California Linux Expo, Ohio Linux Fest, Southeast Linux Fest, and others. This piggybacking onto the larger events worked so well that in 2010, several others have permitted an Ubucon to be organized as a smaller part of their larger event. These are becoming more popular because Ubuntu users are already attending the larger events, LoCo teams can afford to organize the Ubucons because the venue costs are quite low and can usually be covered by only one sponsor, they are free events, and popular Ubuntu speakers often are already attending the larger event and are willing and happy to add some participation in the Ubucon to their schedule.
While conferences and summits act as a site for major technical advances in brainstorming and development, they are also fun and enjoyable experiences. They provide a venue for users to put faces to names, IRC nicks, and e-mail addresses, and they provide for enjoyable, humorous, and productive interaction. In addition to work, there are frequent card-playing, eating, drinking, and athletic activities. Many Ubuntu users from the local area who’ve attended because they were curious have gone on to become some of the community’s most important contributors. Attending a conference is like taking a drink from an Ubuntu fire hose. It is frequently overwhelming but can ultimately be a useful, productive, and rewarding experience as well.
For a window into the people who make Ubuntu what it is, the blog aggregator Planet Ubuntu (http://planet.ubuntu.com) is a great place to start (Figure 7-5). A blog aggregator is basically a blog of blogs that retrieves the latest posts from Ubuntu members who have chosen to add their blogs to the system and then publishes a single blog in reverse chronological order. Although much of the content in Planet Ubuntu is about Ubuntu, as a window into the Ubuntu membership, Planet Ubuntu also includes information from the personal lives of community members. In this way, Planet Ubuntu provides a good way for participants to put their stamp on the Ubuntu community and for others to see what the Ubuntu community is doing.
Figure 7-5 Planet Ubuntu
Teams, Processes, and Community Governance
Ubuntu operates under the famous hacker mantra of “rough consensus and running code.” The project attempts to forge consensus, to make good technical decisions, and to move forward. It attempts to minimize politicization wherever possible and to distribute power to those who are best at getting good work done. Mark Shuttleworth explains, “This is not a democracy, it’s a meritocracy. We try to operate more on consensus than on votes, seeking agreement from the people who will have to do the work.”
The project attempts to keep disagreements from spiraling out of control by enforcing mutual respect at all times with its Code of Conduct described in Chapter 1. Disagreements, of course, are inevitable and can be technical or nontechnical in nature. The community needs to be able to deal with these and, toward that end, has created a lightweight governance system that aims to ensure that disagreements are resolved carefully and that the project always has a strong, fair, and responsive direction.
The Ubuntu Web site describes the goals of its community governance system as threefold.
1. Ensure that a process is defined that allows people to contribute to decisions regarding the Ubuntu community and distribution.
2. Ensure that decisions regarding the Ubuntu distribution and community are made in a fair and transparent fashion.
3. Ensure that necessary decisions are actually made, even when there is no clear consensus among the community.
With these goals in mind, Ubuntu’s system is based on the delegation of decision-making power to small and medium-sized teams. When disagreements arise, they are handled within a relevant team. In the cases of some larger teams, team councils handle a variety of dispute resolutions in a very structured fashion. When teams cannot resolve their own disagreements or when there are disagreements between teams, issues are forwarded to the council or board which governs that area of the community and at times can and may be escalated to either the Community Council or the Technical Board—depending on whether the issue is technical in nature. As the financier and the project’s progenitor, Shuttleworth sits on both boards and occupies a special position as the self-appointed benevolent dictator for life (SABDFL). Users can participate in the Ubuntu governance structure by serving on teams, and as Ubuntu members and maintainers, they have a voice in approving members of both the Community Council and the Technical Board.
Most work in Ubuntu is delegated to a set of teams, each responsible for a particular area of work in Ubuntu. A sample of important teams (which is by no means complete) might include the forums, marketing, art, documentation, kernel, server, laptop, and translation teams. Anyone with an interest in a particular aspect of the Ubuntu project can join a team’s discussion and contribute to its decisions.
When participants feel that a particular area is under-served, they can go ahead and build a new team by beginning work and writing up a proposal for consideration by the Community Council, which approves the creation of all new teams. Rather than catalyzing work with the creation of a team, the Community Council likes to recognize existing work with official team status. Teams should always involve the participation of several individuals. There are no one-man or one-woman teams in Ubuntu.
Several teams are so large and important that they have built their own more advanced governance structures in the forms of team councils. These councils are appointed by the community council from active members and leaders within the team and act as delegates of the Community Council for that team and its domain in the project. These team councils have regular meetings, resolve conflicts, report to the Community Council, and in some cases even grant membership on behalf of the Community Council. Current large teams with councils include the Forums, Edubuntu, Kubuntu, and MOTU teams. More on these later in this chapter.
The Ubuntu Community Team at Canonical
As mentioned at the beginning of this chapter, Canonical understands and appreciates what an important part the Ubuntu community plays in the success and growth of each Ubuntu release. The Ubuntu Community team at Canonical is a five person team lead by Jono Bacon the Ubuntu Community manager and includes Jorge Castro, External Project Developer Relations, Daniel Holbach, Ubuntu Community Development Liaison, David Planella, Ubuntu Translations Coordinator, and Ahmed Kamal, Cloud Community Liaison. As you can see each of these team members focus on various areas of the community.
The community team members specialize in their respective areas of the Ubuntu project. They each work with their area of the community to help educate, encourage and ignite greater participation. This also helps establish trust relationships with Canonical, upstream software projects, ustream videocasts, and the wider community, which helps maintain a healthy and inclusive community that is empowered to develop, design, and influence the direction and growth of the Ubuntu project.
The Ubuntu Community team has implemented the following new opportunities to engage the Ubuntu Community:
For the Translation Community
Ustream Videocast (Ubuntu Translation with David Planella): www.ustream.tv/channel/ubuntu-translations-with-david-planella
David Planella Blog: http://davidplanella.wordpress.com/tag/translations/
For the Ubuntu Developer Community
Ubuntu Developer Website: http://developer.ubuntu.com/
Ustream Videocast: www.ustream.tv/channel/ubuntu-development-with-daniel-holbach
Daniel Holbach Blog: http://daniel.holba.ch/blog/
For the Cloud Community
Ubuntu Cloud Portal: http://cloud.ubuntu.com/
Ahmed Kamal Blog: http://foss-boss.blogspot.com/
Local Community Teams
Local community teams, affectionately referred to as LoCos in the community, are an extremely important type of team. Each LoCo is responsible for promoting, supporting, and representing Ubuntu in a particular locale. These locales are usually geographical and frequently countrywide, although in some situations they may overlap geographically. Ubuntu tries to encourage LoCos to work together whenever possible.
LoCos are like Linux User Groups (LUGs) and may often work closely with or be associated with a LUG. LoCos are often involved in localization or translations of Ubuntu into local languages and in advocacy in local schools, public administrations, and communities. The best LoCos meet regularly for social events, talks, and discussion. Often, they meet for installfests, where team members help new users install Ubuntu onto their computers. Representatives of LoCos are asked to assist with localization matters, to speak on behalf of the Ubuntu project at local conferences and trade shows, and to organize a booth or presence at such events.
Canonical, Ltd., provides each team with a mailing list and a domain name (usually in the form of ubuntu-<CC>.org, where CC is the country’s two-letter country code). Canonical also is willing to host LoCo Web pages, wikis, forums, blogs, download areas, and additional mailing lists. LoCos are open to participation by anyone.
Want to find a Local Community team near you? All you have to do is go to the Ubuntu Local Community Team Directory site at http://loco.ubuntu.com/ begin by selecting your region of the world on the map or by clicking the team tab at the top of the page and either action will bring up a list of current LoCo teams.
Another very special team that deserves an in-depth description in this book is the MOTUs. The MOTUs are the maintainers of Ubuntu’s Universe software package repository, and the acronym stands, jokingly, for Masters of the Universe. MOTUs call themselves “the brave souls who try to keep the Universe section of Ubuntu in shape.” They are community members who spend their time adding, maintaining, and supporting as much as possible the software found in Universe.
MOTUs are package maintainers. They maintain, as a group, the vast majority of packages in the Ubuntu archive. Several of the packages that have been well maintained by the MOTUs have, with time, migrated into the main component and become an official part of the Ubuntu distribution. Because Ubuntu does not make support or quality promises regarding the packages in universe, the MOTU team provides a way for maintainers to sharpen their teeth and (since it’s sometimes unavoidable) make mistakes before jumping into the higher-responsibility packages in main.
The roles and responsibilities of the MOTUs are many. Some important ones are that MOTUs
• understand packaging concepts and have substantial experience uploading packages through a sponsor.
• apply this knowledge by uploading new packages and updating existing packages in the universe component.
• may also contribute to the main component in cooperation with a core developer.
• answer questions of other developers in order to expand their understanding of packaging work.
• provide guidance for prospective Ubuntu developers regarding technical issues.
MOTU contributors are the people who are interested in contributing to Ubuntu and are learning how to package and work in the Ubuntu development community. They primarily work by using MOTUs as sponsors for their work. There are no requirements or exams to pass to become a MOTU contributor, just a willingness to learn and a commitment to the Ubuntu Code of Conduct. Many of these contributors do graduate to full-fledged MOTUs, and many MOTUs eventually are granted full-core developer status. This three-step system is the process by which almost all new maintainers learn to maintain packages in Ubuntu.
The Community Council
The Community Council and the Technical Board are the highest-level governance structures within Ubuntu. The Community Council, as it pertains to all Ubuntu members and activities, is arguably the most powerful team within the Ubuntu project. The Community Council is charged with supervising the social structures, venues, and processes of the project.
The Community Council’s day-to-day work involves five major areas in Ubuntu. The first, and the most straightforward, is the maintenance of the Ubuntu Code of Conduct. The Community Council is the only body that can approve revisions to the code. Because the Community Council does not ask each member to “reagree” to the code when it is changed, each of these revisions must be fully within the spirit of the previous drafts.
The second charge of the Community Council is the arbitration of disputes that cannot be handled within a particular team or that arise between teams. These are generally disputes about the Code of Conduct that may require clarification of a part of the Code of Conduct or a description of whether any of the code was in fact violated by a particular action or behavior. However, the Community Council’s purview is not limited to Code of Conduct violations, and the Community Council is available to handle disputes in any nontechnical situation. In most situations, the Community Council does not take action against individuals but, rather, helps group members come to agreement or consensus among themselves. If this fails, the Community Council can ask a maintainer or other member of the community to apologize and refrain from particular behavior or to leave the community. The Council promises that nobody will be asked to leave without a substantial review and an opportunity to defend him- or herself.
A third area of council work is the creation and dissolution of teams and the appointment of team leaders. New teams are proposed to the Community Council in the manner described earlier in the section on teams, and the Community Council either approves the request or asks the proposer to wait. Defunct or inactive teams can similarly be dissolved by the Community Council. In cases where team leadership is requested, the Community Council can appoint leaders of teams or shift leadership to different team members. In most situations, the appointment of team leaders is an internal team matter but, when requested, the Community Council is available to intervene.
Fourth, the Community Council is ultimately responsible for approving and welcoming new members to the project. This will be described in more depth in the upcoming subsection on membership.
Finally, the Community Council is responsible for all community-related structures and processes. New types of teams, requirements for membership, and core philosophical documents should first be approved by the Community Council. Community members who wish to suggest new structures or processes can submit their proposal to the Community Council for discussion and approval.
The Community Council meets every two weeks on IRC. Any community participant can submit an item or proposal for discussion by the Community Council. Meetings are open to the community, but the Council seeks only consensus or votes from Council members—although it consults representatives from the team that submitted the proposal and other community members. If an open meeting becomes too noisy, the Council reserves the right to move to a private channel for the duration of the meeting. To date, this has never happened. In all situations, full transcripts of meetings are published immediately following a Community Council meeting. The Community Council at the time of this writing consists of Alan Pope, Benjamin Mako Hill, Mark Shuttleworth, Daniel Holbach, Elizabeth Krumbach, Emmet Hickory, Matthew East, and Mike Basinger. Notably, only Shuttleworth and Holbach are Canonical employees. Appointments to the board are made by Shuttleworth and subject to confirmation by a vote among all members. Appointments are for a period of two years.
The Technical Board
The Ubuntu Technical Board is responsible for the Ubuntu project’s technical direction. By handling all technical matters, the Technical Board complements the Community Council as Ubuntu’s highest rung of project governance. In particular, the Technical Board is responsible for three major areas of Ubuntu policy: package policy, release feature goals, and package selection. Also, the Technical Board is available to arbitrate any technical disagreements or issues within or between teams in a manner similar to the one described earlier in relation to the Community Council.
The Technical Board’s first responsibility is Ubuntu’s package policy. The Technical Board maintains the policy document, which describes the processes and standards to which all Ubuntu packages are held. Since the policy is constantly evolving, each Ubuntu release is associated with a specific version of the Ubuntu package policy as determined by the Technical Board. Any suggestions or proposals about policy are suggested to and considered by the Technical Board.
Also, the Technical Board is responsible for maintaining Ubuntu’s feature goals for each release. During each release cycle, there is a date defined as Feature Freeze, after which no new features are added. The Technical Board sets these dates and decides when and if the rules can be bent for a particular feature or piece of software.
Finally, the Technical Board is responsible for maintaining the list of pieces of software (i.e., packages) in Ubuntu. In this capacity, the Technical Board determines which software is installed in the default desktop installation and which packages qualify for full support as part of the main component of Ubuntu. Users and developers can propose a particular piece of software for inclusion in main, the base install, or a desktop install. In all cases, the ultimate decision will be made by the Technical Board.
Like the Community Council, the Technical Board meets at least every two weeks on IRC. Also like the Community Council, any user can submit an item or proposal for discussion by the Technical Board prior to the scheduled meeting. Meetings are open to all interested parties, although decision making and voting is restricted to Technical Board members. Full transcripts and rules about noise, as they pertain to the Community Council, also apply to the Technical Board. The Technical Board at the time of this writing comprises Matt Zimmerman as board chair, Scott James Remnant, Colin Watson, Kees Cook, Martin Pitt, and Mark Shuttleworth. Nominations for the Technical Board are considered at the beginning of each release cycle. Like the Community Council, appointments are made by Shuttleworth but are subject to confirmation by a vote among the maintainers instead of all members. Appointments are made for a period of one year.
Other Councils and Boards
Ubuntu Forum Council
The Ubuntu Forums are led by a small group of people called the Forum Council. The council is currently made up of five community members, listed here by their usernames on the forums:
Wiki page: https://wiki.ubuntu.com/ForumCouncil
Mailing list: email@example.com
Ubuntu IRC Council
The IRC Council is the group that is ultimately responsible for governing the IRC channels and interfacing between IRC and the rest of the Ubuntu community and governance systems. Members include: Juha Siltala, Jussi Schultink, Melissa Draper, Nathan Handler, and Terrence Simpson
Wiki page: https://wiki.ubuntu.com/IrcTeam/IrcCouncil
Mailing list: firstname.lastname@example.org
Ubuntu LoCo Council
The LoCo Council governs the LoCo community, makes decisions on resource allocations, deals with conflict resolution and makes decisions about where the project should move forward. Members include: Alan Pope, Chris Crisafulli, Christophe Sauthier, Laura Czajkowski, Leandro Gomez, and Paul Tagliamonte.
Wiki page: http://loco.ubuntu.com/loco-council/
Mailing list: email@example.com
The Edubuntu Council oversees Edubuntu, providing technical guidance, community governance, and ensuring the health of the project. Members include: Alkis Georgopoulos, Jonathan Carter, Marc Gariepy, Scott Balneaves, and Stephane Graber.
Wiki page: https://wiki.kubuntu.org/Edubuntu/Council
Mailing list: firstname.lastname@example.org
The Kubuntu Council oversees Kubuntu, providing technical guidance, community governance, and ensuring the health of the project. Members include: Christian Mangold, Harald Sitter, Jonathan Riddell, Jonathan Thomas, Roderick B. Greening, and Scott Kitterman.
Wiki page: https://wiki.kubuntu.org/Kubuntu/KubuntuCouncil
Mailing list: email@example.com
Ubuntu Developer Membership Board
The Ubuntu Developer Membership Board is the group responsible for considering and approving applications to become members of the Ubuntu Core Developer team. Members include: Benjamin Drung, Cody A.W. Somerville, Emmet Hikory, Iain Lane, Mackenzie Morgan, Michael Bienia, and Stephane Graber, with the Ubuntu Technical Board as its administrator.
Wiki page: https://wiki.ubuntu.com/DeveloperMembershipBoard
Mailing list: firstname.lastname@example.org
Ubuntu Membership Approval Boards
The Ubuntu Membership Approval Boards are made up of the following three boards which are responsible for considering application for Ubuntu Membership based on each geographical region associated with each membership board.
1. Ubuntu Membership Board—Americas Region. Members include: Belinda Lopez, Duda Nogueira, Elizabeth Krumbach, Greg Gossmeier, Mackenzie Morgan, Martin Albisetti, Mathieu Trudel-Lapierre, Nathan Handler, and Penelope Stowe.
Wiki page: https://wiki.ubuntu.com/Membership/RegionalBoards/Americas
Mailing list: email@example.com
2. Ubuntu Membership Board—Asia and Oceania Region. Members include: Emmet Hikory, Khairul Aizat Kamarudzzaman, Matthew Lye, Melissa Draper, Muhammad Takdir, Robert Collins, ZhengPeng Hou, and amachu.
Wiki page: https://wiki.ubuntu.com/Membership/RegionalBoards/AsiaOceania
Mailing list: firstname.lastname@example.org
3. Ubuntu Membership Board—Europe, Middle East, and Africa Region. Members include: Alan Pope, Laura Czajkowski, David Rubin, Jonathan Carter, Oliver Grawert, and Stephane Graber.
Wiki page: https://wiki.ubuntu.com/Membership/RegionalBoards/EMEA
Mailing list: email@example.com
Mark Shuttleworth jokingly refers to himself as Ubuntu’s SABDFL—self-appointed benevolent dictator for life. He plays an admittedly undemocratic role as the sponsor of the Ubuntu project and the sole owner of Canonical, Ltd. Shuttleworth has the ability, with regard to Canonical, Ltd. employees, to ask people to work on specific projects, feature goals, and bugs. He does exactly this.
Shuttleworth also maintains a tie-breaking vote on the Technical Board and Community Council but has never used this power and has publicly said that he will not use it lightly. In situations where the boards are split and there is no one “right” answer, the SABDFL will provide a decision instead of more debate. The SABDFL exists to provide clear leadership on difficult issues and to set the pace and direction for the project. In exchange for this power, he has the responsibility to listen to the community and to understand that the use of his SABDFL authority can weaken the project.
Ubunteros and Ubuntu Members
Membership in the Ubuntu project is one official way that the project recognizes sustained and significant contributions. The first level of membership in Ubuntu is as an Ubuntero. Ubunteros are Ubuntu activists and can be any person in the Ubuntu community who has explicitly committed to observing the Ubuntu Code of Conduct. Ubunteros are self-nominated and self-confirmed. Using Launchpad, participants can generate a GPG encryption key and “sign” the Code of Conduct as a way of pledging to uphold it within the Ubuntu community. By doing so, that participant automatically gains status as an Ubuntero.
The next, more significant, step is official membership. Official membership is available to any Ubuntero who has demonstrated a significant and sustained set of contributions to the Ubuntu community. These contributions can be of any kind—technical or nontechnical—but need to be of a form that can be represented to one of the Ubuntu membership boards, under the authority of the Community Council. The membership board before which a candidate appears will consider each application individually. A non-exhaustive list of some of the types of contributions that qualify appears in the following section on getting involved. The membership boards try to be flexible in the variety of different types of contributions that will be accepted in consideration of membership.
Ubuntu members are responsible for confirming, by voting, all nominations to the Ubuntu Community Council. They also may be asked by the Community Council to vote on resolutions put to the general membership. In exchange, members gain the right to an @ubuntu.com e-mail address and the right to carry Ubuntu business cards. Membership lasts for two years and is renewable. Members who fail to renew their membership will be marked as inactive but, with renewed activity and a simple procedure that involves approval of the Community Council, can be easily reactivated.
The process to become a member is relatively straightforward and is documented in depth on the Ubuntu Web site. Most important, it requires that users document their contributions on a wiki page that includes links to code, mailing list messages, specific forms of documentation that clearly demonstrate their involvement, and/or other relevant material. Membership applications also need to include testimonials on work and involvement in Ubuntu from current Ubuntu members.
Users can participate in the Ubuntu community on a variety of levels and in a multitude of ways. The following subsections, adapted largely from a page with links to relevant resources online on the Ubuntu Web site (www.ubuntu.com/community/participate), provides a good list of ways in which people can get a running start in the Ubuntu community.
Ubuntu Online Events
The Ubuntu community organizes several online IRC events each cycle with the goal of teaching what is new with each release, helping to encourage more users to become developers, helping current developers become more proficient developers, encouraging LoCo teams and members, encouraging users to become contributors and more.
The following are the various events and the list continues to grow with each release:
Ubuntu Open Week: https://wiki.ubuntu.com/UbuntuOpenWeek
Ubuntu App Developer Week: https://wiki.ubuntu.com/UbuntuAppDeveloperWeek
Ubuntu Developer Week: https://wiki.ubuntu.com/UbuntuAppDeveloperWeek
Ubuntu User Days: http://wiki.ubuntu.com/UserDays
Ubuntu Cloud Days: https://wiki.ubuntu.com/UbuntuCloudDays
The easiest way for someone to contribute to the Ubuntu community is simply by telling others about Ubuntu. Advocacy frequently occurs in a variety of ways. One good method involves joining or starting a LoCo team. LoCos, described earlier in this chapter, provide a method through which you can get involved in Ubuntu activities. If users do not have a LoCo and do not have the critical mass of users to start one, they might help build support by giving a talk about Ubuntu to a local Linux User Group or other technical group. Ubuntu members and LoCo teams can order CDs at no cost and can distribute them. Through these and other means, advocacy provides a great way to spread the word about Ubuntu and offers a low-barrier opportunity to make contributions to the community. Many community members share resources such as fliers, posters, cd covers, banners etc., on the Spread Ubuntu website (http://spreadubuntu.neomenlo.org/en/). Spread Ubuntu is an official ubuntu resource which is community driven and dedicated to helping provide various tools and resources to users, teams, and community members to aid in advocacy efforts.
One of the most meaningful ways that users can contribute to Ubuntu is by helping others use the software. Users can do this by joining the support-oriented mailing lists, IRC channels, or forums, as described in detail earlier in this chapter. By responding to requests for help in each of these venues, users can help other users get up and running on Ubuntu. Even if users are themselves beginners, the knowledge they gain in solving even simple problems enables them to help users who run into the same issues, and community member Fabián Rodríguez sums this up nicely with, “Every user is someone’s guru.”
Ideas and Feedback
Another way to contribute to Ubuntu is by helping steer the direction of the project by describing a vision or providing ideas. This can be done by participating in discussion and brainstorming sessions at conferences and on the Ubuntu wiki. By monitoring specifications as they are written and creating feedback, especially at early stages, users can make meaningful contributions. However, users contributing ideas should remember that talk is cheap. Users are wise to work with others to help turn their visions into reality.
When a user is stumped by a problem, chances are good that other users will also be frustrated by it. If users are not in a position to write code to change the situation, they may be able to help others by writing up their experiences and documenting the solution. Ubuntu has a vibrant documentation team and community, and writing documentation is a great low-barrier way to make meaningful contributions to the Ubuntu community.
Users aiming to contribute to Ubuntu’s documentation would be advised to take notes as they puzzle through problems and to document solutions when they find them. Before writing, users should also check to see whether documentation for a particular problem already exists. When it does, users would be wise to choose to improve or augment existing documentation rather than write a new document. Similarly, users can also make meaningful contributions by reading through existing documentation and fixing factual, technical, stylistic, spelling, and grammar errors. Users who spend a large amount of time working on documentation may, with time, also want to join the Ubuntu Documentation Team, which can help organize and coordinate this work in terms of Ubuntu documentation goals.
For those users who feel that their strengths are primarily artistic, there are many ways to improve the style and feel of the Ubuntu desktop through wholly artistic contributions. For example, Ubuntu is always in need of new ideas for wallpapers, icons, and graphical themes. Inkscape, similar in many respects to Adobe Illustrator, is a great piece of free software in Ubuntu that proves useful for this type of work. As with documentation, there is an Ubuntu Art Team that helps coordinate artistic work within the Ubuntu community.
Translation and Localization
The discussion of LoCos should have already made it clear that translation is a great way that anyone with a firm understanding of English and another language can contribute to the Ubuntu community. Translation through Rosetta (described in Chapter 10) allows users to translate as little as a single string or as much as an entire application. Through its easy interface and Web-based nature, it provides a low-barrier road to contribution. Serious translators should join a local community team and the ubuntu-translators mailing list so that they can stay in touch with other Ubuntu translators.
Quality Assurance and Bugs
Quality assurance (QA) is something for which many companies hire special engineers. In Ubuntu, the Development Team relies on itself and the community to test software before it is released to let developers know about problems so that the bugs can be squashed before the vast majority of users ever see it. To test software, users merely need to upgrade to the latest development version of Ubuntu and to upgrade regularly. When users helping out with QA find bugs, they should report them in the Ubuntu bug-tracking system, Malone (see Chapter 10). They can also help by “triaging” bugs, closing or merging duplicates, or verifying bugs and adding information to a bug’s description. If you intend to become involved in QA, you should subscribe to the ubuntu-devel-announce mailing list, and you should consider monitoring ubuntu-devel as well.
Programming and Packaging
The final way that users can contribute to the Ubuntu community is through the production of code. Because Ubuntu is free and open source software, users can get access to every piece of software that Ubuntu supports. This allows users to package additional software for inclusion in Ubuntu, to fix bugs, and to add features. Developers, like people testing software, should subscribe to the ubuntu-devel-announce mailing list and should consider monitoring ubuntu-devel, too. The best way to begin making contributions is then through the MOTU team as a MOTU hopeful, as described earlier. Users can also look through a list of specifications to find a project that they find personally interesting. In some situations, there are even bounties available—small amounts of money offered to those who fulfill a small feature goal that has remained unfilled for some period of time.
Ubuntu is a vibrant and diverse community that is active around the world and in many languages. Its activities happen primarily online in a variety of virtual venues, including mailing lists, IRC, web forums, wikis, social media, ustream videocasts, developer and cloud portals as well as two special Web-based community portals known as The Fridge and Planet Ubuntu. Ubuntu complements this virtual activity with real-life meetings and conferences. The Ubuntu community is broken down into a variety of teams and processes. At the top of this government structure is the Ubuntu Community Council, the Technical Board, and SABDFL Mark Shuttleworth. Through a variety of ways, this community is designed to facilitate contributions easily. Ultimately, these contributions are recognized through a process culminating in official project membership and enfranchisement.