Release plan: Difference between revisions

m (Typo)
Line 20: Line 20:


=== Detailed Time Schedule and Checklist ===
=== Detailed Time Schedule and Checklist ===
# Dec/Jun 17th: Development stream is declared "frozen" or "red".
# Dec/Jun 17th: Development stream is declared "frozen" or "yellow".
#: 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.
# 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
##Send a mail to the flightgear-devel mail-list, asking not to commit/push anything, declare the streams "closed" or "red"
##Bump up the version-number of simgear/next, flightgear/next and fgdata/master to an even number (2.3.0 -> 2.4.0)
##Bump up the version-number of simgear/next, flightgear/next and fgdata/master to an even number (2.3.0 -> 2.4.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.4.0"
##:''git tag -a version/2.4.0'' (Enter a wise comment)
##Create the release branches on simgear, flightgear and fgdata named release/2.4.0
##Create the release branches on simgear, flightgear and fgdata named release/2.4.0
##:''git branch release/2.4.0''
##:''git branch release/2.4.0''
Line 32: Line 34:
##Compile and test drive FlightGear with the new development version number
##Compile and test drive FlightGear with the new development version number
##Commit the changes of version-number to next/master
##Commit the changes of version-number to next/master
##Push the branches next/master '''and''' release/2.4.0 upstream
##Tag (annotated) flightgear, simgear and fgdata with "version/2.5.0"
##:''git tag -a version/2.5.0'' (Enter a wise comment)
##Push the branches next/master '''and''' release/2.4.0 '''and''' the tags upstream
##:for flighgear, simgear and fgdata: ''git push origin release/2.4.0''
##:for flighgear, simgear and fgdata: ''git push origin release/2.4.0''
##:for flighgear, simgear and fgdata: ''git push origin version/2.4.0''
##:for flighgear, simgear and fgdata: ''git push origin version/2.5.0''
##:for flightgear and simgear: ''git push origin next''
##:for flightgear and simgear: ''git push origin next''
##:for fgdata: ''git push origin master''
##:for fgdata: ''git push origin master''
Line 41: Line 47:
# Feb/Aug 17th: Create binaries/installers, pack fgdata, publish files, announce new version, close the release-branch
# Feb/Aug 17th: Create binaries/installers, pack fgdata, publish files, announce new version, close the release-branch
##Tag the release/2.4.0 branches of simgear, flightgear and fgdata.
##Tag the release/2.4.0 branches of simgear, flightgear and fgdata.
##Merge the branch release/2.4.0 into '''master''' (<u>'''NOT'''</u> next) for flightgear and simgear
##:We don't have a next branch for fgdata, no merging of the release branch here.


From step 1) to step 2), no new features or major changes shall be pushed onto the development stream (neither source nor data). This period is for preparing the code for the release and make sure there are no major issues.  
=== Definition of Stream States ===
* Open/Green
: Normal development of the code base and fgdata. Unrestricted (well, sort of) access to the streams. This state lasts for five month after the release branches were created.
* Frozen/Yellow
*:No new features or major changes shall be pushed onto the development streams (neither source nor data). This period is for preparing the code for the release and make sure there are no major issues. It lasts for four weeks until creation of the release branches.
* Closed/Red
*:Nothing shall be pushed to the development streams (simgear, flightgear and fgdata). This state is for creating the release branches. It lasts for just a few hours on Jan 17th and Jul 17th around 12:00 UTC.


After step 2) to the next step 1), development on the next/master stream is open again for any change. Bugfixes for this release go into the release branch only and gets a better fix in the dev-stream. Fixes that need to be in both branches go into the release branch and get backported into the next/master my merging, cherry-picking or whatever method applies (note: this needs to be discussed).
=== Bug fix committing policy ===
Fixes for bugs during the shakedown test of the release branch may be applied to the branches next or release/2.4.0.
A fix goes into release/2.4.0 if the development of next has moved forward and this fix does not apply there. It also goes into the release branch if there will be a better fix for next.
A fix goes into next if it is also solves an issue for the next version. Cherry-pick this commit into the release/2.4.0 branch.
 
'''DO NOT''' merge next into release/2.4.0 or vice versa. Most likely, there will be commits that are not welcome in or even break the other branch.


=== Bug Tracking ===
=== Bug Tracking ===