The document provides instructions for contributing code to the Mozilla codebase. It outlines 7 steps: 1) Get the source code and build Firefox, 2) Understand the development process, 3) Find work to do by fixing bugs or using whatcanidoformozilla.org, 4) Fix the bug, 5) Get code review, 6) Respond to review feedback, and 7) Get the code committed. It also provides examples of bugs and languages/projects to contribute to, including C++, JavaScript, Java, Python, PHP, and Rust.
2. Step 0 : Before Building
System Requirements :
1. Recommended : 4GB of RAM
2. High Speed Internet
One-Line Bootstrapping :
wget --no-check-certificate
https://hg.mozilla.org/mozilla-
central/raw-
file/default/python/mozboot/bin/bootstr
ap.py && python bootstrap.py
3. Step 1 : Build Firefox
1. Get The Source :
hg clone https://hg.mozilla.org/mozilla
-central
2. Build :
./mach build
4. Step 2 : Understand
The Development Process :
Schedule-driven process, to provide regular
improvements to users without disrupting longer
term work.
5. Step 3 : Find some work
1. Fix your pet peeve
2. Fix bugs identified by mozilla
3. Bugs Ahoy !
4. Use whatcanidoformozilla.org
6. Fix your pet peeve
1. Search bugzilla :
For relevant keywords
2. Figure out the bugzilla component :
Find where pet peeve is implemented
3. Ask for help :
#introduction or #developers in
irc.mozilla.org
7. Fix bugs identified by
mozilla
1. Mentored Bugs
Your mentor helps you in every step.
2. “Good” First Bugs
Bit stale. But good starting point.
3. Student Projects
Large projects, good enough for your
university project.
13. C++
1. Gecko
The engine that drives Firefox.
2. Boot2Gecko
The operating system for Android phones built on web
technologies.
3. Thunderbird
The open source email client.
14. C++
4. Seamonkey
The open source web productivity suite.
5. v8monkey
Implementing the v8 API on top of Spidermonkey.
6. emscripten
Creating a LLVM-to-JS system to allow porting native
code to the web.
15. C++
7. SVG Project
Help with the implementation and testing of Mozilla's
Scalable Vector Graphics engine.
8. Windows 8 Integration
The Metro-style enabled desktop browser for Windows 8.
9. MathML
Display and represent math formulas on the web.
16.
17. C
1. NSS
The network security pieces of Firefox.
18.
19. JavaScript
1. Firefox
All of the UI is written in JS.
2. Mobile Firefox
It's the Gecko engine, with an Android-specific UI.
No Android device required.
3. pdf.js
A PDF viewer written entirely in JavaScript.
20. JavaScript
4. Shumway
A Flash player written entirely in JavaScript.
5. The addon SDK
The foundation upon which all new kick-ass
addons are built.
6. Gaia
The default UI for the web-based mobile operating
system Boot2Gecko.
21. JavaScript
7. DXR
The intelligent source code indexing system.
8. Thunderbird
The open source email client.
9. Seamonkey
The open source web productivity suite.
22. JavaScript
10. Web development
Many large, complicated projects that use
JavaScript.
11. Popcorn
Create interactive media pages that seamlessly
integrate video, audio, and traditional web
technologies
23. JavaScript
12. Windows 8 Integration
The front end for the Metro-style enabled desktop
browser for Windows 8.
13. Persona
Implement a new way to safely and easily sign into
websites.
24.
25. Java
1. Mobile Firefox
It's the Gecko engine, with an Android-specific UI.
No Android device required.
2. Rhino
It's Spidermonkey in Java.
26.
27. Python
1. Firefox
Lots of code is generated by python scripts.
2. Web development
There are many large, complicated projects written
in Python.
28. Python
3. DXR
The intelligent source code indexing system.
4. Tools & Automation
Various projects to facilitate easier automated
testing of products.
29.
30. PHP
1. WordPress
The code that runs our blogs
2. Marketplace
The PHP client for Marketplace.
3. The Mediawiki-Bugzilla plugin
The Bugzilla plugin for Mozilla's MediaWiki.
31.
32. Rust
Rust is an experimental, multi-paradigm,
compiled programming language developed
by Mozilla Research.
It visually resembles the C language family, but
differs significantly in syntactic and semantic
details.
33. Coding in Rust
A small piece of code in Rust:
Hello World:
fn main() {
io::println("hello, world");
}
34. Step 4 : Fix the bug
1. Check out the Developer Guide :
https://developer.mozilla.org/En/Developer_Guide
2. Ask for help :
#introduction and #developers
3. Notify the docs team :
Add dev-doc-needed keyword if your bug is
likely to require documentation.
35. Step 5 :
Get your code reviewed
Once you fix the bug, attach a patch to the
bug, and ask for review.
Do this by setting the review flag to ?
36. Step 6 :
Respond to the review
The reviewer may ask to fix some issues.
An r+ would mean that your bug fix is
accepted into the tree.
37. Step 7 :
Get the code into the tree
Ask your mentor or mark your commit with a
checkin-needed keyword.