The Mozilla Firefox and Thunderbird source and project can be visualized as a tree. From the trunk (the main project, such as Firefox) different versions of the product branch off. Usually, the tree has at least two branches: the currently released branch and the development branch.
As time passes, new branches are added to the tree. Old, unnecessary branches are cut off.
Code development at Mozilla follows a set process. All work is initiated as a bug using Bugzilla. Developers both at Mozilla and externally then undertake to resolve these bugs, either fixing the problems or adding functionality.
To accommodate a large group of developers many of whom are not under the direct control of Mozilla a set of coding practices has been established. These practices must be followed for work to be accepted.
Setting up a Firefox development environment takes some time and effort. Even experienced programmers take a few days to get to the point where they can build one of the Mozilla products.
Several necessary products or tools must be used when building Firefox and other Mozilla products. These products or tools are all available freely on the Internet.
Performing a build involves retrieving the latest source using CVS and then building the product. Changes need to be managed with patch files so they can be applied to new versions of the source.
The check-in requirements help ensure that work on Firefox and other Mozilla products meets the necessary standards for programming style and syntax and that it does not break the product.