Calendar:HowToRelease: Difference between revisions

No edit summary
Line 1: Line 1:
= Release Process =  
= '''Release Process''' =  
== Overview ==
This is a short summery of steps required to do a release of Sunbird/Lightning. For simplicity, these steps are expected to be executed in the order mentioned here. Each step will have a more detaild section below.


NOTES:  
To prepare for a release:
* ${PRODUCT_TAG} is the header for the BRANCH - for sunbird 0.5 this was SUNBIRD_0_5, other releases should follow the same convention
* Create a branch in mozilla repository
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_5_BRANCH
* Create a branch in l10n repository
* Change Tinderboxes to build form that branch
* Change the Version Number
* Create localized version of Lightning (to be done in the build - see Bug 352546)
* Tag files on the branch to makr a RC if required
 
When the final RC gets approved:
* Tag files on the branch with a release tag
* Create Mac universal binaries (to be done in the build too?)
* Move stuff around on stage server
 
== Create a branch ==
NOTES:
* If you intend to see these changes, esp. the fixes, in any later release, keep in mind to also commit them to the regular development branch.
* ${PRODUCT_TAG} is the header for the BRANCH - for sunbird 0.7 this will de SUNBIRD_0_7, other releases should follow the same convention
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_BRANCH
* ${RC_TAG} is made by appending _RC to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RC
* ${RELEASE_TAG} is made by appending _RELEASE to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RELEASE
 
=== mozilla cvs repository ===
1. Create a branch from the branch you are releasing from. This creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH,
<pre>
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla
</pre>
2. Test that the branch was properly created by checking out from the branch.
<pre> cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar </pre>
 
=== l10n cvs repository ===
 
* Note that you will need L10N access to do this
<pre>
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n
</pre>
 
From now on, changes meant to apper in the release are done on this branch.
 
== Change Tinderboxes for Release ==
 
"tinderbox-config.pl" files have to be changed to let the tinderboxes pick up the release branch. Also the destination on the stage server needs to be changed.
 
NOTES:
* be sure to make these changes on the cvs branch the desired tinderbox picks up.
 
The following sample shows the changes done for linux when switching back from "release mode" to "nightly".
 
<pre>
Index: tinder-config.pl
===================================================================
RCS file: /cvsroot/mozilla/tools/tinderbox-configs/sunbird/linux/tinder-config.pl,v
retrieving revision 1.26.2.8
retrieving revision 1.26.2.9
diff -u -r1.26.2.8 -r1.26.2.9
--- tinder-config.pl    24 May 2007 16:56:07 -0000  1.26.2.8
+++ tinder-config.pl    28 Jun 2007 20:21:07 -0000  1.26.2.9
@@ -49,8 +49,8 @@
# Tests
$CleanProfile            = 1;
$ResetHomeDirForTests    = 1;
-$ProductName              = "Sunbird";
-#$ProductName              = 'Calendar';
+#$ProductName              = "Sunbird";
+$ProductName              = 'Calendar';
$VendorName              = 'Mozilla';
 
#$RunMozillaTests          = 1;  # Allow turning off of all tests if needed.
@@ -166,13 +166,8 @@
 
$LocalizationVersionFile = 'calendar/sunbird/config/version.txt';
 
-#%WGetFiles = (
-#        "http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz" =>
-#        "/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz"
-#        );
-
%WGetFiles = (
-        "http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/candidates/0.5rc1/sunbird-%version%.en-US.linux-i686.tar.gz" =>
+        "http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz" =>
          "/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz"
          );
 
@@ -190,8 +185,8 @@
$BuildTree  = 'Mozilla1.8-l10n';
 
#$BuildName = '';
-#$BuildTag = 'MOZILLA_1_8_BRANCH';
-$BuildTag = 'SUNBIRD_0_5_RELEASE';
+$BuildTag = 'MOZILLA_1_8_BRANCH';
+#$BuildTag = 'SUNBIRD_0_5_RELEASE';
#$BuildConfigDir = 'mozilla/config';
#$Topsrcdir = 'mozilla';
</pre>
 
== Change the Version Number ==
 
* You check out the branch you just created - use standard "check out code from mozilla cvs method", just substitute in the new branch for your branch parameter
* On this branch, you change the follwing:
    * calendar/sunbird/app/module.ver
    * calendar/sunbird/config/version.txt
* Then you:
<pre>cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\
mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt
</pre>
 
== Create localized version of Lightning ==
 
== Tag RC ==
At a specific point in time, when you feel it's right do
<pre>
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RC mozilla
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RC l10n
</pre>
 
of cause you can use something like "..._RCn" where "n" is the number of your release candidate.
 
== Tag Release ==
 
Probably the best way to do it is to add the release tag to an already existing RC tag. Make sure to use the latest RC tag...
 
Could look like this:
 
<pre>
cvs rtag -r ${PRODUCT_TAG}_RC ${PRODUCT_TAG}_RELEASE mozilla
cvs rtag -r ${PRODUCT_TAG}_RC ${PRODUCT_TAG}_RELEASE l10n
</pre>
 
== Create Mac universal binaries ==
 
== Move stuff around on stage server ==
 
 
------------------------------------------------------
= '''Release Process Old Page''' =
keeping as reference for now - probaly remove when reworking is done.
------------------------------------------------------


== Create a branch ==  
== Create a branch ==  
11

edits