by Ian Oeschger and David Boswell
In this article:
- Common Misperceptions
- Steps Overview
- About Total Recall
- The mozilla.org web site
- Participating in Mozilla
- Finding and Fixing: Bugzilla and the Source Code
- Preparing Your Project
- The Source Tree
- Having Your Project Incorporated
Since its inception more than two years ago, the Mozilla project has been highly praised and much discussed as an example of the collaborative possibilities of the open source software movement. Thousands of programmers, would-be programmers, and interested technical types discuss the Mozilla project and the philosophy surrounding it. But the process for actually contributing source code appears complex and intimidating to those not involved in the project, and non-Netscape developers contributing their work to Mozilla remain a minority.
The amount of attention being paid to the project in the form of discussions, suggested changes, and private adaptations of the source suggests that the paucity of contributions has more to do with a lack of familiarity with the project and the tools than with a lack of interest. In this article, we attempt to provide a brief overview of the process for getting one's work into Mozilla, and we follow the travails of one company that has successfully done so. Most of the information in this article was presented at the "Contributing to Mozilla" discussion at the Second Mozilla Developer Meeting, moderated by Daniel "Leaf" Nunes. The enthusiasm that attendees had for this particular session was one of our primary motivations for doing this article.
It's true to some degree that the process is not an easy one, and there are a great many things to learn, to pay attention to, and to do with care. But the results can be extremely rewarding -- both for you and for the Mozilla open source community. The next section lists the resources you can use to get your work contributed, and it begins Alphanumerica's own Mozilla story.
A lot has happened since Alphanumerica started their Mozilla development. They have worked on Aphrodite and the Theme Builder, have coordinated the first two Mozilla Developer Meetings, and have been acquired by CollabNet. It all started with Total Recall, though. Total Recall and all of Alphanumerica's other projects, plus the projects of others in the community, can now be found on mozdev.org, a site that offers project hosting for Mozilla applications.
Chris Blizzard, a key Mozilla member, talks about this in an interview he had with Linuxpower:
"...because the Mozilla project was started by Netscape, it came with a lot of procedures and a very large nomenclature that most people were unaware of. Non-Netscape contributors have had to learn the ropes, too."
I'm too far behind to catch up now.
Unlike a new open source project, Mozilla has evolved out of years of Netscape's internal development efforts and procedures. Developers who are new to this have had to come up to speed with a much longer project history than Mozilla's two years would suggest existed. These misperceptions will be easy enough to dispel by providing clear information about what these pre-existing guidelines and procedures are.
The Mozilla folks don't want me to come in.
Many Mozilla developers assume that everyone in the community has access to and understanding of the same information that they are familiar with. For example, when an outside developer asks a question about protocol, the first response is often "What, you mean you don't have access to the tree?," or something you don't understand like, "Why don't you make a patch of that and attach it to shaver's layout bug?" Don't let these sorts of esoteric responses dissuade you. The Mozilla community is used to working very close to the code and to one another. Once you take the time to learn about your area, about the other people involved there, and about the protocols for communicating and contributing, you'll find the Mozilla community an extremely capable and efficient one.
Mozilla has all the code it needs already.
From the point of view of outside developers, there is a misconception that the core Mozilla developers aren't interested in new features that derive from outside. At first, after Alphanumerica posted Total Recall to the newsgroups and on their web site, they didn't know what else they could do and assumed that if anyone from Mozilla wanted the code, they would come and ask them for it.
The success of the Total Recall project -- the request for a crash recovery feature, the help Alphanumerica got from the Mozilla community, and the enthusiasm with which their work was integrated into the browser -- have proven their initial reservations wrong.