Schedules/Release Schedules Guide: Difference between revisions

From KDE TechBase
m (typo)
(add move to community notice)
Line 1: Line 1:
KDE is becoming a very big project. To be able to make a release of KDE a lot
{{Moved To Community}}{{Moved To Community}}
of cooperation between all developers is needed. To make clear to everyone
what is required to make a successful release a schedule is made.
This schedule should be seen as a guideline and not as a strict scheme.
To get involved with KDE releases, please join the [http://techbase.kde.org/Projects/Release_Team Release Team]
 
Hopefully this release schedule can contribute to the fun and quality of KDE.
 
== KDE Release Schedules ==
 
Two schedules are presented here. A major release takes approx. 5 (!!) months
from the first announcement to the final release. A minor release takes approx.
2 months. Schedules for [[#Schedule (Major Release)|major]]
releases and for [[#Schedule (Minor Release)|minor]] releases.
 
The dates mentioned serve as an indication only. They reflect the expected
duration of a certain phase. If required by the circumstances, the release
dude is free to increase the time between steps. In this case, the release
dude will inform all KDE mailinglists about the adjustments in the release
schedule as well as the reason for the adjustments.
 
''Example:'' "The KFM authors want to add javascript support in KHTML before
the freeze and will need at least 3 more weeks for this. Therefore the
freeze of the KDE libraries has been delayed till at least 1 Aug 2001."
 
If a developer would like to see the release delayed he/she should inform
the release dude about this as soon as possible. The release dude will
decide whether the release will be delayed or not. (Possibly after
consulting others)
 
''Example:'' "Can we wait with the release till Qt3.54 has been released?
I want to use the xyz widget the Trolls have added in my abc application."
 
=== Schedule (Major Release) ===
 
{| border="1" cellpadding="5" cellspacing="0" style="border: #80B3FF solid 1px; border-collapse: collapse; text-align: left; width: 100%;"
|-
|bgcolor="#EEEEEE"| '''Step 1'''
|bgcolor="#EEEEEE"| '''Start of the Release'''
|bgcolor="#EEEEEE"| '''Date:''' wk 0
|-
|colspan="3"|
* A release dude is appointed who will implement this schedule.
* It is decided which libraries will be released.
* A [[#release_announcement|Release Announcement]] is made which is also published on the appropriate mailing lists.
|-
||'''Evaluation''' || || '''Date:''' wk 3
|-
|colspan="3"|
* It is evaluated whether the next step needs to be delayed. <br />A [[#release_announcement|Release Announcement]] is made with the result of the evaluation.
|-
|bgcolor="#EEEEEE" | '''Step 2'''
|bgcolor="#EEEEEE" | '''Library Freeze'''
|bgcolor="#EEEEEE" | '''Date:''' wk 4
|-
|colspan="3"|
* [[#core_lib|Core libraries]] are [[#feature_freeze|feature-frozen]] for the SVN trunk.
* It is decided which applications will be released.
* A [[#release_announcement|Release Announcement]] is made.
|-
||'''Evaluation''' || || '''Date:''' wk 7
|-
|colspan="3"|
* It is evaluated whether the next step needs to be delayed.<br /> A [[#release_announcement|Release Announcement]] is made with the result of the evaluation.
|-
|bgcolor="#EEEEEE" | '''Step 3'''
|bgcolor="#EEEEEE" | '''Application Freeze'''
|bgcolor="#EEEEEE" | '''Date:''' wk 8
|-
|colspan="3"|
* [[#core_lib|Core libraries]] enter [[#deep_freeze|deep-freeze]] for the SVN trunk.
* [[#core_app|Core applications]] are [[#feature_freeze|feature-frozen]] for the SVN trunk.
* An alpha-release is made in both source and binary form.
* It is decided which libraries will be released.
* A [[#release_announcement|Release Announcement]] is made.
|-
||'''Evaluation''' || || '''Date:''' wk 11
|-
|colspan="3"|
* It is evaluated whether the next step needs to be delayed.<br />A [[#release_announcement|Release Announcement]] is made with the result of the evaluation.
|-
|bgcolor="#EEEEEE" | '''Step 4'''
|bgcolor="#EEEEEE" | '''Ready for translation'''
|bgcolor="#EEEEEE" | '''Date:''' wk 12
|-
|colspan="3"|
* [[#core_lib|Core libraries]] are [[#deep_freeze|deep-frozen]] for the SVN trunk.
* [[#core_app|Core applications]] are [[#deep_freeze|deep-frozen]] for the SVN trunk.
* A source-only beta-release is made which will be translated.
* A [[#release_announcement|Release Announcement]] is made.
* A "What's Changed?" should be written!!
|-
||'''Evaluation''' || || '''Date:''' wk 15
|-
|colspan="3"|
* It is evaluated whether the next step needs to be delayed. <br /> A [[#release_announcement|Release Announcement]] is made with the result of the evaluation.
|-
|bgcolor="#EEEEEE" | '''Step 5'''
|bgcolor="#EEEEEE" | '''Final Release'''
|bgcolor="#EEEEEE" | '''Date:''' wk 16
|-
|colspan="3"|
* Debugging messages are turned off by default.
* The code is checked for left over debug output.
* A source-only gamma-release is made without translations.
* The SVN trunk is copied to tags/
* All parts are free to modify again.
* A [[#release_announcement|Release Announcement]] is made which is also published on the appropriate mailing lists.
* Translations can finalize and packagers can start to prepare themselves.
* The "What's changed?" should be finished by now!
* A "Press Release" should be written.
|-
||'''Evaluation''' || || '''Date:''' wk 18
|-
|colspan="3"|
* It is evaluated whether the next step needs to be delayed.<br /> A [[#release_announcement|Release Announcement]] is made if the next step is delayed.
|-
|bgcolor="#EEEEEE" | '''Step 6'''
|bgcolor="#EEEEEE" | '''Tagging of the Release'''
|bgcolor="#EEEEEE" | '''Date:''' wk 18
|-
|colspan="3"|This should happen during a weekend.
* All translations should be finished and have been put into SVN.
* The gamma-release is now the final-release. It should not have changed much since the previous step. The according tags/ copy is created in SVN.
* The tarballs of the release are made available to the packagers (and the packagers only).
* The creation of the tarballs are announced to kde-pr and kde-distributors. (These lists are not world readable) The translators are informed as well.
* The FTP-mirror maintainers are informed about the upcoming release and the mirrors.html file is updated (on both ftp and www).
|-
|bgcolor="#EEEEEE" | '''Step 7'''
|bgcolor="#EEEEEE" | '''Final Release'''
|bgcolor="#EEEEEE" | '''Date:''' wk 19
|-
|colspan="3"|This should happen on a Monday, one week after Step 6.
* kde-pr sends out the press release.
* kde-pr informs all KDE lists and updates the web-pages.
* Announcements to comp.os.linux.announce, comp.windows.x.kde, de.alt.comp.kde and possibly others are made.
* The binary and source packages are made world-wide available on the ftp-server.
* The release is complete.
* '''<font size="+2">PARTY!!!!</font>'''
|}
 
=== Schedule (Minor Release) ===
 
{| border="1" cellpadding="5" cellspacing="0" style="border: #80B3FF solid 1px; border-collapse: collapse; text-align: left; width: 100%;"
|-
|bgcolor="#EEEEEE"| '''Step 1'''
|bgcolor="#EEEEEE"| '''Start of the Release'''
|bgcolor="#EEEEEE"| '''Date:''' wk 0
|-
|colspan="3"|
* A release dude is appointed who will implement this schedule.
* It is decided which applications and libraries will be released.
* A [[#release_announcement|Release Announcement]] is made which is also published on the appropriate mailing lists.
|-
||'''Evaluation''' || || '''Date:''' wk 3
|-
|colspan="3"|
* It is evaluated whether the next step needs to be delayed.<br /> A [[#release_announcement|Release Announcement]] is made with the result of the evaluation.
|-
|bgcolor="#EEEEEE"| '''Step 2'''
|bgcolor="#EEEEEE"| '''Application Freeze'''
|bgcolor="#EEEEEE"| '''Date:''' wk 4
|-
|colspan="3"|
* [[#core_lib|Core libraries]] enter [[#deep_freeze|deep-freeze]] for the SVN branch to release.
* [[#core_app|Core applications]] are [[#feature_freeze|feature-frozen]] for the SVN branch to release.
* A [[#release_announcement|Release Announcement]] is made.
|-
||'''Evaluation''' || || '''Date:''' wk 6
|-
|colspan="3"|
* It is evaluated whether the next step needs to be delayed.<br />A [[#release_announcement|Release Announcement]] is made with the result of the evaluation.
|-
|bgcolor="#EEEEEE"| '''Step 3'''
|bgcolor="#EEEEEE"| '''Ready for translation'''
|bgcolor="#EEEEEE"| '''Date:''' wk 6
|-
|colspan="3"|
* [[#core_lib|Core libraries]] are [[#deep_freeze|deep-frozen]] for the SVN branch to release.
* [[#core_app|Core applications]] are [[#deep_freeze|deep-frozen]] for the SVN branch to release.
* Debugging messages are turned off by default.
* The code is checked for left over debug output.
* The SVN branch is created
* A source-only gamma-release is made which can be translated. Packagers can prepare themselves using the gamma-release.
* A [[#release_announcement|Release Announcement]] is made.
* A "What's changed?" should be written.
* A "Press Release" should be written.
|-
|bgcolor="#EEEEEE"| '''Step 4'''
|bgcolor="#EEEEEE"| '''Final Release'''
|bgcolor="#EEEEEE"| '''Date:''' wk 8
|-
|colspan="3"|This should happen during a weekend.
* All translations should be finished and have been put into SVN.
* The gamma-release is now the final-release. It should not have changed since the previous step. The release tags/ path is created in SVN.
* The tarballs of the release are made available to the packagers. (And the packagers only).
* The creation of the tarballs are announced to kde-pr and kde-distributors. (These lists are not world readable) The translators are informed as well.
* The FTP-mirror maintainers are informed about the upcoming release and the mirrors.html file is updated. (on both ftp and www)
|-
|bgcolor="#EEEEEE"| '''Step 5'''
|bgcolor="#EEEEEE"| '''Final Release'''
|bgcolor="#EEEEEE"| '''Date:''' wk 9
|-
|colspan="3"|This should happen on a Monday, one week after Step 4.
* kde-pr sends out the press release.
* kde-pr informs all KDE lists and updates the web-pages.
* Announcements to comp.os.linux.announce, comp.windows.x.kde, de.alt.comp.kde and possibly others are made.
* The binary and source packages are made world-wide available on the ftp-server.
* The release is complete.
* '''<font size="+2">PARTY!!!!</font>'''
|-
|}
 
== Terms ==
;<div id="major_rel">Major Release</div>
:A major KDE release has two version numbers, eg KDE 1.1. Only a major KDE release will incorporate new features.
 
;<div id="minor_rel">Minor Release</div>
:For minor releases a shortened release schedule will be used. A minor KDE release has three version numbers, eg. KDE 1.1.1. A minor KDE release concentrates on fixing bugs, minor glitches and small usability issues. A minor release is based on a SVN branch of a previous release and does not affect the trunk of SVN.
 
;<div id="release_announcement">Release Announcement</div>
:A Release Announcement is an announcement related to a release and coupled to a certain step or evaluation. A Release Announcement is sent to ALL KDE mailinglists. It contains a pointer to this document ("KDE Release Schedule") The anouncement includes the current state of the release and describes which parts of SVN are free to modify, feature-frozen or deep-frozen. Each announcement includes in a "What Next?" section what the next step of  the release will be and how many weeks/days are left till this step is reached. Release Announcements are repeated weekly, if the next step is within the next week, the announcement is repeated daily.
 
;<div id="no_freeze">Free to modify</div>
:No special restrictions with regard to changes.
 
;<div id="feature_freeze">Feature frozen</div>
:No new features, texts may be changed, focus should be on bug fixing.
 
;<div id="deep_freeze">Deep frozen</div>
:No new features, no changes of texts, only severe bugs may be fixed after two developers have seen a patch and agreed on it.
 
;<div id="core_lib">Core libraries</div>
:All the libraries which will be released.
 
;<div id="core_app">Core applications</div>
:All the applications which will be released.

Revision as of 10:55, 16 March 2016

This page is now on the community wiki. This page is now on the community wiki.