Release plan: Difference between revisions

m
no edit summary
mNo edit summary
Line 6: Line 6:
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 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.  


Line 13: Line 13:
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 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.


=== Version Numbers ===
=== Version numbers ===
* '''Major releases''' always have '''even numbers''' as the second version element, i.e. 2.4.0, 2.6.0, 2.8.0.
* '''Major releases''' always have '''even numbers''' as the second version element, i.e. 2.4.0, 2.6.0, 2.8.0.
* '''Bugfix releases''' increase the least significant digit: 2.6.1, 2.6.2, 2.6.3.
* '''Bugfix releases''' increase the least significant digit: 2.6.1, 2.6.2, 2.6.3.
Line 19: Line 19:
* The major version number is increased after significant changes to the functionality of the software (i.e. FG 1.x => 2.0 due to switch to OSG).
* The major version number is increased after significant changes to the functionality of the software (i.e. FG 1.x => 2.0 due to switch to OSG).


=== Detailed Time Schedule and Checklist ===
=== Detailed time schedule and checklist ===
# '''Dec/Jun 17th:''' Development stream is declared "frozen" or "yellow"
# '''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
Line 77: Line 77:
**: <s>change the line '''AC_MSG_CHECKING([for SimGear 2.5.0 or newer])'''</s>
**: <s>change the line '''AC_MSG_CHECKING([for SimGear 2.5.0 or newer])'''</s>


=== Definition of Repository States ===
=== Definition of repository states ===
* Open/Green
* 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.
: 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.
Line 93: Line 93:
'''DO NOT''' merge next into release/2.6.0 or vice versa. Most likely, there will be commits that are not welcome in or even break the other branch.
'''DO NOT''' merge next into release/2.6.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 ===
The [http://flightgear-bugs.googlecode.com bugtracker] will be our primary source for the bug fixing period. Bugs reported on the mailing list or forum will not be tracked! Reporters shall be requested to file a bug report at the bugtracker. Bugs shall be assigned a priority and a keyword to make the assignment to a developer easier. Bug reports that can't be confirmed or need more input from the reporter to get fixed will be assigned a new state "stalled" and only processed after more information has been provided. Bugs assigned a high priority will be downgraded, if no progress has been made over a certain amount of time. This is to prevent the release from being blocked by a bug that no developer is able (or willing) to fix. The only exception is "does not compile for one of the major platforms", which certainly is a release-blocker.
The [http://flightgear-bugs.googlecode.com bugtracker] will be our primary source for the bug fixing period. Bugs reported on the mailing list or forum will not be tracked! Reporters shall be requested to file a bug report at the bugtracker. Bugs shall be assigned a priority and a keyword to make the assignment to a developer easier. Bug reports that can't be confirmed or need more input from the reporter to get fixed will be assigned a new state "stalled" and only processed after more information has been provided. Bugs assigned a high priority will be downgraded, if no progress has been made over a certain amount of time. This is to prevent the release from being blocked by a bug that no developer is able (or willing) to fix. The only exception is "does not compile for one of the major platforms", which certainly is a release-blocker.


Line 105: Line 105:
If everything goes well, version 2.6.0 will be available around Feb, 18th 2012.
If everything goes well, version 2.6.0 will be available around Feb, 18th 2012.


=== Tasks and Owners ===
=== Tasks and owners ===
(taskowners not yet assigned)
(taskowners not yet assigned)
* Announce the state-change of the dev-streams
* Announce the state-change of the dev-streams
Line 124: Line 124:
** Contact flightsim websites and send them/link them to the "press announcement". See [[release promotion]] for a list of already-contacted and yet-to-contact websites/magazins.
** Contact flightsim websites and send them/link them to the "press announcement". See [[release promotion]] for a list of already-contacted and yet-to-contact websites/magazins.


=== Open Items, Questions ===
=== Open items, questions ===
* Automate the creation of Windows and Mac installers
* Automate the creation of Windows and Mac installers
* Automate the creation of FGDATA distribution
* Automate the creation of FGDATA distribution


=== 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 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.
* Good: 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.
* Not so good: feature freeze for aircraft
* {{Thumbs down}} feature freeze for aircraft
*: Technically, a feature freeze for aircraft is not necessary as long as this aircraft is not part of the base distribution and no common parts are affected. If it's guaranteed that the changes remain in FGDATA/Aircraft/MyAircraft and no other files are touched, these updates should be OK up to shortly before the release.
*: Technically, a feature freeze for aircraft is not necessary as long as this aircraft is not part of the base distribution and no common parts are affected. If it's guaranteed that the changes remain in FGDATA/Aircraft/MyAircraft and no other files are touched, these updates should be OK up to shortly before the release.
* Not so good: switching to a new version of supporting libraries like OSG.
* {{Thumbs down}} switching to a new version of supporting libraries like OSG.
*: The move to OSG 3.x introduced some major issues. If at all possible, switch to a new library early in the development cycle.
*: The move to OSG 3.x introduced some major issues. If at all possible, switch to a new library early in the development cycle.
* Not so good: manual creation of release candidates and the release binaries
* {{Thumbs down}} manual creation of release candidates and the release binaries
*: It's preferable to have equal numbers for release candidates for all O/S and probably a git-tag for each candidate.
*: It's preferable to have equal numbers for release candidates for all O/S and probably a git-tag for each candidate.
* Not so good: release date/time frame
* {{Thumbs down}} release date/time frame
*: It took several days to release all the subparts. Might be better to upload all files and pages to hidden folders and publish them all at once (or at least within a couple of hours). That'll have several advantages:
*: It took several days to release all the subparts. Might be better to upload all files and pages to hidden folders and publish them all at once (or at least within a couple of hours). That'll have several advantages:
*:* no big difference between releases for the various OS.
*:* no big difference between releases for the various OS.