Release plan: Difference between revisions

Present tense
(Present tense)
Line 2: Line 2:


[[File:ReleasePlan.jpg|thumb|250px|The original plan]]
[[File:ReleasePlan.jpg|thumb|250px|The original plan]]
This release plan was originally developed by Mathias Fröhlich, Martin Spott, Thorsten Brehm and Torsten Dreyer during LinuxTag 2011.
This '''release plan''' was originally developed by Mathias Fröhlich, Martin Spott, Thorsten Brehm and Torsten Dreyer during LinuxTag 2011.


If you think you have something to contribute to the release process, feel free to <span class=plainlinks>[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} edit this page]</span>. Please discuss this concept at the mailing-list.
If you think you have something to contribute to the release process, feel free to <span class=plainlinks>[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} edit this page]</span>. Please discuss this concept at the mailing-list.


=== General release concept ===
=== General release concept ===
New FlightGear releases will be scheduled twice a year. The magic number to remember is 17 (we tried 42, but that didn't turn out so well. 17 is perfect: 1 is not a prime, 7 is a prime and so is 17). On the 17th of January (1) and July (7) a new release branch will be created for SimGear, FlightGear and FGDATA.  
New FlightGear releases are scheduled twice a year. The magic number to remember is 17 (we tried 42, but that didn't turn out so well. 17 is perfect: 1 is not a prime, 7 is a prime and so is 17). On the 17th of January (1) and July (7) a new release branch is created for [[SimGear]], FlightGear and FGDATA.  


After branching, we will allow one month for bug fixing in the release branch, so building and packing of the binaries and FGDATA will take place around February, 18th and August, 18th. Allowing a few days for distribution of the files, new versions should be publically available around the 20th of February and August.  
After branching, there is one month for bug fixing in the release branch, so building and packing of the binaries and FGDATA takes place around February, 18th and August, 18th. Allowing a few days for distribution of the files, new versions should be publically available around the 20th of February and August.


The development stream of SimGear, FlightGear and FGDATA will be set into a frozen state one month before the branch-day (17th) to let the dust of development settle and to allow fixing the most annoying bugs in the code. During this period, developers are requested not to add any new features, subsystems or alike. Immediately after the stream has branched for the release, development in the main stream (next/master) is open for major changes until one month before the next branch-day. This results in a duty cycle of 5 month developing and 1 month thinking.
The development stream of SimGear, FlightGear and FGDATA is set into a frozen state one month before the branch-day (17th), to let the dust of development settle and to allow fixing the most annoying bugs in the code. During this period, developers are requested not to add any new features, subsystems or alike. Immediately after the stream has branched for the release, development in the main stream (next/master) is open for major changes until one month before the next branch-day. This results in a duty cycle of 5 month developing and 1 month thinking.


=== Version numbers ===
=== Version numbers ===
Line 23: Line 23:
#:Send a mail to the flightgear-devel mailing-list to announce the state
#:Send a mail to the flightgear-devel mailing-list to announce the state
#:Create a "release preperations" topic at the forum and make it a "Global Announcement"
#:Create a "release preperations" topic at the forum and make it a "Global Announcement"
#:Change the content of wiki template at [[Template:GitStatus]] to <tt><nowiki>{{GitStatus:frozen}}</nowiki></tt>
#:Change the content of wiki template at [[Template:GitStatus]] to <code><nowiki>{{GitStatus:frozen}}</nowiki></code>
# '''Jan/Jul 17th:''' Create new release branch, assign new version number to dev-stream, re-open streams
# '''Jan/Jul 17th:''' Create new release branch, assign new version number to dev-stream, re-open streams
##Send a mail to the flightgear-devel mail-list, asking not to commit/push anything, declare the streams "closed" or "red"
##Send a mail to the flightgear-devel mail-list, asking not to commit/push anything, declare the streams "closed" or "red"
##Post an update to the forum topic
##Post an update to the forum topic
##Change the content of wiki template at [[Template:GitStatus]] to <tt><nowiki>{{GitStatus:closed}}</nowiki></tt>
##Change the content of wiki template at [[Template:GitStatus]] to <code><nowiki>{{GitStatus:closed}}</nowiki></code>
##Bump up the version-number of simgear/next, flightgear/next and fgdata/master to an even number (2.5.0 -> 2.6.0)
##Bump up the version-number of simgear/next, flightgear/next and fgdata/master to an even number (2.5.0 -> 2.6.0)
##Compile and test drive FlightGear with the new version-number
##Compile and test drive FlightGear with the new version-number
##Commit the new version number to next (flightgear+simgear) and master(fgdata)
##Commit the new version number to next (flightgear+simgear) and master(fgdata)
##Tag (annotated) flightgear, simgear and fgdata with "version/2.6.0"
##Tag (annotated) flightgear, simgear and fgdata with <tt>version/2.6.0</tt>
##:''git tag -a version/2.6.0'' (Enter a wise comment)
##:''git tag -a version/2.6.0'' (Enter a wise comment)
##Create the release branches on simgear, flightgear and fgdata named release/2.6.0
##Create the release branches on simgear, flightgear and fgdata named <tt>release/2.6.0</tt>
##:''git branch release/2.6.0''
##:''git branch release/2.6.0''
##On the next/master branches, bump up the version-number of simgear, flightgear and fgdata to an odd number (2.6.0 -> 2.7.0)
##On the next/master branches, bump up the version-number of simgear, flightgear and fgdata to an odd number (2.6.0 -> 2.7.0)
Line 47: Line 47:
##:for fgdata: ''git push origin master''
##:for fgdata: ''git push origin master''
##: Declare dev-streams "open" or "green"
##: Declare dev-streams "open" or "green"
##: Change the content of wiki template at [[Template:GitStatus]] to <tt><nowiki>{{GitStatus:open}}</nowiki></tt>
##: Change the content of wiki template at [[Template:GitStatus]] to <code><nowiki>{{GitStatus:open}}</nowiki></code>
##:Send a mail to the flightgear-devel mailing-list to announce the state.
##:Send a mail to the flightgear-devel mailing-list to announce the state.
## Trigger James for the Jenkins-builds and Curt for a snapshot release and ThorstenB for the OpenSuse build
## Trigger James for the Jenkins-builds and Curt for a snapshot release and ThorstenB for the OpenSuse build
Line 163: Line 163:


=== Lessons learned ===
=== Lessons learned ===
This is a list of lessons learned from the previous release, things that turned out well and should be kept for the next release as well as thing thad didn't turn out so well and should be changed for future releases.
This is a list of lessons learned from the previous releases, things that turned out well and should be kept for the next release as well as thing thad didn't turn out so well and should be changed for future releases.
* {{Thumbs up}} feature freeze in general
* {{Thumbs up}} feature freeze in general
*: helped a lot during release management. Kept the commit traffic low and thus helped identifying those commits required to pick into the release.
*: helped a lot during release management. Kept the commit traffic low and thus helped identifying those commits required to pick into the release.
Line 177: Line 177:
*:* the website will switch to the new release state quickly. With 2.6.0, the aircraft page was published before the setup. The release announcement was published even later.
*:* the website will switch to the new release state quickly. With 2.6.0, the aircraft page was published before the setup. The release announcement was published even later.


[[Category:Core developer documentation]]
[[Category:FlightGear]]
[[Category:FlightGear]]
[[Category:Core developer documentation]]