Software and Tools¶
The software you’ll need to download and install on your computer in order to contribute varies between projects; please refer to the documentation for the project you want to contribute to for details.
The following information is a generic description of software or tools that you’ll most likely need regardless of the project you work on.
Operating Systems: Windows, Linux, or OS X?¶
Generally speaking, automation and test tools need to run on the platforms that are being tested. Linux and Mac are often used as development environments because the tooling is much more comprehensive. If you are a Windows user, you may want to use a program like VirtualBox to create a virtual machine running a Linux-based operating system. The rest of this guide assumes you are using OS X or a Linux-based operating system.
If you are running Mac OS X, most of the software mentioned here can be installed using the Homebrew package manager.
Git is a distributed version control system. It tracks the history of changes we make to our code, which allows us to see how the code has changed over time. Git also makes it very easy for multiple people to work on the same code at the same time and merge their changes together at the end.
If you are a contributor who is completely new to distributed version control systems, you might enjoy stepping through some or all of this fun and easy tutorial.
- A great guide to getting started with Git and GitHub, which hosts most of our Git repositories.
- GitHub for Windows
- A Windows program for interacting with GitHub as an alternative to using Git in a terminal. Useful if you are not used to using a terminal yet.
- GitHub for Mac
- A Mac OS X program for interacting with GitHub as an alternative to using Git in a terminal. Useful if you are not used to using a terminal yet.
Mercurial is a version control system similar to Git. We use it to track the source code to Firefox itself, as well as much of the automated test infrastructure around it (mochitest, reftest, etc.).
- Mozilla’s Guide to Mercurial
- The MDN page on Mercurial contains some useful links for getting started.
DXR is a project dedicated to indexing all the Firefox source code, plus other projects using the the Mercurial repository.
- To look up source in Mozilla-Central (trunk) `https://dxr.mozilla.org/mozilla-central/source/`_
- To look up a specific file in our tree use this url for a base: https://dxr.mozilla.org/mozilla-central/search?q=path%3A and add the file name to it.
Pro tip: You can define a bookmark keyword in Firefox. Then you can type “dxrf <filename>” in the URL bar.
Pastebin is a tool that can be used to capture snippits of log or error messages for collaborative debugging.
To “pastebin” something, paste it here and hand the link you’re given after clicking “submit” to people on IRC.
Python is a programming language that we use in many of our tools and automation frameworks. Our bigger web-based tools are often implemented using Django, a Python-based framework for making websites.
Most of our Python-based projects are developed to run under Python 2.
- The Hitchhiker’s Guide to Python
- A useful guide for beginner and expert Python developers. If you need to install Python on your computer, this guide will help!