LogoLogo
  • About Thunderbird
  • Contributing to Thunderbird
    • Getting Started Contributing
    • Setting Up A Build Environment
    • Building Thunderbird
      • Windows Build Prerequisites
      • Linux Build Prerequisites
      • macOS Build Prerequisites
      • Artifact Builds
    • Codebase Overview
      • Account Configuration
      • Address Book
      • Chat Core
        • Notifications
        • Message Styles
        • Keyboard shortcuts
        • Chat Core Protocols
        • Contacts
      • Mail Front-End
    • Tutorials and Examples
      • Hello World Example
      • Thunderbird Live Development Videos
    • Fixing a Bug
      • Bug Triaging 101
        • Bug Status Classicification
        • Bug Types
        • Garbage Collection
        • Narrow the Scope
      • Using Mercurial Bookmarks
      • Using Mercurial Queues
      • Lint and Format Code
      • Using ESLint to Format Javascript Code
      • Try Server
      • Landing a Patch
      • Care and Feeding of the Tree
    • Testing
      • Running Tests
      • Adding Tests
      • Writing Mochitest Tests
  • Planning
    • Roadmap
    • Android Roadmap
    • Supported Standards
  • Add-on Development
    • Introduction
    • What's new?
      • Manifest Version 3
    • A "Hello World" Extension Tutorial
      • Using WebExtension APIs
      • Using a Background Page
      • Using Content Scripts
    • A Guide to Extensions
      • Supported Manifest Keys
      • Supported UI Elements
      • Supported WebExtension APIs
      • Thunderbird's WebExtension API Documentation
      • Thunderbird WebExtension Examples
      • Introducing Experiments
    • A Guide to Themes
    • Developer Community
    • Documentation & Resources
      • Tips and Tricks
    • Add-on Update Guides
      • Update for Thunderbird 128
      • Update for Thunderbird 115
        • Adapt to Changes in Thunderbird 103-115
      • Update for Thunderbird 102
        • Adapt to Changes in Thunderbird 92-102
      • Update for Thunderbird 91
        • Adapt to Changes in Thunderbird 79-91
      • Update for Thunderbird 78
        • Adapt to Changes in Thunderbird 69-78
      • Update for Thunderbird 68
        • Adapt to Changes in Thunderbird 61-68
      • How to convert legacy extensions?
        • Convert wrapped WebExtensions to modern WebExtensions
        • Convert legacy WebExtensions to modern WebExtensions
        • Convert legacy overlay extension to legacy WebExtension
        • Convert legacy bootstrapped extension to legacy WebExtension
  • Releases
    • Thunderbird Channels
    • Release Cadence
    • Uplifting Fixes
    • Feature Flags
    • Tracking Fixes for Releases
    • Contributing to Release Notes
Powered by GitBook
On this page
  • Build Prerequisites
  • General Information
  • Mercurial Version Control
  • Mozilla Code Base
  • Additional Documentation
  • What's Next

Was this helpful?

Edit on GitHub
Export as PDF
  1. Contributing to Thunderbird

Setting Up A Build Environment

This page has all the information you need to get your development environment set up and ready to hack on Thunderbird.

PreviousGetting Started ContributingNextBuilding Thunderbird

Last updated 1 month ago

Was this helpful?

Build Prerequisites

Before you can build Thunderbird, please follow your platform's build prerequisites page:

General Information

Mercurial Version Control

Mozilla uses the software to propose, review, incorporate, and log changes to its code. In order to contribute to Thunderbird, you will need to be able to use this software.

Information for how to install Mercurial is available .

Mozilla Code Base

mozilla-central vs. comm-central

The latest Mozilla source code comes from Mozilla's mozilla-central Mercurial code repository, often called source/ but it can be named anything you like. The latest Thunderbird source code comes from Mozilla's comm-central Mercurial code repository and needs to be placed inside the Mozilla source code, in a directory that must be named comm/.

Mozilla-central will build Firefox without the comm-central repo present and a few options set (detailed on the page).

Additional Documentation

Thunderbird is built on the Mozilla platform, the same base that Firefox is built from. As such the two projects share a lot of code and much of the documentation for one will apply, in many ways, to the other. If at any point you are looking for answers that you can't find here, here are some additional useful resources:

What's Next

If you have already gone through the relevant build prerequisite steps, then let's build the latest Thunderbird:

Windows Build Prerequisites
Linux Build Prerequisites
macOS Build Prerequisites
Mercurial version control
via the download page on their wiki
Building Thunderbird
Thunderbird Source Tree Documentation
Firefox Source Tree Documentation
Mozilla's Developer site called: MDN
Building Thunderbird