-
Notifications
You must be signed in to change notification settings - Fork 43
Release process and versioning
This wiki page is used by the current or future release manager to learn and know how to do a release. It is not of any interest to other developers or users.
We follow FlightGear's versioning scheme. Development versions have a number that ends with "-git", for example, "2018.3-git", and actual releases get a number without it, for example, "2018.3". After having created a new release for 2018.3, the next development version becomes: "2018.4-git".
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 a few steps:
-
Update
NEWS.md
-
Update and commit the version number of the new release
-
Release a new version, which includes tagging the version commit and creating a branch based on the version commit (which should be in the
master
branch). -
On Github, add release notes to the tag, create a new issue for gathering release notes for the next version, and notify a FG developer so that they can copy the branch to FGDATA.
Creating the release must be done a couple of days before May 17th, August 17th, November 17th, or January 17th.
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).
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.
For the examples below, we assume that the current development version is "2018.3-git", the new released version is "2018.3", and the next development version is "2018.4-git".
This whole process must be done several days before the dates mentioned above. Around this day, the core developers of FlightGear will wake up 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 current development version, for example: "2018.3-git". -
Update
NEWS.md
and add a bullet list for the new version, 2018.3. Commit with commit message: "Update NEWS.md for 2018.3 release". -
Update the version number in
c172p-set.xml
to the release version number: "2018.3". Commit the change and use the following commit message: "Version 2018.3". -
Add a release tag to the last commit (which should be "Version 2018.3"). Add a tag with the version number of the new actual release. If current development version is 2018.3-git, then the release tag will be:
version/2018.3
.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 version/2018.3 git push --follow-tags
You can verify the key with
git tag -v version/2018.3
.Otherwise (if you do NOT have a GPG key) use the following command:
git tag -a version/2018.3 git push --follow-tags
You can add a message to the tag. Just use the tag itself, so write: "Version 2018.3".
-
Immediately after adding the release tag, create a branch for the new release. For example, if the release tag was
version/2018.3
, then use following command to create a new branch:git checkout -b release/2018.3 git push -u origin release/2018.3 git checkout master
-
Update the version number to the next development version, 2018.4-git. Make sure with
git branch
orgit status
that the current branch ismaster
. Openc172p-set.xml
and set<aircraft-version>
to the new development version: "2018.4-git". Commit and push this change with the following commit message: "Version 2018.4-git" (Add-S
togit commit
to sign the commit with your GPG key if you have one). -
Go to the tags page on Github and add release notes to tag
version/2018.3
:**Features:** (The list of features) **Fixes:** (The list of fixes) People who have contributed to the 2018.3 release: - @user1 - @user2 See [`release/2018.3`](https://github.com/c172p-team/c172p/tree/release/2018.3) for any additional fixes added to this release. Note: this aircraft is the default aircraft in FlightGear. Manually downloading it is not necessary.
-
Create a new issue called "Gather a list of features and bugs we fixed in 2018.4" with the following content:
We should gather a list of all the new features, major changes, and bugs we fixed. Please create a list (use \* to create bullet points) here. **Features:** * TODO **Fixes:** * TODO Do not forget to update `NEWS.md` before creating the release. See https://github.com/c172p-team/c172p-detailed/wiki/Release-process-and-versioning
Make sure to add a "help wanted" label.
-
Move any open issues on the
2018.3 features/release
milestones to theFuture features/release
or2018.4 features/release
milestones. Finally close the2018.3 features/release
milestones (they should be 100% complete). -
Notify Stuart Buchanan (@stuartbuchanan) on the mailing list that he can merge the new branch to FGDATA.