There are lots of ways to contribute to the Mozilla project: coding, testing, improving the build process and tools, or contributing to the documentation. This guide provides information that will not only help you get started as a Mozilla contributor, but that you'll find useful to refer to even if you are already an experienced contributor.
Documentation topics
- Getting Started
- A step-by-step beginner's guide to getting involved with Mozilla.
- For new Mozilla developers
- A directory of articles which are particularly helpful for new Mozilla developers.
- Working with Mozilla Source Code
- A code overview, how to get the code, and the coding style guide.
- Build Instructions
- How to build Firefox, Thunderbird, SeaMonkey, or other Mozilla applications.
- Editor Configuration
- Tips on setting up your favorite IDE or text editor to work with Mozilla projects.
- Development process overview
- An overview of the entire Mozilla development process.
- Managing multiple profiles
- When working with prerelease versions of Firefox, it's often helpful to have multiple Firefox profiles, such as one for each channel, or for different kinds of testing.
- Automated Testing
- How to run Mozilla's automated tests, and how to write new tests.
- How to submit a patch
- After getting your patch written, you need to get it checked into the tree. This article explains the review process and how to get your patch approved.
- Getting documentation updated
- How to ensure that documentation is kept up to date as you develop.
- Mozilla modules and module ownership
- This article provides information about Mozilla's modules, what the role of a module owner is, and how module owners are selected.
- Code snippets
- Useful code samples for a wide variety of things you might need to figure out how to do.
- Mozilla development strategies
- Tips for how to make the most of your time working on the Mozilla project.
- Debugging
- Find helpful tips and guides for debugging Mozilla code.
- Performance
- Performance guides and utilities to help you make your code perform well (and to play nicely with others).
- The Mozilla platform
- Information about the workings of the Mozilla platform.
- Mozilla
- Much more additional information about Mozilla coding practices.
- Adding APIs to the navigator object
- How to augment the
window.navigator
object with additional APIs.
- Interface Compatibility
- Guidelines for modifying scriptable and binary APIs in Mozilla.
- Customizing Firefox
- Information about creating customized versions of Firefox.
- Task-Graph Generation
- What controls the jobs that run on a push to version control? How can you change that?
- Virtual ARM Linux environment
- How to set up an ARM emulator running Linux for testing ARM-specific, but not necessarily platform-specific, code. Useful for mobile developers.
- Obsolete Build Caveats and Tips
- A place to put build tips which are no longer relevant to building the latest version of the code from main but are relevant when building old codebases.
- Firefox Source Docs
- Web-hosted documentation built from the mozilla-central source code.
- Bugzilla
- The Bugzilla database used to track issues for Mozilla projects.
- SearchFox
- Mozilla code searching. Indexes JS as well as C++, includes blame capabilities. In active development.
- Mercurial
- The distributed version-control system used to manage Mozilla's source code.
- Mozilla build VM
- A VirtualBox compatible virtual machine configured with all the software needed to build and work on Firefox.
- TaskCluster
- TaskCluster is the task execution framework that supports Mozilla's continuous integration and release processes.
- Treeherder
- Treeherder shows the status of the tree (whether or not it currently builds successfully). Check this before checking in and out, to be sure you're working with a working tree.
- Perfherder
- Perfherder is used to aggregate the results of automated performance tests against the tree.
- Crash tracking
- Information about the Socorro crash reporting system.
- Callgraph
- A tool to help perform static analysis of the Mozilla code by generating callgraphs automatically.
- Developer forums
- A topic-specific list of discussion forums and mailing lists where you can talk about Mozilla development issues.
- Mozilla Platform Development Cheat Sheet (archive.org)
- Brian Bondy's list of frequently referenced information for platform developers. Brian Bondy took down codefirefox.com, but the archived cheatsheet might still be useful.
- Firefox development video tutorials
- Brian Bondy's video tutorials on Firefox development.