Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Now that you have Gaia running on your Desktop and you understand to some level how the codebase works, you should be ready to start contributing to the project. This article describes how to make changes and where to find bugs to work on.

Git best practices

  1. When making changes to Gaia, you should first Grab the latest from master:
    cd path/to/gaia
    git checkout master
    git pull upstream master
  2. Next, check out a new branch to create your fixes on:
    git checkout -b my-code-fix
  3. Finally, go to your gaia/apps directory, and make your changes to the app files there.

Simple code change example

To view code changes:

  1. Make changes to the Gaia codebase as required, and save the changes.
  2. Shut down Firefox Mulet, or your simulator running in WebIDE.
  3. Rebuild your Gaia profile using make.
  4. Restart Firefox Mulet, or your simulator running in WebIDE.

Let's do something simple like change the text colour of the clock on the lock screen:

Gaia lockscreen showing the clock display in white text

  1. The best way to find how this style is set is to use the developer tools. Ctrl/right + click on the clock in Firefox Desktop and select Inspect Element from the context menu.
  2. You can then work out which CSS file to edit — gaia/apps/system/lockscreen/style/lockscreen.css in this case — and then make your changes in the CSS styles on the right hand side of the display to get it to the state you want.
  3. When you are happy with the change, go and make the change in the file directly.
  4. Next, follow the steps outlined at the start of this section to view your changes.

Gaia lockscreen showing the clock display modified from white to red text


Limitations of Gaia Firefox Mulet rendering:

  • In the Desktop Firefox rendering, the apps are fairly accurate compared to how they work on a real phone, but you may notice some differences here and there.
  • Not all device APIs are supported in desktop Firefox; you can find a list of the ones that are enabled in preferences.js.

Where to find bugs to work on

The best way to find Firefox OS bugs to work on is to consult Josh Matthews' Bugs Ahoy app — this pulls in bugs directly from Mozilla's Bugzilla and displays them in an easy to search and browse way. Once you have found a bug that you want to work on, go to its Bugzilla page, enter yourself in the "assigned to" field, and start work, as indicated above.

Helpful hints

  • When you work on mentored bugs, one of the Gaia core team will monitor your progress and provide help with the code and process. If you are a beginner to the Firefox OS contribution process, signing up for one of these can be helpful. These are indicated in Firefox OS Bugzilla pages by an entry in the "Mentors" field. Bugs Ahoy lists mentored bugs.
  • If you are a completely new Bugzilla user, you may not be able to assign yourself to work on a bug. If you can’t, ask the mentor assigned to that bug to assign you if it has one, or just ask in the bug comments otherwise.
  • After you have a bit more experience, you should ask someone to give you permission to assign bugs to yourself.
  • Another good whiteboard entry to look out for is [good first bug], if you are a new contributor and want to start with something simple. You can list just good first bugs using https://www.joshmatthews.net/bugsahoy/?b2g=1&simple=1.
  • You should save a search for projects you want to contribute to. For example, the following would give you a Gaia Clock app bug search:

https://bugzilla.mozilla.org/buglist.cgi?columnlist=product%2Ccf_blocking_b2g%2Cbug_status%2Cresolution%2Cshort_desc&resolution=---&query_based_on=CLOCK&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=Gaia%3A%3AClock&product=Boot2Gecko&known_name=CLOCK&list_id=9776392

See also

Document Tags and Contributors

 Last updated by: Superluk,