summaryrefslogtreecommitdiff
path: root/ReleasePlanning2008.mdwn
blob: 49d970517e371c5295adf0cdc77ac7a771740a45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85


# GStreamer release schedule for 2008 July - Dec

Release schedule for the 2nd half of 2008. See [[ReleasePlanning2008-1|ReleasePlanning2008-1]] for the first half. 


## Summary Schedule

This is the quick summary of the releases for the next 6 months. See below for the full schedule 
[[!table header="no" class="mointable" data="""
 **Date**  |  **Task** 
 Jul 14  |  **Good/Bad freeze. 4 day plugin window opens** 
 Jul 28  |  Good 0.10.9, Bad 0.10.8 release 
 Aug 8  |  **Ugly/FFmpeg/Bad freeze. 4 day plugin window opens** 
 Aug 22  |  Ugly 0.10.9, FFmpeg 0.10.5, Bad 0.10.9 (if needed) release 
 Sep 9  |  **Core/Base/Python freeze.** 
 Sep 22  |  Core 0.10.21, Base 0.10.21, Python 0.10.13 release 
 Oct 6  |  **Good/Bad freeze. 4 day plugin window opens** 
 Oct 20  |  Good 0.10.10, Bad 0.10.10 release 
 Nov 3  |  **Ugly/FFmpeg/Bad freeze. 4 day plugin window opens** 
 Nov 17  |  Ugly 0.10.10, FFmpeg 0.10.6, Bad 0.10.11 (if needed) release 
"""]]


## Process

At the moment there are 7 GStreamer modules included in the schedule: 

* GStreamer Core 
* GStreamer Base Plugins 
* GStreamer Good Plugins 
* GStreamer Bad Plugins 
* GStreamer Ugly Plugins 
* GStreamer FFmpeg 
* GStreamer Python Bindings 
Modules not included: 

* Gnonlin - released by Edward Hervey as he sees fit 
* GStreamer OpenGL support - doesn't exist yet :) 
Each module will see a release every 3 months. For an explanation of the freezes please see [[here|ReleasePlanning/Freezes]]. 

The cycle starts with of out-of-pattern releases of Core/Base/Python and then Good/Bad/Ugly together because all modules urgently need releases. After that, it should be possible to follow a regular pattern of Core/Base/Python then Good/Bad then Ugly/FFmpeg. The Ugly/FFmpeg release might include a second Bad release if needed due to plugin moves. See the [[Plugin Moves|ReleasePlanning2008]] section. 


## Release procedure for Core/Base/Python

The release procedure is to freeze the modules, and then make a series of pre-release tarballs. 2 weeks later, the final release is done. At the discretion of the release manager, this may happen after only one week if no bugs are found, and we can all go to the pub. 

The modules thaw the day after the final release, just in case a paper bag release is needed. 

* Day 0: Code Freeze Core/Base/Python. Make first pre-release tarballs 
* Day 3: Make 2nd pre-releases if any blocker bugs have been identified and fixed. 
* Day 7: Make 3rd pre-releases if any new blocker bugs have been identified and fixed. 
* Day 14: Release new version. Good/Bad/Ugly/FFmpeg are now dependency frozen. 
* Day 15: Code thaw for Core/Base/Python. 

## Release procedure for plugin modules

Plugin module releases begin with a plugin move window (4 days), then freeze and pre-releases begin. 2 weeks later the final release is done. At the discretion of the release manager, this may happen after only one week if no bugs are found. 

Code & dependency freezes end the day after the final release. 

* Day 0: Plugin move window opens. Commits should be done with care. 
* Day 4: Plugin move window closes. First pre-releases made. Modules are frozen for commits. 
* Day 9: Make 2nd pre-releases if any blocker bugs have been identified and fixed. 
* Day 14: Release new versions 
* Day 15: Code and dependency thaw for the newly released modules. 
Additionally, when Good/Bad are released (together), the Bad module is branched so that later a 2nd option 'plugin moves' release of Bad can be done simultaneously with Ugly _if needed_ 

We may vary the schedule to skip an FFmpeg release from time to time if it seems that nothing exciting has been changed, since releases of FFmpeg require a lot of testing, since it includes so many codecs. 

<a name="PluginMoves"></a> 


## Plugin Moves

From time to time, plugins improve in quality sufficiently to warrant moving them from Bad to Good or Bad to Ugly (or sometimes vice versa in cases of neglect). Such plugin moves require simultaneous releases of the modules involved so that we never ship tarballs with conflicting installed plugins. 

To support this, the schedule provides plugin move windows during which plugins can be moved. Further, after the Good/Bad release, the Bad module will be branched. If during the next Ugly/FFmpeg release phase plugin moves happen between the Bad & Ugly modules, a 2nd release of the Bad plugins will occur from the branch **with the only changes being the removal or addition of plugins from the Ugly module**. 


### TODO

* Add notes for KDE release/freeze schedules?