Development workflow

From FlightGear wiki
Jump to navigation Jump to search
WIP.png Work in progress
This article or section will be worked on in the upcoming hours or days.
See history for the latest developments.

This page is meant to be a high-level introduction to the development workflow of FlightGear, that is, the process developers follow to contribute their work to the project.

The big picture

Everything is stored in several Git repositories (collection of files) on SourceForge. You can find a list of them in the FlightGear Git page.

Only a handful of developers have commit access, that is, the right to make changes to those repositories without prior approval. This is done to ensure that only people showing a good, consistent contribution track record and good judgement are able to perform such modifications unsupervised.[1] For this reason, once a developer contributes some work, it will need to be staged for approval by another contributor having commit access.

Life of a patch

The contribution process can be divided in the following phases.

  1. Clone the repositories you would like to contribute to and fetch them. In this context, a clone is a personal copy of the original repository created for temporarily keeping your proposed modifications until they are accepted into the project. You will need to clone the original repository and download the data to your computer.
  2. Perform the desired modifications and publish them to your clone.
  3. When you are ready to get your work accepted, submit a merge request. A developer will check your contribution before merging it into the project repositories. Fix any issues that are found during the review.
  4. Once your work is included, monitor the build server, the mailing lists and the forum to check for bugs you might have inadvertently introduced.

Scenery and aircraft contributions

Due (mostly) to their file size, scenery and aircraft are stored using different file management systems and, thus, do not follow the process outlined in this article.