-
Notifications
You must be signed in to change notification settings - Fork 44
Release process and versioning
We follow FlightGear's versioning scheme: development versions have an odd minor number, for example, 3.7.0, and actual releases get an even number, for example, 3.8.0. After having created a new release for 3.8.0, the next development version gets an odd minor number again: 3.9.0.
Note that development versions are temporary and are not released. Their sole purpose is to have a different version number from actual releases, so that the developers know which version they are dealing with (Git development or an actual released version) when receiving bug reports.
The release process consists of two steps:
-
Freezing the development branch
master
. -
Releasing a new version, including a branch branching off
master
.
Freezing must be done a couple of days before December 17th or June 17th. Creating the new release, one month later.
Git can sign commits and tags with a GPG key. If you have one (if you are unsure then you do NOT have one), use the following command to set your signing key:
git config --local user.signingkey AABBCCDD
Where AABBCCDD
is the ID of your actual key.
Note that git commit
uses -S
(uppercase), while git tag
uses -s
(lowercase).
Freezing consists of updating <aircraft-version>
, creating a tag and pushing it to the remote repository on Github:
-
Make sure your current branch is
master
. Openc172p-set.xml
and set<aircraft-version>
to the new version of the next upcoming release: "3.8". Commit this change with the following commit message: "Version 3.8" (Add-S
togit commit
to sign the commit with your GPG key if you have one). -
Add a freeze tag to the last commit a couple of days before December 17th or June 17th. Add a tag with the version number of the next actual release. Make sure the minor number is even and that your current branch is
master
. If the current development version is 3.7.0, then the freeze tag will be:freeze/3.8.0
.The purpose of this tag is to let people know that development for 3.8.0 has frozen, meaning that bug fixes can still be committed, but no new features should be added.
If you have a GPG key (if you are unsure, you do not have one), use the following command to create a GPG-signed tag:
git tag -s freeze/3.8.0 git push --follow-tags
You can verify the key with
git tag -v freeze/3.8.0
.Otherwise (if you do NOT have a GPG key) use the following command:
git tag -a freeze/3.8.0 git push --follow-tags
You can add a message to the tag. Just use the tag itself, so write: "freeze/3.8.0".
Releasing a new version is a bit more difficult: we have to tag the latest commit in master
and create a new branch. This new branch is used by the core developers of FlightGear and added to FGData. Any critical bug fixes for this release should be added to this new branch, as well as to master.
This whole process must be done several days before 17th of January of July. Around this day, the core developers of FlightGear will awake and try to copy the new release branch to FGData. If you are too late, their behavior is undefined. It is very unlikely to get any notification from them.
-
Make sure your current branch is
master
and that<aircraft-version>
inc172p-set.xml
contains the version number of the new release, for example: "3.8". -
Add a release tag to the last commit a couple of days before January 17th or July 17th. Add a tag with the version number of the new actual release. Minor number must be even and make sure your current branch is
master
. If current development version is 3.7.0 and one month ago you added the freeze tagfreeze/3.8.0
, then the release tag will be:version/3.8.0
:git tag -s version/3.8.0 git push --follow-tags
Again, when creating the tag, use
-s
if you have a GPG key, otherwise use-a
to make sure the tag is annotated. -
Immediately after adding the release tag, create a branch for the new release. For example, if the release tag was
version/3.8.0
, then use following command to create a new branch:git checkout -b release/3.8.0 git push -u origin release/3.8.0 git checkout master
4. Increment the version number to the next development version. This means the new version has an odd minor number. Make sure with `git branch` or `git status` that the current branch is `master`. Open `c172p-set.xml` and set `<aircraft-version>` to the new development version: "3.9". Commit this change with the following commit message: "Version 3.9" (Add `-S` to `git commit` to sign the commit with your GPG key if you have one).
5. Go to the [tags page on Github](https://github.com/Juanvvc/c172p-detailed/tags) and add release notes to tag `version/3.8.0`.