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?

Most of our sites are developed on Mac OS X or Linux, and deployed on servers running Linux. 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 an OS X or 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

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.

See also

help.github.com
A great guide to getting start 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.

Python

Python is a programming language that many of our websites use for their backend code. Most of our Python-based sites are implemented using Django, a Python-based framework for making websites.

Most of our Python-based sites are developed to run under Python 2, and most of our servers run the sites on Python 2.

See also

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!

Node.js

Node.js is a JavaScript-based runtime for building network applications, including websites. An increasing amount of Mozilla projects are being written as Node applications.

See also

nodejs.org Downloads
The official Node.js download page, which includes installers for Windows and Mac OS X.

Miscellaneous

The following is a list of software you probably need that don’t merit a heading:

  • GNU gettext: Used for localization support on many websites. Can usually be installed via your package manager under the name gettext.