<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.mozilla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ause</id>
	<title>MozillaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mozilla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ause"/>
	<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/Special:Contributions/Ause"/>
	<updated>2026-04-04T05:08:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=86942</id>
		<title>Calendar:HowToRelease</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=86942"/>
		<updated>2008-03-17T17:04:24Z</updated>

		<summary type="html">&lt;p&gt;Ause: /* &amp;#039;&amp;#039;&amp;#039;Release Process&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Release Process&#039;&#039;&#039; = &lt;br /&gt;
== Overview ==&lt;br /&gt;
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 detailed section below.&lt;br /&gt;
&lt;br /&gt;
To prepare for a release:&lt;br /&gt;
* Create a branch in mozilla repository&lt;br /&gt;
* Create a branch in l10n repository&lt;br /&gt;
* Change Tinderboxes to build form that branch&lt;br /&gt;
* Change the Version Number&lt;br /&gt;
* Create localized version of Lightning (to be done in the build - see [https://bugzilla.mozilla.org/show_bug.cgi?id=352546 Bug 352546])&lt;br /&gt;
* Tag files on the branch to make a RC if required&lt;br /&gt;
&lt;br /&gt;
When the final RC gets approved:&lt;br /&gt;
* Tag files on the branch with a release tag&lt;br /&gt;
* Create Mac universal binaries (to be done in the build too?)&lt;br /&gt;
* Move stuff around on stage server&lt;br /&gt;
&lt;br /&gt;
== Create a branch ==&lt;br /&gt;
NOTES:&lt;br /&gt;
* ${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&lt;br /&gt;
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_BRANCH&lt;br /&gt;
* ${RC_TAG} is made by appending _RC to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RC&lt;br /&gt;
* ${RELEASE_TAG} is made by appending _RELEASE to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RELEASE&lt;br /&gt;
* If you intend to see changes made for this release, esp. the fixes, in any later release, keep in mind to also commit them to the regular development branch, e.g.&lt;br /&gt;
 tools/cross-commit --trunk --moz18 --branch=${PRODUCT_TAG}_BRANCH ...&lt;br /&gt;
&lt;br /&gt;
=== mozilla cvs repository ===&lt;br /&gt;
1. Create a branch from the branch you are releasing from. This creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs co -r MOZILLA_1_8_BRANCH mozilla/client.mk&lt;br /&gt;
&lt;br /&gt;
make -f mozilla/client.mk checkout MOZ_CO_PROJECT=&amp;quot;mail,calendar&amp;quot; MOZ_CO_MODULE=&amp;quot;mozilla/tools/update-packaging&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cd mozilla&lt;br /&gt;
&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTE:&lt;br /&gt;
* Tagging the tree created with &amp;quot;make checkout&amp;quot; just creates a branch on those files required. This to prefer to polluting all files with rtag if possible&lt;br /&gt;
&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== l10n cvs repository ===&lt;br /&gt;
&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT_L10N} rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on, changes meant to apper in the release are done on this branch.&lt;br /&gt;
&lt;br /&gt;
== Change Tinderboxes for Release ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;tinderbox-config.pl&amp;quot; and the according &amp;quot;mozconfig&amp;quot; files have to be changed to let the tinderboxes pick up the release branch and do &amp;quot;release builds&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* be sure to make these changes on the cvs branch the desired tinderbox picks up. These are MOZILLA_1_8_BRANCH for regular tinderboxes and MOZILLA_1_8_BRANCH_l10n for the l10n tinderboxes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following sample shows the changes done for linux when switching back from &amp;quot;release mode&amp;quot; to &amp;quot;nightly&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
TODO: place the changes done for 0.7 here&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: tinder-config.pl&lt;br /&gt;
===================================================================&lt;br /&gt;
RCS file: /cvsroot/mozilla/tools/tinderbox-configs/sunbird/linux/tinder-config.pl,v&lt;br /&gt;
retrieving revision 1.26.2.8&lt;br /&gt;
retrieving revision 1.26.2.9&lt;br /&gt;
diff -u -r1.26.2.8 -r1.26.2.9&lt;br /&gt;
--- tinder-config.pl    24 May 2007 16:56:07 -0000  1.26.2.8&lt;br /&gt;
+++ tinder-config.pl    28 Jun 2007 20:21:07 -0000  1.26.2.9&lt;br /&gt;
@@ -49,8 +49,8 @@&lt;br /&gt;
 # Tests&lt;br /&gt;
 $CleanProfile             = 1;&lt;br /&gt;
 $ResetHomeDirForTests     = 1;&lt;br /&gt;
-$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
-#$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
+#$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
+$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
 $VendorName               = &#039;Mozilla&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$RunMozillaTests          = 1;  # Allow turning off of all tests if needed.&lt;br /&gt;
@@ -166,13 +166,8 @@&lt;br /&gt;
&lt;br /&gt;
 $LocalizationVersionFile = &#039;calendar/sunbird/config/version.txt&#039;;&lt;br /&gt;
&lt;br /&gt;
-#%WGetFiles = (&lt;br /&gt;
-#        &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
-#        &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
-#        );&lt;br /&gt;
-&lt;br /&gt;
 %WGetFiles = (&lt;br /&gt;
-         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/candidates/0.5rc1/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
+         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
          &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
          );&lt;br /&gt;
&lt;br /&gt;
@@ -190,8 +185,8 @@&lt;br /&gt;
 $BuildTree  = &#039;Mozilla1.8-l10n&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$BuildName = &#039;&#039;;&lt;br /&gt;
-#$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
-$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
+$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
+#$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
 #$BuildConfigDir = &#039;mozilla/config&#039;;&lt;br /&gt;
 #$Topsrcdir = &#039;mozilla&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* All this doesn&#039;t help too much without changing mozilla/client.mk on the according brach, e.g. :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- client.mk	27 Jun 2007 18:17:42 -0000	1.245.2.38&lt;br /&gt;
+++ client.mk	27 Sep 2007 10:34:18 -0000&lt;br /&gt;
@@ -252,21 +252,21 @@ MODULES_all :=                          &lt;br /&gt;
   mozilla/other-licenses/7zstub                 \&lt;br /&gt;
   $(NULL)&lt;br /&gt;
 &lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # Checkout Tags&lt;br /&gt;
 #&lt;br /&gt;
 # For branches, uncomment the MOZ_CO_TAG line with the proper tag,&lt;br /&gt;
 # and commit this file on that tag.&lt;br /&gt;
-MOZ_CO_TAG           = MOZILLA_1_8_BRANCH&lt;br /&gt;
+MOZ_CO_TAG           = SUNBIRD_0_7_BRANCH&lt;br /&gt;
 NSPR_CO_TAG          = NSPR_4_6_7_RTM&lt;br /&gt;
 NSS_CO_TAG           = NSS_3_11_5_WITH_CKBI_1_64_RTM&lt;br /&gt;
-LDAPCSDK_CO_TAG      = MOZILLA_1_8_BRANCH&lt;br /&gt;
-LOCALES_CO_TAG       = MOZILLA_1_8_BRANCH&lt;br /&gt;
+LDAPCSDK_CO_TAG      = SUNBIRD_0_7_BRANCH&lt;br /&gt;
+LOCALES_CO_TAG       = SUNBIRD_0_7_BRANCH&lt;br /&gt;
 &lt;br /&gt;
 BUILD_MODULES = all&lt;br /&gt;
 &lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # Defines&lt;br /&gt;
 #&lt;br /&gt;
 CVS = cvs&lt;br /&gt;
 comma := ,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tag RC ==&lt;br /&gt;
At a specific point in time, when you feel it&#039;s right do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RCn mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RCn l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
of cause you can use something like &amp;quot;..._RCn&amp;quot; where &amp;quot;n&amp;quot; is the number of your release candidate.&lt;br /&gt;
&lt;br /&gt;
== Create Mac universal binaries ==&lt;br /&gt;
&lt;br /&gt;
Mac universal binaries are now created by the tinderbox.&lt;br /&gt;
&lt;br /&gt;
== Pushing builds to the release tree ==&lt;br /&gt;
=== Adding links to bouncer ===&lt;br /&gt;
Make sure all files you&#039;re pushing to the release tree have their according bouncer link set up. More about this can be found here: [https://bugzilla.mozilla.org/show_bug.cgi?id=421555 add bouncer links for 0.8]&lt;br /&gt;
&lt;br /&gt;
=== Sunbird ===&lt;br /&gt;
For the 0.7 release the required files were copied from the nightly directories and collected in a 0.7-candidates directory still in the nightly tree (flat structure, no renaming). Once all desired languages and platforms are there, a script exists to deliver them into the expected structure (platform/language) in the release tree and do the renaming.&lt;br /&gt;
&lt;br /&gt;
TODO: provide de-personalized version of this script&lt;br /&gt;
&lt;br /&gt;
TODO: provide usage example&lt;br /&gt;
&lt;br /&gt;
TODO: make this script fix access rights and cretate MD5SUM files&lt;br /&gt;
&lt;br /&gt;
TODO: rewrite script as new stage server doesn&#039;t allow local execution&lt;br /&gt;
&lt;br /&gt;
=== Lightning ===&lt;br /&gt;
&lt;br /&gt;
Lightning builds now create localized .xpi&lt;br /&gt;
&lt;br /&gt;
== Providing updates for Sunbird ==&lt;br /&gt;
With the changes to the tinderboxe configuration (TODO: link to tb changes) also creation of update files (*.mar) gets enabled. While the complete updates are provided and uploaded by the tinderboxes, creating partial updates requires some manual work (see [[Software_Update:GeneratingSnippetsAndPartialsForReleases#Creating_updates |patcher2]]).&lt;br /&gt;
&lt;br /&gt;
TODO: insert patcher2 config for sunbird&lt;br /&gt;
&lt;br /&gt;
NOTE:&lt;br /&gt;
These update files can be tested manually as described in [[Software_Update:GeneratingSnippetsAndPartialsForReleases#How_Firefox.2FThunderbird_updates_are_tested]] .&lt;br /&gt;
Once the partial .mar are created and uploaded to the stage server, the according update information (snippets) need to be pushed to the AUS server.&lt;br /&gt;
&lt;br /&gt;
helpfull links:&lt;br /&gt;
* [[Software_Update:GeneratingSnippetsAndPartialsForReleases| patcher2]]&lt;br /&gt;
* [[AUS|AUS overview]]&lt;br /&gt;
* [[Software_Update:Nightly_update_infrastructure|updates for nightlies]]&lt;br /&gt;
&lt;br /&gt;
== More things not covered here yet ==&lt;br /&gt;
* [http://wiki.mozilla.org/index.php?title=Calendar:Sunbird_Updates auto update] and the according {{bug|381420}}&lt;br /&gt;
* [http://wiki.mozilla.org/Build:CommunitySelfHelp talkback changes] required for a version change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Release Process Old Page&#039;&#039;&#039; = &lt;br /&gt;
keeping as reference for now - probaly remove when reworking is done.&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
== Create a branch == &lt;br /&gt;
1. Create a branch from the branch you are releasing from this creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH, you also need to note the time this was done on a page like [[Calendar:Release:Sunbird_0.5]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
Note time this is done: May 22, 21:37 CDT&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create a minibranch==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs ci -m&amp;quot;bumping version number on calendar/sunbird on minibranch only&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* remove firefox stuff from calendar/lightning/install.rdf&lt;br /&gt;
&lt;br /&gt;
== Tag the release ==&lt;br /&gt;
* run &amp;quot;date&amp;quot; before you start and use this as date stamp.&lt;br /&gt;
* the date should be in UTC and have this format: &amp;quot;yyyy-mm-dd hh:mm +0000&amp;quot;&lt;br /&gt;
* You need to use an RC here in case we have RC builds that way RCs will move forward to the release (you can have multiple RC&#039;s but there is only one release) so ${RC} becomes 1 for the first attempt to release 0.5&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
screen&lt;br /&gt;
cd .. (one up from mozilla)&lt;br /&gt;
mkdir -p tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
cd tags &amp;amp;&amp;amp; ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE &amp;amp;&amp;amp; \&lt;br /&gt;
  ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, check out mozilla/client.mk and any &amp;lt;something&amp;gt;/config/mozconfig files you need with statements like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
  cvs co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  mozilla/client.mk&lt;br /&gt;
  becomes: cvs co -r ${PRODUCT_TAG}_BRANCH -D &amp;quot;2007-05-23 04:00 +0000&amp;quot; mozilla/client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, you follow these steps:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pull version files from the version bump minibranch&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH ${APP}/app/module.ver \&lt;br /&gt;
 ${APP}/config/version.txt config/milestone.txt&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Create the RC tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RC${RC} 2&amp;gt;&amp;amp;1 | tee ../${BRANCH_TAG}_RC${RC}.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RC${RC}.log&lt;br /&gt;
&lt;br /&gt;
# Create a minibranch for the pull scripts so we can change them without&lt;br /&gt;
# changing anything on the original branch.&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Update client.mk to the minibranch you just created.&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Add the new product tag to the client.mk - need to replace the current branch ID&lt;br /&gt;
sed &amp;quot;s/${MOZILLA_1_8_BRANCH}/${PRODUCT_TAG}_RELEASE/g&amp;quot; client.mk &amp;gt; client.mk.tmp&lt;br /&gt;
mv client.mk.tmp client.mk&lt;br /&gt;
&lt;br /&gt;
# Verify that client.mk only has the changes you expect&lt;br /&gt;
cvs diff -u client.mk&lt;br /&gt;
# Verify that client.mk has its sticky tag set properly.&lt;br /&gt;
cvs status client.mk&lt;br /&gt;
cvs commit -m &amp;quot;For $PRODUCT $VERSION, redirect client.mk onto the ${PRODUCT_TAG}_RELEASE tag.&amp;quot; client.mk&lt;br /&gt;
&lt;br /&gt;
# Move the release tag onto the modified version of the pull scripts.&lt;br /&gt;
# Note that you may have to wait to gain a lock, that is normal.&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RELEASE client.mk&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RC${RC} client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag Talkback===&lt;br /&gt;
* &#039;&#039;&#039;NOTE:&#039;&#039;&#039; to do this, you need access to talkback, currently only lilmatt has that access on our team.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the mofo tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
mkdir mofo/&lt;br /&gt;
cd mofo/&lt;br /&gt;
&lt;br /&gt;
# Branch Talkback like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/mofo rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mofo&lt;br /&gt;
&lt;br /&gt;
# Check out the talkback files from the branch you want to tag.&lt;br /&gt;
cvs -d :ext:cltbld@cvs.mozilla.org:/mofo co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  talkback/fullsoft 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cd talkback/fullsoft/&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag L10N ===&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the l10n tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RELEASE&lt;br /&gt;
mkdir l10n/&lt;br /&gt;
cd l10n/&lt;br /&gt;
&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&lt;br /&gt;
# Grab list of shipped locales&lt;br /&gt;
LOCALES=`awk &#039;{print $1}&#039; &amp;lt; ../cvsroot/mozilla/calendar/locales/shipped-locales`&lt;br /&gt;
&lt;br /&gt;
# Check out the l10n files from the branch you want to tag.&lt;br /&gt;
(for l in $LOCALES&lt;br /&gt;
do&lt;br /&gt;
  cvs -d ${CVSROOT}/l10n co \&lt;br /&gt;
    -r $BRANCH_TAG \&lt;br /&gt;
    -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
    l10n/${l}&lt;br /&gt;
done) 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
cd l10n/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use lilmatt&#039;s magic L10N script to compile Lightning into Locales.  You can find the script in {{bug|352546}}.  We will check it into the main tree somewhere (suggested name: m/c/lilmattsmagicbuildtricks).  You need to update the .dtd and .properties filenames for the current release.&lt;br /&gt;
&lt;br /&gt;
==Push tag forward on updated l10n files==&lt;br /&gt;
In the &amp;lt;code&amp;gt;l10n&amp;lt;/code&amp;gt; directory where you originally tagged l10n...&lt;br /&gt;
 cvs up -r SUNBIRD_0_5_BRANCH&lt;br /&gt;
 cvs tag -F SUNBIRD_0_5_RELEASE&lt;/div&gt;</summary>
		<author><name>Ause</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=85453</id>
		<title>Calendar:HowToRelease</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=85453"/>
		<updated>2008-03-05T07:45:18Z</updated>

		<summary type="html">&lt;p&gt;Ause: /* Change Tinderboxes for Release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Release Process&#039;&#039;&#039; = &lt;br /&gt;
== Overview ==&lt;br /&gt;
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 detailed section below.&lt;br /&gt;
&lt;br /&gt;
To prepare for a release:&lt;br /&gt;
* Create a branch in mozilla repository&lt;br /&gt;
* Create a branch in l10n repository&lt;br /&gt;
* Change Tinderboxes to build form that branch&lt;br /&gt;
* Change the Version Number&lt;br /&gt;
* Create localized version of Lightning (to be done in the build - see [https://bugzilla.mozilla.org/show_bug.cgi?id=352546 Bug 352546])&lt;br /&gt;
* Tag files on the branch to make a RC if required&lt;br /&gt;
&lt;br /&gt;
When the final RC gets approved:&lt;br /&gt;
* Tag files on the branch with a release tag&lt;br /&gt;
* Create Mac universal binaries (to be done in the build too?)&lt;br /&gt;
* Move stuff around on stage server&lt;br /&gt;
&lt;br /&gt;
== Create a branch ==&lt;br /&gt;
NOTES:&lt;br /&gt;
* ${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&lt;br /&gt;
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_BRANCH&lt;br /&gt;
* ${RC_TAG} is made by appending _RC to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RC&lt;br /&gt;
* ${RELEASE_TAG} is made by appending _RELEASE to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RELEASE&lt;br /&gt;
* If you intend to see changes made for this release, esp. the fixes, in any later release, keep in mind to also commit them to the regular development branch, e.g.&lt;br /&gt;
 tools/cross-commit --trunk --moz18 --branch=${PRODUCT_TAG}_BRANCH ...&lt;br /&gt;
&lt;br /&gt;
=== mozilla cvs repository ===&lt;br /&gt;
1. Create a branch from the branch you are releasing from. This creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs co -r MOZILLA_1_8_BRANCH mozilla/client.mk&lt;br /&gt;
&lt;br /&gt;
make -f mozilla/client.mk checkout MOZ_CO_PROJECT=&amp;quot;mail,calendar&amp;quot; MOZ_CO_MODULE=&amp;quot;mozilla/tools/update-packaging&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cd mozilla&lt;br /&gt;
&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTE:&lt;br /&gt;
* Tagging the tree created with &amp;quot;make checkout&amp;quot; just creates a branch on those files required. This to prefer to polluting all files with rtag if possible&lt;br /&gt;
&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== l10n cvs repository ===&lt;br /&gt;
&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT_L10N} rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on, changes meant to apper in the release are done on this branch.&lt;br /&gt;
&lt;br /&gt;
== Change Tinderboxes for Release ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;tinderbox-config.pl&amp;quot; and the according &amp;quot;mozconfig&amp;quot; files have to be changed to let the tinderboxes pick up the release branch and do &amp;quot;release builds&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* be sure to make these changes on the cvs branch the desired tinderbox picks up. These are MOZILLA_1_8_BRANCH for regular tinderboxes and MOZILLA_1_8_BRANCH_l10n for the l10n tinderboxes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following sample shows the changes done for linux when switching back from &amp;quot;release mode&amp;quot; to &amp;quot;nightly&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
TODO: place the changes done for 0.7 here&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: tinder-config.pl&lt;br /&gt;
===================================================================&lt;br /&gt;
RCS file: /cvsroot/mozilla/tools/tinderbox-configs/sunbird/linux/tinder-config.pl,v&lt;br /&gt;
retrieving revision 1.26.2.8&lt;br /&gt;
retrieving revision 1.26.2.9&lt;br /&gt;
diff -u -r1.26.2.8 -r1.26.2.9&lt;br /&gt;
--- tinder-config.pl    24 May 2007 16:56:07 -0000  1.26.2.8&lt;br /&gt;
+++ tinder-config.pl    28 Jun 2007 20:21:07 -0000  1.26.2.9&lt;br /&gt;
@@ -49,8 +49,8 @@&lt;br /&gt;
 # Tests&lt;br /&gt;
 $CleanProfile             = 1;&lt;br /&gt;
 $ResetHomeDirForTests     = 1;&lt;br /&gt;
-$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
-#$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
+#$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
+$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
 $VendorName               = &#039;Mozilla&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$RunMozillaTests          = 1;  # Allow turning off of all tests if needed.&lt;br /&gt;
@@ -166,13 +166,8 @@&lt;br /&gt;
&lt;br /&gt;
 $LocalizationVersionFile = &#039;calendar/sunbird/config/version.txt&#039;;&lt;br /&gt;
&lt;br /&gt;
-#%WGetFiles = (&lt;br /&gt;
-#        &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
-#        &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
-#        );&lt;br /&gt;
-&lt;br /&gt;
 %WGetFiles = (&lt;br /&gt;
-         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/candidates/0.5rc1/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
+         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
          &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
          );&lt;br /&gt;
&lt;br /&gt;
@@ -190,8 +185,8 @@&lt;br /&gt;
 $BuildTree  = &#039;Mozilla1.8-l10n&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$BuildName = &#039;&#039;;&lt;br /&gt;
-#$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
-$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
+$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
+#$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
 #$BuildConfigDir = &#039;mozilla/config&#039;;&lt;br /&gt;
 #$Topsrcdir = &#039;mozilla&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* All this doesn&#039;t help too much without changing mozilla/client.mk on the according brach, e.g. :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- client.mk	27 Jun 2007 18:17:42 -0000	1.245.2.38&lt;br /&gt;
+++ client.mk	27 Sep 2007 10:34:18 -0000&lt;br /&gt;
@@ -252,21 +252,21 @@ MODULES_all :=                          &lt;br /&gt;
   mozilla/other-licenses/7zstub                 \&lt;br /&gt;
   $(NULL)&lt;br /&gt;
 &lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # Checkout Tags&lt;br /&gt;
 #&lt;br /&gt;
 # For branches, uncomment the MOZ_CO_TAG line with the proper tag,&lt;br /&gt;
 # and commit this file on that tag.&lt;br /&gt;
-MOZ_CO_TAG           = MOZILLA_1_8_BRANCH&lt;br /&gt;
+MOZ_CO_TAG           = SUNBIRD_0_7_BRANCH&lt;br /&gt;
 NSPR_CO_TAG          = NSPR_4_6_7_RTM&lt;br /&gt;
 NSS_CO_TAG           = NSS_3_11_5_WITH_CKBI_1_64_RTM&lt;br /&gt;
-LDAPCSDK_CO_TAG      = MOZILLA_1_8_BRANCH&lt;br /&gt;
-LOCALES_CO_TAG       = MOZILLA_1_8_BRANCH&lt;br /&gt;
+LDAPCSDK_CO_TAG      = SUNBIRD_0_7_BRANCH&lt;br /&gt;
+LOCALES_CO_TAG       = SUNBIRD_0_7_BRANCH&lt;br /&gt;
 &lt;br /&gt;
 BUILD_MODULES = all&lt;br /&gt;
 &lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # Defines&lt;br /&gt;
 #&lt;br /&gt;
 CVS = cvs&lt;br /&gt;
 comma := ,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tag RC ==&lt;br /&gt;
At a specific point in time, when you feel it&#039;s right do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RCn mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RCn l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
of cause you can use something like &amp;quot;..._RCn&amp;quot; where &amp;quot;n&amp;quot; is the number of your release candidate.&lt;br /&gt;
&lt;br /&gt;
== Create Mac universal binaries ==&lt;br /&gt;
&lt;br /&gt;
Mac universal binaries are now created by the tinderbox.&lt;br /&gt;
&lt;br /&gt;
== Pushing builds to the release tree ==&lt;br /&gt;
=== Sunbird ===&lt;br /&gt;
For the 0.7 release the required files were copied from the nightly directories and collected in a 0.7-candidates directory still in the nightly tree (flat structure, no renaming). Once all desired languages and platforms are there, a script exists to deliver them into the expected structure (platform/language) in the release tree and do the renaming.&lt;br /&gt;
&lt;br /&gt;
TODO: provide de-personalized version of this script&lt;br /&gt;
&lt;br /&gt;
TODO: provide usage example&lt;br /&gt;
&lt;br /&gt;
TODO: make this script fix access rights and cretate MD5SUM files&lt;br /&gt;
&lt;br /&gt;
=== Lightning ===&lt;br /&gt;
&lt;br /&gt;
Lightning builds now create localized .xpi&lt;br /&gt;
&lt;br /&gt;
== Providing updates for Sunbird ==&lt;br /&gt;
With the changes to the tinderboxe configuration (TODO: link to tb changes) also creation of update files (*.mar) gets enabled. While the complete updates are provided and uploaded by the tinderboxes, creating partial updates requires some manual work (see [[Software_Update:GeneratingSnippetsAndPartialsForReleases#Creating_updates |patcher2]]).&lt;br /&gt;
&lt;br /&gt;
TODO: insert patcher2 config for sunbird&lt;br /&gt;
&lt;br /&gt;
NOTE:&lt;br /&gt;
These update files can be tested manually as described in [[Software_Update:GeneratingSnippetsAndPartialsForReleases#How_Firefox.2FThunderbird_updates_are_tested]] .&lt;br /&gt;
Once the partial .mar are created and uploaded to the stage server, the according update information (snippets) need to be pushed to the AUS server.&lt;br /&gt;
&lt;br /&gt;
helpfull links:&lt;br /&gt;
* [[Software_Update:GeneratingSnippetsAndPartialsForReleases| patcher2]]&lt;br /&gt;
* [[AUS|AUS overview]]&lt;br /&gt;
* [[Software_Update:Nightly_update_infrastructure|updates for nightlies]]&lt;br /&gt;
&lt;br /&gt;
== More things not covered here yet ==&lt;br /&gt;
* [http://wiki.mozilla.org/index.php?title=Calendar:Sunbird_Updates auto update] and the according {{bug|381420}}&lt;br /&gt;
* [http://wiki.mozilla.org/Build:CommunitySelfHelp talkback changes] required for a version change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Release Process Old Page&#039;&#039;&#039; = &lt;br /&gt;
keeping as reference for now - probaly remove when reworking is done.&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
== Create a branch == &lt;br /&gt;
1. Create a branch from the branch you are releasing from this creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH, you also need to note the time this was done on a page like [[Calendar:Release:Sunbird_0.5]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
Note time this is done: May 22, 21:37 CDT&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create a minibranch==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs ci -m&amp;quot;bumping version number on calendar/sunbird on minibranch only&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* remove firefox stuff from calendar/lightning/install.rdf&lt;br /&gt;
&lt;br /&gt;
== Tag the release ==&lt;br /&gt;
* run &amp;quot;date&amp;quot; before you start and use this as date stamp.&lt;br /&gt;
* the date should be in UTC and have this format: &amp;quot;yyyy-mm-dd hh:mm +0000&amp;quot;&lt;br /&gt;
* You need to use an RC here in case we have RC builds that way RCs will move forward to the release (you can have multiple RC&#039;s but there is only one release) so ${RC} becomes 1 for the first attempt to release 0.5&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
screen&lt;br /&gt;
cd .. (one up from mozilla)&lt;br /&gt;
mkdir -p tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
cd tags &amp;amp;&amp;amp; ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE &amp;amp;&amp;amp; \&lt;br /&gt;
  ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, check out mozilla/client.mk and any &amp;lt;something&amp;gt;/config/mozconfig files you need with statements like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
  cvs co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  mozilla/client.mk&lt;br /&gt;
  becomes: cvs co -r ${PRODUCT_TAG}_BRANCH -D &amp;quot;2007-05-23 04:00 +0000&amp;quot; mozilla/client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, you follow these steps:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pull version files from the version bump minibranch&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH ${APP}/app/module.ver \&lt;br /&gt;
 ${APP}/config/version.txt config/milestone.txt&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Create the RC tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RC${RC} 2&amp;gt;&amp;amp;1 | tee ../${BRANCH_TAG}_RC${RC}.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RC${RC}.log&lt;br /&gt;
&lt;br /&gt;
# Create a minibranch for the pull scripts so we can change them without&lt;br /&gt;
# changing anything on the original branch.&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Update client.mk to the minibranch you just created.&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Add the new product tag to the client.mk - need to replace the current branch ID&lt;br /&gt;
sed &amp;quot;s/${MOZILLA_1_8_BRANCH}/${PRODUCT_TAG}_RELEASE/g&amp;quot; client.mk &amp;gt; client.mk.tmp&lt;br /&gt;
mv client.mk.tmp client.mk&lt;br /&gt;
&lt;br /&gt;
# Verify that client.mk only has the changes you expect&lt;br /&gt;
cvs diff -u client.mk&lt;br /&gt;
# Verify that client.mk has its sticky tag set properly.&lt;br /&gt;
cvs status client.mk&lt;br /&gt;
cvs commit -m &amp;quot;For $PRODUCT $VERSION, redirect client.mk onto the ${PRODUCT_TAG}_RELEASE tag.&amp;quot; client.mk&lt;br /&gt;
&lt;br /&gt;
# Move the release tag onto the modified version of the pull scripts.&lt;br /&gt;
# Note that you may have to wait to gain a lock, that is normal.&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RELEASE client.mk&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RC${RC} client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag Talkback===&lt;br /&gt;
* &#039;&#039;&#039;NOTE:&#039;&#039;&#039; to do this, you need access to talkback, currently only lilmatt has that access on our team.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the mofo tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
mkdir mofo/&lt;br /&gt;
cd mofo/&lt;br /&gt;
&lt;br /&gt;
# Branch Talkback like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/mofo rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mofo&lt;br /&gt;
&lt;br /&gt;
# Check out the talkback files from the branch you want to tag.&lt;br /&gt;
cvs -d :ext:cltbld@cvs.mozilla.org:/mofo co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  talkback/fullsoft 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cd talkback/fullsoft/&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag L10N ===&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the l10n tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RELEASE&lt;br /&gt;
mkdir l10n/&lt;br /&gt;
cd l10n/&lt;br /&gt;
&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&lt;br /&gt;
# Grab list of shipped locales&lt;br /&gt;
LOCALES=`awk &#039;{print $1}&#039; &amp;lt; ../cvsroot/mozilla/calendar/locales/shipped-locales`&lt;br /&gt;
&lt;br /&gt;
# Check out the l10n files from the branch you want to tag.&lt;br /&gt;
(for l in $LOCALES&lt;br /&gt;
do&lt;br /&gt;
  cvs -d ${CVSROOT}/l10n co \&lt;br /&gt;
    -r $BRANCH_TAG \&lt;br /&gt;
    -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
    l10n/${l}&lt;br /&gt;
done) 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
cd l10n/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use lilmatt&#039;s magic L10N script to compile Lightning into Locales.  You can find the script in {{bug|352546}}.  We will check it into the main tree somewhere (suggested name: m/c/lilmattsmagicbuildtricks).  You need to update the .dtd and .properties filenames for the current release.&lt;br /&gt;
&lt;br /&gt;
==Push tag forward on updated l10n files==&lt;br /&gt;
In the &amp;lt;code&amp;gt;l10n&amp;lt;/code&amp;gt; directory where you originally tagged l10n...&lt;br /&gt;
 cvs up -r SUNBIRD_0_5_BRANCH&lt;br /&gt;
 cvs tag -F SUNBIRD_0_5_RELEASE&lt;/div&gt;</summary>
		<author><name>Ause</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=85307</id>
		<title>Calendar:HowToRelease</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=85307"/>
		<updated>2008-03-04T12:19:00Z</updated>

		<summary type="html">&lt;p&gt;Ause: /* &amp;#039;&amp;#039;&amp;#039;Release Process&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Release Process&#039;&#039;&#039; = &lt;br /&gt;
== Overview ==&lt;br /&gt;
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 detailed section below.&lt;br /&gt;
&lt;br /&gt;
To prepare for a release:&lt;br /&gt;
* Create a branch in mozilla repository&lt;br /&gt;
* Create a branch in l10n repository&lt;br /&gt;
* Change Tinderboxes to build form that branch&lt;br /&gt;
* Change the Version Number&lt;br /&gt;
* Create localized version of Lightning (to be done in the build - see [https://bugzilla.mozilla.org/show_bug.cgi?id=352546 Bug 352546])&lt;br /&gt;
* Tag files on the branch to make a RC if required&lt;br /&gt;
&lt;br /&gt;
When the final RC gets approved:&lt;br /&gt;
* Tag files on the branch with a release tag&lt;br /&gt;
* Create Mac universal binaries (to be done in the build too?)&lt;br /&gt;
* Move stuff around on stage server&lt;br /&gt;
&lt;br /&gt;
== Create a branch ==&lt;br /&gt;
NOTES:&lt;br /&gt;
* ${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&lt;br /&gt;
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_BRANCH&lt;br /&gt;
* ${RC_TAG} is made by appending _RC to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RC&lt;br /&gt;
* ${RELEASE_TAG} is made by appending _RELEASE to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RELEASE&lt;br /&gt;
* If you intend to see changes made for this release, esp. the fixes, in any later release, keep in mind to also commit them to the regular development branch, e.g.&lt;br /&gt;
 tools/cross-commit --trunk --moz18 --branch=${PRODUCT_TAG}_BRANCH ...&lt;br /&gt;
&lt;br /&gt;
=== mozilla cvs repository ===&lt;br /&gt;
1. Create a branch from the branch you are releasing from. This creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs co -r MOZILLA_1_8_BRANCH mozilla/client.mk&lt;br /&gt;
&lt;br /&gt;
make -f mozilla/client.mk checkout MOZ_CO_PROJECT=&amp;quot;mail,calendar&amp;quot; MOZ_CO_MODULE=&amp;quot;mozilla/tools/update-packaging&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cd mozilla&lt;br /&gt;
&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTE:&lt;br /&gt;
* Tagging the tree created with &amp;quot;make checkout&amp;quot; just creates a branch on those files required. This to prefer to polluting all files with rtag if possible&lt;br /&gt;
&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== l10n cvs repository ===&lt;br /&gt;
&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT_L10N} rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on, changes meant to apper in the release are done on this branch.&lt;br /&gt;
&lt;br /&gt;
== Change Tinderboxes for Release ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;tinderbox-config.pl&amp;quot; and the according &amp;quot;mozconfig&amp;quot; files have to be changed to let the tinderboxes pick up the release branch and do &amp;quot;release builds&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* be sure to make these changes on the cvs branch the desired tinderbox picks up. These are MOZILLA_1_8_BRANCH for regular tinderboxes and MOZILLA_1_8_BRANCH_l10n for the l10n tinderboxes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following sample shows the changes done for linux when switching back from &amp;quot;release mode&amp;quot; to &amp;quot;nightly&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
TODO: place the changes done for 0.7 here&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: tinder-config.pl&lt;br /&gt;
===================================================================&lt;br /&gt;
RCS file: /cvsroot/mozilla/tools/tinderbox-configs/sunbird/linux/tinder-config.pl,v&lt;br /&gt;
retrieving revision 1.26.2.8&lt;br /&gt;
retrieving revision 1.26.2.9&lt;br /&gt;
diff -u -r1.26.2.8 -r1.26.2.9&lt;br /&gt;
--- tinder-config.pl    24 May 2007 16:56:07 -0000  1.26.2.8&lt;br /&gt;
+++ tinder-config.pl    28 Jun 2007 20:21:07 -0000  1.26.2.9&lt;br /&gt;
@@ -49,8 +49,8 @@&lt;br /&gt;
 # Tests&lt;br /&gt;
 $CleanProfile             = 1;&lt;br /&gt;
 $ResetHomeDirForTests     = 1;&lt;br /&gt;
-$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
-#$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
+#$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
+$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
 $VendorName               = &#039;Mozilla&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$RunMozillaTests          = 1;  # Allow turning off of all tests if needed.&lt;br /&gt;
@@ -166,13 +166,8 @@&lt;br /&gt;
&lt;br /&gt;
 $LocalizationVersionFile = &#039;calendar/sunbird/config/version.txt&#039;;&lt;br /&gt;
&lt;br /&gt;
-#%WGetFiles = (&lt;br /&gt;
-#        &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
-#        &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
-#        );&lt;br /&gt;
-&lt;br /&gt;
 %WGetFiles = (&lt;br /&gt;
-         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/candidates/0.5rc1/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
+         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
          &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
          );&lt;br /&gt;
&lt;br /&gt;
@@ -190,8 +185,8 @@&lt;br /&gt;
 $BuildTree  = &#039;Mozilla1.8-l10n&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$BuildName = &#039;&#039;;&lt;br /&gt;
-#$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
-$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
+$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
+#$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
 #$BuildConfigDir = &#039;mozilla/config&#039;;&lt;br /&gt;
 #$Topsrcdir = &#039;mozilla&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tag RC ==&lt;br /&gt;
At a specific point in time, when you feel it&#039;s right do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RCn mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RCn l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
of cause you can use something like &amp;quot;..._RCn&amp;quot; where &amp;quot;n&amp;quot; is the number of your release candidate.&lt;br /&gt;
&lt;br /&gt;
== Create Mac universal binaries ==&lt;br /&gt;
&lt;br /&gt;
Mac universal binaries are now created by the tinderbox.&lt;br /&gt;
&lt;br /&gt;
== Pushing builds to the release tree ==&lt;br /&gt;
=== Sunbird ===&lt;br /&gt;
For the 0.7 release the required files were copied from the nightly directories and collected in a 0.7-candidates directory still in the nightly tree (flat structure, no renaming). Once all desired languages and platforms are there, a script exists to deliver them into the expected structure (platform/language) in the release tree and do the renaming.&lt;br /&gt;
&lt;br /&gt;
TODO: provide de-personalized version of this script&lt;br /&gt;
&lt;br /&gt;
TODO: provide usage example&lt;br /&gt;
&lt;br /&gt;
TODO: make this script fix access rights and cretate MD5SUM files&lt;br /&gt;
&lt;br /&gt;
=== Lightning ===&lt;br /&gt;
&lt;br /&gt;
Lightning builds now create localized .xpi&lt;br /&gt;
&lt;br /&gt;
== Providing updates for Sunbird ==&lt;br /&gt;
With the changes to the tinderboxe configuration (TODO: link to tb changes) also creation of update files (*.mar) gets enabled. While the complete updates are provided and uploaded by the tinderboxes, creating partial updates requires some manual work (see [[Software_Update:GeneratingSnippetsAndPartialsForReleases#Creating_updates |patcher2]]).&lt;br /&gt;
&lt;br /&gt;
TODO: insert patcher2 config for sunbird&lt;br /&gt;
&lt;br /&gt;
NOTE:&lt;br /&gt;
These update files can be tested manually as described in [[Software_Update:GeneratingSnippetsAndPartialsForReleases#How_Firefox.2FThunderbird_updates_are_tested]] .&lt;br /&gt;
Once the partial .mar are created and uploaded to the stage server, the according update information (snippets) need to be pushed to the AUS server.&lt;br /&gt;
&lt;br /&gt;
helpfull links:&lt;br /&gt;
* [[Software_Update:GeneratingSnippetsAndPartialsForReleases| patcher2]]&lt;br /&gt;
* [[AUS|AUS overview]]&lt;br /&gt;
* [[Software_Update:Nightly_update_infrastructure|updates for nightlies]]&lt;br /&gt;
&lt;br /&gt;
== More things not covered here yet ==&lt;br /&gt;
* [http://wiki.mozilla.org/index.php?title=Calendar:Sunbird_Updates auto update] and the according {{bug|381420}}&lt;br /&gt;
* [http://wiki.mozilla.org/Build:CommunitySelfHelp talkback changes] required for a version change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Release Process Old Page&#039;&#039;&#039; = &lt;br /&gt;
keeping as reference for now - probaly remove when reworking is done.&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
== Create a branch == &lt;br /&gt;
1. Create a branch from the branch you are releasing from this creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH, you also need to note the time this was done on a page like [[Calendar:Release:Sunbird_0.5]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
Note time this is done: May 22, 21:37 CDT&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create a minibranch==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs ci -m&amp;quot;bumping version number on calendar/sunbird on minibranch only&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* remove firefox stuff from calendar/lightning/install.rdf&lt;br /&gt;
&lt;br /&gt;
== Tag the release ==&lt;br /&gt;
* run &amp;quot;date&amp;quot; before you start and use this as date stamp.&lt;br /&gt;
* the date should be in UTC and have this format: &amp;quot;yyyy-mm-dd hh:mm +0000&amp;quot;&lt;br /&gt;
* You need to use an RC here in case we have RC builds that way RCs will move forward to the release (you can have multiple RC&#039;s but there is only one release) so ${RC} becomes 1 for the first attempt to release 0.5&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
screen&lt;br /&gt;
cd .. (one up from mozilla)&lt;br /&gt;
mkdir -p tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
cd tags &amp;amp;&amp;amp; ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE &amp;amp;&amp;amp; \&lt;br /&gt;
  ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, check out mozilla/client.mk and any &amp;lt;something&amp;gt;/config/mozconfig files you need with statements like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
  cvs co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  mozilla/client.mk&lt;br /&gt;
  becomes: cvs co -r ${PRODUCT_TAG}_BRANCH -D &amp;quot;2007-05-23 04:00 +0000&amp;quot; mozilla/client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, you follow these steps:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pull version files from the version bump minibranch&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH ${APP}/app/module.ver \&lt;br /&gt;
 ${APP}/config/version.txt config/milestone.txt&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Create the RC tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RC${RC} 2&amp;gt;&amp;amp;1 | tee ../${BRANCH_TAG}_RC${RC}.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RC${RC}.log&lt;br /&gt;
&lt;br /&gt;
# Create a minibranch for the pull scripts so we can change them without&lt;br /&gt;
# changing anything on the original branch.&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Update client.mk to the minibranch you just created.&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Add the new product tag to the client.mk - need to replace the current branch ID&lt;br /&gt;
sed &amp;quot;s/${MOZILLA_1_8_BRANCH}/${PRODUCT_TAG}_RELEASE/g&amp;quot; client.mk &amp;gt; client.mk.tmp&lt;br /&gt;
mv client.mk.tmp client.mk&lt;br /&gt;
&lt;br /&gt;
# Verify that client.mk only has the changes you expect&lt;br /&gt;
cvs diff -u client.mk&lt;br /&gt;
# Verify that client.mk has its sticky tag set properly.&lt;br /&gt;
cvs status client.mk&lt;br /&gt;
cvs commit -m &amp;quot;For $PRODUCT $VERSION, redirect client.mk onto the ${PRODUCT_TAG}_RELEASE tag.&amp;quot; client.mk&lt;br /&gt;
&lt;br /&gt;
# Move the release tag onto the modified version of the pull scripts.&lt;br /&gt;
# Note that you may have to wait to gain a lock, that is normal.&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RELEASE client.mk&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RC${RC} client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag Talkback===&lt;br /&gt;
* &#039;&#039;&#039;NOTE:&#039;&#039;&#039; to do this, you need access to talkback, currently only lilmatt has that access on our team.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the mofo tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
mkdir mofo/&lt;br /&gt;
cd mofo/&lt;br /&gt;
&lt;br /&gt;
# Branch Talkback like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/mofo rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mofo&lt;br /&gt;
&lt;br /&gt;
# Check out the talkback files from the branch you want to tag.&lt;br /&gt;
cvs -d :ext:cltbld@cvs.mozilla.org:/mofo co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  talkback/fullsoft 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cd talkback/fullsoft/&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag L10N ===&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the l10n tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RELEASE&lt;br /&gt;
mkdir l10n/&lt;br /&gt;
cd l10n/&lt;br /&gt;
&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&lt;br /&gt;
# Grab list of shipped locales&lt;br /&gt;
LOCALES=`awk &#039;{print $1}&#039; &amp;lt; ../cvsroot/mozilla/calendar/locales/shipped-locales`&lt;br /&gt;
&lt;br /&gt;
# Check out the l10n files from the branch you want to tag.&lt;br /&gt;
(for l in $LOCALES&lt;br /&gt;
do&lt;br /&gt;
  cvs -d ${CVSROOT}/l10n co \&lt;br /&gt;
    -r $BRANCH_TAG \&lt;br /&gt;
    -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
    l10n/${l}&lt;br /&gt;
done) 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
cd l10n/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use lilmatt&#039;s magic L10N script to compile Lightning into Locales.  You can find the script in {{bug|352546}}.  We will check it into the main tree somewhere (suggested name: m/c/lilmattsmagicbuildtricks).  You need to update the .dtd and .properties filenames for the current release.&lt;br /&gt;
&lt;br /&gt;
==Push tag forward on updated l10n files==&lt;br /&gt;
In the &amp;lt;code&amp;gt;l10n&amp;lt;/code&amp;gt; directory where you originally tagged l10n...&lt;br /&gt;
 cvs up -r SUNBIRD_0_5_BRANCH&lt;br /&gt;
 cvs tag -F SUNBIRD_0_5_RELEASE&lt;/div&gt;</summary>
		<author><name>Ause</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=72648</id>
		<title>Calendar:HowToRelease</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=72648"/>
		<updated>2007-10-31T12:59:37Z</updated>

		<summary type="html">&lt;p&gt;Ause: /* &amp;#039;&amp;#039;&amp;#039;Release Process&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Release Process&#039;&#039;&#039; = &lt;br /&gt;
== Overview ==&lt;br /&gt;
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 detailed section below.&lt;br /&gt;
&lt;br /&gt;
To prepare for a release:&lt;br /&gt;
* Create a branch in mozilla repository&lt;br /&gt;
* Create a branch in l10n repository&lt;br /&gt;
* Change Tinderboxes to build form that branch&lt;br /&gt;
* Change the Version Number&lt;br /&gt;
* Create localized version of Lightning (to be done in the build - see [https://bugzilla.mozilla.org/show_bug.cgi?id=352546 Bug 352546])&lt;br /&gt;
* Tag files on the branch to make a RC if required&lt;br /&gt;
&lt;br /&gt;
When the final RC gets approved:&lt;br /&gt;
* Tag files on the branch with a release tag&lt;br /&gt;
* Create Mac universal binaries (to be done in the build too?)&lt;br /&gt;
* Move stuff around on stage server&lt;br /&gt;
&lt;br /&gt;
== Create a branch ==&lt;br /&gt;
NOTES:&lt;br /&gt;
* ${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&lt;br /&gt;
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_BRANCH&lt;br /&gt;
* ${RC_TAG} is made by appending _RC to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RC&lt;br /&gt;
* ${RELEASE_TAG} is made by appending _RELEASE to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RELEASE&lt;br /&gt;
* If you intend to see changes made for this release, esp. the fixes, in any later release, keep in mind to also commit them to the regular development branch, e.g.&lt;br /&gt;
 tools/cross-commit --trunk --moz18 --branch=${PRODUCT_TAG}_BRANCH ...&lt;br /&gt;
&lt;br /&gt;
=== mozilla cvs repository ===&lt;br /&gt;
1. Create a branch from the branch you are releasing from. This creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs co -r MOZILLA_1_8_BRANCH mozilla/client.mk&lt;br /&gt;
&lt;br /&gt;
make -f mozilla/client.mk checkout MOZ_CO_PROJECT=&amp;quot;mail,calendar&amp;quot; MOZ_CO_MODULE=&amp;quot;mozilla/tools/update-packaging&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cd mozilla&lt;br /&gt;
&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTE:&lt;br /&gt;
* Tagging the tree created with &amp;quot;make checkout&amp;quot; just creates a branch on those files required. This to prefer to polluting all files with rtag if possible&lt;br /&gt;
&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== l10n cvs repository ===&lt;br /&gt;
&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT_L10N} rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on, changes meant to apper in the release are done on this branch.&lt;br /&gt;
&lt;br /&gt;
== Change Tinderboxes for Release ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;tinderbox-config.pl&amp;quot; and the according &amp;quot;mozconfig&amp;quot; files have to be changed to let the tinderboxes pick up the release branch and do &amp;quot;release builds&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* be sure to make these changes on the cvs branch the desired tinderbox picks up. These are MOZILLA_1_8_BRANCH for regular tinderboxes and MOZILLA_1_8_BRANCH_l10n for the l10n tinderboxes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following sample shows the changes done for linux when switching back from &amp;quot;release mode&amp;quot; to &amp;quot;nightly&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
TODO: place the changes done for 0.7 here&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: tinder-config.pl&lt;br /&gt;
===================================================================&lt;br /&gt;
RCS file: /cvsroot/mozilla/tools/tinderbox-configs/sunbird/linux/tinder-config.pl,v&lt;br /&gt;
retrieving revision 1.26.2.8&lt;br /&gt;
retrieving revision 1.26.2.9&lt;br /&gt;
diff -u -r1.26.2.8 -r1.26.2.9&lt;br /&gt;
--- tinder-config.pl    24 May 2007 16:56:07 -0000  1.26.2.8&lt;br /&gt;
+++ tinder-config.pl    28 Jun 2007 20:21:07 -0000  1.26.2.9&lt;br /&gt;
@@ -49,8 +49,8 @@&lt;br /&gt;
 # Tests&lt;br /&gt;
 $CleanProfile             = 1;&lt;br /&gt;
 $ResetHomeDirForTests     = 1;&lt;br /&gt;
-$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
-#$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
+#$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
+$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
 $VendorName               = &#039;Mozilla&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$RunMozillaTests          = 1;  # Allow turning off of all tests if needed.&lt;br /&gt;
@@ -166,13 +166,8 @@&lt;br /&gt;
&lt;br /&gt;
 $LocalizationVersionFile = &#039;calendar/sunbird/config/version.txt&#039;;&lt;br /&gt;
&lt;br /&gt;
-#%WGetFiles = (&lt;br /&gt;
-#        &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
-#        &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
-#        );&lt;br /&gt;
-&lt;br /&gt;
 %WGetFiles = (&lt;br /&gt;
-         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/candidates/0.5rc1/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
+         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
          &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
          );&lt;br /&gt;
&lt;br /&gt;
@@ -190,8 +185,8 @@&lt;br /&gt;
 $BuildTree  = &#039;Mozilla1.8-l10n&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$BuildName = &#039;&#039;;&lt;br /&gt;
-#$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
-$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
+$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
+#$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
 #$BuildConfigDir = &#039;mozilla/config&#039;;&lt;br /&gt;
 #$Topsrcdir = &#039;mozilla&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create localized version of Lightning ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Tag RC ==&lt;br /&gt;
At a specific point in time, when you feel it&#039;s right do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RCn mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RCn l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
of cause you can use something like &amp;quot;..._RCn&amp;quot; where &amp;quot;n&amp;quot; is the number of your release candidate.&lt;br /&gt;
&lt;br /&gt;
== Create Mac universal binaries ==&lt;br /&gt;
&lt;br /&gt;
=== Mac Lightning Multi Platform XPIs ===&lt;br /&gt;
The Mac multi platform XPI has two &amp;lt;code&amp;gt;targetPlatform&amp;lt;/code&amp;gt; tags in its &amp;lt;code&amp;gt;install.rdf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;em:targetPlatform&amp;gt;Darwin_ppc-gcc3&amp;lt;/em:targetPlatform&amp;gt;&lt;br /&gt;
    &amp;lt;em:targetPlatform&amp;gt;Darwin_x86-gcc3&amp;lt;/em:targetPlatform&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and further on the XPI&#039;s directory structure is different. The &amp;lt;code&amp;gt;components&amp;lt;/code&amp;gt; directory doesn&#039;t contain any native dylibs, but those are hosted in:&lt;br /&gt;
  platform/Darwin_x86-gcc3/components/&lt;br /&gt;
    libcalbasecomps.dylib&lt;br /&gt;
    libstoragecomps.dylib&lt;br /&gt;
    libwebdav.dylib&lt;br /&gt;
  platform/Darwin_ppc-gcc3/components/&lt;br /&gt;
    libcalbasecomps.dylib&lt;br /&gt;
    libstoragecomps.dylib&lt;br /&gt;
    libwebdav.dylib&lt;br /&gt;
&lt;br /&gt;
== Pushing builds to the release tree ==&lt;br /&gt;
=== Sunbird ===&lt;br /&gt;
For the 0.7 release the required files were copied from the nightly directories and collected in a 0.7-candidates directory still in the nightly tree (flat structure, no renaming). Once all desired languages and platforms are there, a script exists to deliver them into the expected structure (platform/language) in the release tree and do the renaming.&lt;br /&gt;
&lt;br /&gt;
TODO: provide de-personalized version of this script&lt;br /&gt;
&lt;br /&gt;
TODO: provide usage example&lt;br /&gt;
&lt;br /&gt;
TODO: make this script fix access rights and cretate MD5SUM files&lt;br /&gt;
&lt;br /&gt;
=== Lightning ===&lt;br /&gt;
There is still running a bunch of scripts for localization (TODO: link to script) repackaging (wcap, universal binaries on mac) and renaming required that has to be done locally. Just the final results are uploaded.&lt;br /&gt;
&lt;br /&gt;
Hopefully this changes for the next releases.&lt;br /&gt;
&lt;br /&gt;
== Providing updates for Sunbird ==&lt;br /&gt;
With the changes to the tinderboxe configuration (TODO: link to tb changes) also creation of update files (*.mar) gets enabled. While the complete updates are provided and uploaded by the tinderboxes, creating partial updates requires some manual work (see [[Software_Update:GeneratingSnippetsAndPartialsForReleases#Creating_updates |patcher2]]).&lt;br /&gt;
&lt;br /&gt;
TODO: insert patcher2 config for sunbird&lt;br /&gt;
&lt;br /&gt;
NOTE:&lt;br /&gt;
These update files can be tested manually as described in [[Software_Update:GeneratingSnippetsAndPartialsForReleases#How_Firefox.2FThunderbird_updates_are_tested]] .&lt;br /&gt;
Once the partial .mar are created and uploaded to the stage server, the according update information (snippets) need to be pushed to the AUS server.&lt;br /&gt;
&lt;br /&gt;
helpfull links:&lt;br /&gt;
* [[Software_Update:GeneratingSnippetsAndPartialsForReleases| patcher2]]&lt;br /&gt;
* [[AUS|AUS overview]]&lt;br /&gt;
* [[Software_Update:Nightly_update_infrastructure|updates for nightlies]]&lt;br /&gt;
&lt;br /&gt;
== More things not covered here yet ==&lt;br /&gt;
* [http://wiki.mozilla.org/index.php?title=Calendar:Sunbird_Updates auto update] and the according {{bug|381420}}&lt;br /&gt;
* [http://wiki.mozilla.org/Build:CommunitySelfHelp talkback changes] required for a version change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Release Process Old Page&#039;&#039;&#039; = &lt;br /&gt;
keeping as reference for now - probaly remove when reworking is done.&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
== Create a branch == &lt;br /&gt;
1. Create a branch from the branch you are releasing from this creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH, you also need to note the time this was done on a page like [[Calendar:Release:Sunbird_0.5]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
Note time this is done: May 22, 21:37 CDT&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create a minibranch==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs ci -m&amp;quot;bumping version number on calendar/sunbird on minibranch only&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* remove firefox stuff from calendar/lightning/install.rdf&lt;br /&gt;
&lt;br /&gt;
== Tag the release ==&lt;br /&gt;
* run &amp;quot;date&amp;quot; before you start and use this as date stamp.&lt;br /&gt;
* the date should be in UTC and have this format: &amp;quot;yyyy-mm-dd hh:mm +0000&amp;quot;&lt;br /&gt;
* You need to use an RC here in case we have RC builds that way RCs will move forward to the release (you can have multiple RC&#039;s but there is only one release) so ${RC} becomes 1 for the first attempt to release 0.5&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
screen&lt;br /&gt;
cd .. (one up from mozilla)&lt;br /&gt;
mkdir -p tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
cd tags &amp;amp;&amp;amp; ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE &amp;amp;&amp;amp; \&lt;br /&gt;
  ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, check out mozilla/client.mk and any &amp;lt;something&amp;gt;/config/mozconfig files you need with statements like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
  cvs co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  mozilla/client.mk&lt;br /&gt;
  becomes: cvs co -r ${PRODUCT_TAG}_BRANCH -D &amp;quot;2007-05-23 04:00 +0000&amp;quot; mozilla/client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, you follow these steps:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pull version files from the version bump minibranch&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH ${APP}/app/module.ver \&lt;br /&gt;
 ${APP}/config/version.txt config/milestone.txt&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Create the RC tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RC${RC} 2&amp;gt;&amp;amp;1 | tee ../${BRANCH_TAG}_RC${RC}.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RC${RC}.log&lt;br /&gt;
&lt;br /&gt;
# Create a minibranch for the pull scripts so we can change them without&lt;br /&gt;
# changing anything on the original branch.&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Update client.mk to the minibranch you just created.&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Add the new product tag to the client.mk - need to replace the current branch ID&lt;br /&gt;
sed &amp;quot;s/${MOZILLA_1_8_BRANCH}/${PRODUCT_TAG}_RELEASE/g&amp;quot; client.mk &amp;gt; client.mk.tmp&lt;br /&gt;
mv client.mk.tmp client.mk&lt;br /&gt;
&lt;br /&gt;
# Verify that client.mk only has the changes you expect&lt;br /&gt;
cvs diff -u client.mk&lt;br /&gt;
# Verify that client.mk has its sticky tag set properly.&lt;br /&gt;
cvs status client.mk&lt;br /&gt;
cvs commit -m &amp;quot;For $PRODUCT $VERSION, redirect client.mk onto the ${PRODUCT_TAG}_RELEASE tag.&amp;quot; client.mk&lt;br /&gt;
&lt;br /&gt;
# Move the release tag onto the modified version of the pull scripts.&lt;br /&gt;
# Note that you may have to wait to gain a lock, that is normal.&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RELEASE client.mk&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RC${RC} client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag Talkback===&lt;br /&gt;
* &#039;&#039;&#039;NOTE:&#039;&#039;&#039; to do this, you need access to talkback, currently only lilmatt has that access on our team.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the mofo tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
mkdir mofo/&lt;br /&gt;
cd mofo/&lt;br /&gt;
&lt;br /&gt;
# Branch Talkback like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/mofo rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mofo&lt;br /&gt;
&lt;br /&gt;
# Check out the talkback files from the branch you want to tag.&lt;br /&gt;
cvs -d :ext:cltbld@cvs.mozilla.org:/mofo co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  talkback/fullsoft 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cd talkback/fullsoft/&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag L10N ===&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the l10n tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RELEASE&lt;br /&gt;
mkdir l10n/&lt;br /&gt;
cd l10n/&lt;br /&gt;
&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&lt;br /&gt;
# Grab list of shipped locales&lt;br /&gt;
LOCALES=`awk &#039;{print $1}&#039; &amp;lt; ../cvsroot/mozilla/calendar/locales/shipped-locales`&lt;br /&gt;
&lt;br /&gt;
# Check out the l10n files from the branch you want to tag.&lt;br /&gt;
(for l in $LOCALES&lt;br /&gt;
do&lt;br /&gt;
  cvs -d ${CVSROOT}/l10n co \&lt;br /&gt;
    -r $BRANCH_TAG \&lt;br /&gt;
    -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
    l10n/${l}&lt;br /&gt;
done) 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
cd l10n/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use lilmatt&#039;s magic L10N script to compile Lightning into Locales.  You can find the script in {{bug|352546}}.  We will check it into the main tree somewhere (suggested name: m/c/lilmattsmagicbuildtricks).  You need to update the .dtd and .properties filenames for the current release.&lt;br /&gt;
&lt;br /&gt;
==Push tag forward on updated l10n files==&lt;br /&gt;
In the &amp;lt;code&amp;gt;l10n&amp;lt;/code&amp;gt; directory where you originally tagged l10n...&lt;br /&gt;
 cvs up -r SUNBIRD_0_5_BRANCH&lt;br /&gt;
 cvs tag -F SUNBIRD_0_5_RELEASE&lt;/div&gt;</summary>
		<author><name>Ause</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=71226</id>
		<title>Calendar:HowToRelease</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=71226"/>
		<updated>2007-10-16T10:17:33Z</updated>

		<summary type="html">&lt;p&gt;Ause: /* Change Tinderboxes for Release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Release Process&#039;&#039;&#039; = &lt;br /&gt;
== Overview ==&lt;br /&gt;
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 detailed section below.&lt;br /&gt;
&lt;br /&gt;
To prepare for a release:&lt;br /&gt;
* Create a branch in mozilla repository&lt;br /&gt;
* Create a branch in l10n repository&lt;br /&gt;
* Change Tinderboxes to build form that branch&lt;br /&gt;
* Change the Version Number&lt;br /&gt;
* Create localized version of Lightning (to be done in the build - see [https://bugzilla.mozilla.org/show_bug.cgi?id=352546 Bug 352546])&lt;br /&gt;
* Tag files on the branch to make a RC if required&lt;br /&gt;
&lt;br /&gt;
When the final RC gets approved:&lt;br /&gt;
* Tag files on the branch with a release tag&lt;br /&gt;
* Create Mac universal binaries (to be done in the build too?)&lt;br /&gt;
* Move stuff around on stage server&lt;br /&gt;
&lt;br /&gt;
== Create a branch ==&lt;br /&gt;
NOTES:&lt;br /&gt;
* ${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&lt;br /&gt;
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_BRANCH&lt;br /&gt;
* ${RC_TAG} is made by appending _RC to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RC&lt;br /&gt;
* ${RELEASE_TAG} is made by appending _RELEASE to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RELEASE&lt;br /&gt;
* If you intend to see changes made for this release, esp. the fixes, in any later release, keep in mind to also commit them to the regular development branch, e.g.&lt;br /&gt;
 tools/cross-commit --trunk --moz18 --branch=${PRODUCT_TAG}_BRANCH ...&lt;br /&gt;
&lt;br /&gt;
=== mozilla cvs repository ===&lt;br /&gt;
1. Create a branch from the branch you are releasing from. This creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs co -r MOZILLA_1_8_BRANCH mozilla/client.mk&lt;br /&gt;
&lt;br /&gt;
make -f mozilla/client.mk checkout MOZ_CO_PROJECT=&amp;quot;mail,calendar&amp;quot; MOZ_CO_MODULE=&amp;quot;mozilla/tools/update-packaging&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cd mozilla&lt;br /&gt;
&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTE:&lt;br /&gt;
* Tagging the tree created with &amp;quot;make checkout&amp;quot; just creates a branch on those files required. This to prefer to polluting all files with rtag if possible&lt;br /&gt;
&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== l10n cvs repository ===&lt;br /&gt;
&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT_L10N} rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on, changes meant to apper in the release are done on this branch.&lt;br /&gt;
&lt;br /&gt;
== Change Tinderboxes for Release ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;tinderbox-config.pl&amp;quot; and the according &amp;quot;mozconfig&amp;quot; files have to be changed to let the tinderboxes pick up the release branch and do &amp;quot;release builds&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* be sure to make these changes on the cvs branch the desired tinderbox picks up. These are MOZILLA_1_8_BRANCH for regular tinderboxes and MOZILLA_1_8_BRANCH_l10n for the l10n tinderboxes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following sample shows the changes done for linux when switching back from &amp;quot;release mode&amp;quot; to &amp;quot;nightly&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
TODO: place the changes done for 0.7 here&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: tinder-config.pl&lt;br /&gt;
===================================================================&lt;br /&gt;
RCS file: /cvsroot/mozilla/tools/tinderbox-configs/sunbird/linux/tinder-config.pl,v&lt;br /&gt;
retrieving revision 1.26.2.8&lt;br /&gt;
retrieving revision 1.26.2.9&lt;br /&gt;
diff -u -r1.26.2.8 -r1.26.2.9&lt;br /&gt;
--- tinder-config.pl    24 May 2007 16:56:07 -0000  1.26.2.8&lt;br /&gt;
+++ tinder-config.pl    28 Jun 2007 20:21:07 -0000  1.26.2.9&lt;br /&gt;
@@ -49,8 +49,8 @@&lt;br /&gt;
 # Tests&lt;br /&gt;
 $CleanProfile             = 1;&lt;br /&gt;
 $ResetHomeDirForTests     = 1;&lt;br /&gt;
-$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
-#$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
+#$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
+$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
 $VendorName               = &#039;Mozilla&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$RunMozillaTests          = 1;  # Allow turning off of all tests if needed.&lt;br /&gt;
@@ -166,13 +166,8 @@&lt;br /&gt;
&lt;br /&gt;
 $LocalizationVersionFile = &#039;calendar/sunbird/config/version.txt&#039;;&lt;br /&gt;
&lt;br /&gt;
-#%WGetFiles = (&lt;br /&gt;
-#        &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
-#        &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
-#        );&lt;br /&gt;
-&lt;br /&gt;
 %WGetFiles = (&lt;br /&gt;
-         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/candidates/0.5rc1/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
+         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
          &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
          );&lt;br /&gt;
&lt;br /&gt;
@@ -190,8 +185,8 @@&lt;br /&gt;
 $BuildTree  = &#039;Mozilla1.8-l10n&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$BuildName = &#039;&#039;;&lt;br /&gt;
-#$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
-$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
+$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
+#$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
 #$BuildConfigDir = &#039;mozilla/config&#039;;&lt;br /&gt;
 #$Topsrcdir = &#039;mozilla&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create localized version of Lightning ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Tag RC ==&lt;br /&gt;
At a specific point in time, when you feel it&#039;s right do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RCn mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RCn l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
of cause you can use something like &amp;quot;..._RCn&amp;quot; where &amp;quot;n&amp;quot; is the number of your release candidate.&lt;br /&gt;
&lt;br /&gt;
== Create Mac universal binaries ==&lt;br /&gt;
&lt;br /&gt;
=== Mac Lightning Multi Platform XPIs ===&lt;br /&gt;
The Mac multi platform XPI has two &amp;lt;code&amp;gt;targetPlatform&amp;lt;/code&amp;gt; tags in its &amp;lt;code&amp;gt;install.rdf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;em:targetPlatform&amp;gt;Darwin_ppc-gcc3&amp;lt;/em:targetPlatform&amp;gt;&lt;br /&gt;
    &amp;lt;em:targetPlatform&amp;gt;Darwin_x86-gcc3&amp;lt;/em:targetPlatform&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and further on the XPI&#039;s directory structure is different. The &amp;lt;code&amp;gt;components&amp;lt;/code&amp;gt; directory doesn&#039;t contain any native dylibs, but those are hosted in:&lt;br /&gt;
  platform/Darwin_x86-gcc3/components/&lt;br /&gt;
    libcalbasecomps.dylib&lt;br /&gt;
    libstoragecomps.dylib&lt;br /&gt;
    libwebdav.dylib&lt;br /&gt;
  platform/Darwin_ppc-gcc3/components/&lt;br /&gt;
    libcalbasecomps.dylib&lt;br /&gt;
    libstoragecomps.dylib&lt;br /&gt;
    libwebdav.dylib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Move stuff around on stage server ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== More things not covered here yet ==&lt;br /&gt;
* [http://wiki.mozilla.org/index.php?title=Calendar:Sunbird_Updates auto update] and the according {{bug|381420}}&lt;br /&gt;
* [http://wiki.mozilla.org/Build:CommunitySelfHelp talkback changes] required for a version change&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Release Process Old Page&#039;&#039;&#039; = &lt;br /&gt;
keeping as reference for now - probaly remove when reworking is done.&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
== Create a branch == &lt;br /&gt;
1. Create a branch from the branch you are releasing from this creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH, you also need to note the time this was done on a page like [[Calendar:Release:Sunbird_0.5]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
Note time this is done: May 22, 21:37 CDT&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create a minibranch==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs ci -m&amp;quot;bumping version number on calendar/sunbird on minibranch only&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* remove firefox stuff from calendar/lightning/install.rdf&lt;br /&gt;
&lt;br /&gt;
== Tag the release ==&lt;br /&gt;
* run &amp;quot;date&amp;quot; before you start and use this as date stamp.&lt;br /&gt;
* the date should be in UTC and have this format: &amp;quot;yyyy-mm-dd hh:mm +0000&amp;quot;&lt;br /&gt;
* You need to use an RC here in case we have RC builds that way RCs will move forward to the release (you can have multiple RC&#039;s but there is only one release) so ${RC} becomes 1 for the first attempt to release 0.5&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
screen&lt;br /&gt;
cd .. (one up from mozilla)&lt;br /&gt;
mkdir -p tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
cd tags &amp;amp;&amp;amp; ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE &amp;amp;&amp;amp; \&lt;br /&gt;
  ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, check out mozilla/client.mk and any &amp;lt;something&amp;gt;/config/mozconfig files you need with statements like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
  cvs co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  mozilla/client.mk&lt;br /&gt;
  becomes: cvs co -r ${PRODUCT_TAG}_BRANCH -D &amp;quot;2007-05-23 04:00 +0000&amp;quot; mozilla/client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, you follow these steps:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pull version files from the version bump minibranch&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH ${APP}/app/module.ver \&lt;br /&gt;
 ${APP}/config/version.txt config/milestone.txt&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Create the RC tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RC${RC} 2&amp;gt;&amp;amp;1 | tee ../${BRANCH_TAG}_RC${RC}.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RC${RC}.log&lt;br /&gt;
&lt;br /&gt;
# Create a minibranch for the pull scripts so we can change them without&lt;br /&gt;
# changing anything on the original branch.&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Update client.mk to the minibranch you just created.&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Add the new product tag to the client.mk - need to replace the current branch ID&lt;br /&gt;
sed &amp;quot;s/${MOZILLA_1_8_BRANCH}/${PRODUCT_TAG}_RELEASE/g&amp;quot; client.mk &amp;gt; client.mk.tmp&lt;br /&gt;
mv client.mk.tmp client.mk&lt;br /&gt;
&lt;br /&gt;
# Verify that client.mk only has the changes you expect&lt;br /&gt;
cvs diff -u client.mk&lt;br /&gt;
# Verify that client.mk has its sticky tag set properly.&lt;br /&gt;
cvs status client.mk&lt;br /&gt;
cvs commit -m &amp;quot;For $PRODUCT $VERSION, redirect client.mk onto the ${PRODUCT_TAG}_RELEASE tag.&amp;quot; client.mk&lt;br /&gt;
&lt;br /&gt;
# Move the release tag onto the modified version of the pull scripts.&lt;br /&gt;
# Note that you may have to wait to gain a lock, that is normal.&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RELEASE client.mk&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RC${RC} client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag Talkback===&lt;br /&gt;
* &#039;&#039;&#039;NOTE:&#039;&#039;&#039; to do this, you need access to talkback, currently only lilmatt has that access on our team.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the mofo tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
mkdir mofo/&lt;br /&gt;
cd mofo/&lt;br /&gt;
&lt;br /&gt;
# Branch Talkback like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/mofo rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mofo&lt;br /&gt;
&lt;br /&gt;
# Check out the talkback files from the branch you want to tag.&lt;br /&gt;
cvs -d :ext:cltbld@cvs.mozilla.org:/mofo co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  talkback/fullsoft 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cd talkback/fullsoft/&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag L10N ===&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the l10n tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RELEASE&lt;br /&gt;
mkdir l10n/&lt;br /&gt;
cd l10n/&lt;br /&gt;
&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&lt;br /&gt;
# Grab list of shipped locales&lt;br /&gt;
LOCALES=`awk &#039;{print $1}&#039; &amp;lt; ../cvsroot/mozilla/calendar/locales/shipped-locales`&lt;br /&gt;
&lt;br /&gt;
# Check out the l10n files from the branch you want to tag.&lt;br /&gt;
(for l in $LOCALES&lt;br /&gt;
do&lt;br /&gt;
  cvs -d ${CVSROOT}/l10n co \&lt;br /&gt;
    -r $BRANCH_TAG \&lt;br /&gt;
    -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
    l10n/${l}&lt;br /&gt;
done) 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
cd l10n/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use lilmatt&#039;s magic L10N script to compile Lightning into Locales.  You can find the script in {{bug|352546}}.  We will check it into the main tree somewhere (suggested name: m/c/lilmattsmagicbuildtricks).  You need to update the .dtd and .properties filenames for the current release.&lt;br /&gt;
&lt;br /&gt;
==Push tag forward on updated l10n files==&lt;br /&gt;
In the &amp;lt;code&amp;gt;l10n&amp;lt;/code&amp;gt; directory where you originally tagged l10n...&lt;br /&gt;
 cvs up -r SUNBIRD_0_5_BRANCH&lt;br /&gt;
 cvs tag -F SUNBIRD_0_5_RELEASE&lt;/div&gt;</summary>
		<author><name>Ause</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=71225</id>
		<title>Calendar:HowToRelease</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=71225"/>
		<updated>2007-10-16T10:02:02Z</updated>

		<summary type="html">&lt;p&gt;Ause: /* mozilla cvs repository */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Release Process&#039;&#039;&#039; = &lt;br /&gt;
== Overview ==&lt;br /&gt;
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 detailed section below.&lt;br /&gt;
&lt;br /&gt;
To prepare for a release:&lt;br /&gt;
* Create a branch in mozilla repository&lt;br /&gt;
* Create a branch in l10n repository&lt;br /&gt;
* Change Tinderboxes to build form that branch&lt;br /&gt;
* Change the Version Number&lt;br /&gt;
* Create localized version of Lightning (to be done in the build - see [https://bugzilla.mozilla.org/show_bug.cgi?id=352546 Bug 352546])&lt;br /&gt;
* Tag files on the branch to make a RC if required&lt;br /&gt;
&lt;br /&gt;
When the final RC gets approved:&lt;br /&gt;
* Tag files on the branch with a release tag&lt;br /&gt;
* Create Mac universal binaries (to be done in the build too?)&lt;br /&gt;
* Move stuff around on stage server&lt;br /&gt;
&lt;br /&gt;
== Create a branch ==&lt;br /&gt;
NOTES:&lt;br /&gt;
* ${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&lt;br /&gt;
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_BRANCH&lt;br /&gt;
* ${RC_TAG} is made by appending _RC to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RC&lt;br /&gt;
* ${RELEASE_TAG} is made by appending _RELEASE to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RELEASE&lt;br /&gt;
* If you intend to see changes made for this release, esp. the fixes, in any later release, keep in mind to also commit them to the regular development branch, e.g.&lt;br /&gt;
 tools/cross-commit --trunk --moz18 --branch=${PRODUCT_TAG}_BRANCH ...&lt;br /&gt;
&lt;br /&gt;
=== mozilla cvs repository ===&lt;br /&gt;
1. Create a branch from the branch you are releasing from. This creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs co -r MOZILLA_1_8_BRANCH mozilla/client.mk&lt;br /&gt;
&lt;br /&gt;
make -f mozilla/client.mk checkout MOZ_CO_PROJECT=&amp;quot;mail,calendar&amp;quot; MOZ_CO_MODULE=&amp;quot;mozilla/tools/update-packaging&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cd mozilla&lt;br /&gt;
&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTE:&lt;br /&gt;
* Tagging the tree created with &amp;quot;make checkout&amp;quot; just creates a branch on those files required. This to prefer to polluting all files with rtag if possible&lt;br /&gt;
&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== l10n cvs repository ===&lt;br /&gt;
&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT_L10N} rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on, changes meant to apper in the release are done on this branch.&lt;br /&gt;
&lt;br /&gt;
== Change Tinderboxes for Release ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;tinderbox-config.pl&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* be sure to make these changes on the cvs branch the desired tinderbox picks up.&lt;br /&gt;
&lt;br /&gt;
The following sample shows the changes done for linux when switching back from &amp;quot;release mode&amp;quot; to &amp;quot;nightly&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: tinder-config.pl&lt;br /&gt;
===================================================================&lt;br /&gt;
RCS file: /cvsroot/mozilla/tools/tinderbox-configs/sunbird/linux/tinder-config.pl,v&lt;br /&gt;
retrieving revision 1.26.2.8&lt;br /&gt;
retrieving revision 1.26.2.9&lt;br /&gt;
diff -u -r1.26.2.8 -r1.26.2.9&lt;br /&gt;
--- tinder-config.pl    24 May 2007 16:56:07 -0000  1.26.2.8&lt;br /&gt;
+++ tinder-config.pl    28 Jun 2007 20:21:07 -0000  1.26.2.9&lt;br /&gt;
@@ -49,8 +49,8 @@&lt;br /&gt;
 # Tests&lt;br /&gt;
 $CleanProfile             = 1;&lt;br /&gt;
 $ResetHomeDirForTests     = 1;&lt;br /&gt;
-$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
-#$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
+#$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
+$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
 $VendorName               = &#039;Mozilla&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$RunMozillaTests          = 1;  # Allow turning off of all tests if needed.&lt;br /&gt;
@@ -166,13 +166,8 @@&lt;br /&gt;
&lt;br /&gt;
 $LocalizationVersionFile = &#039;calendar/sunbird/config/version.txt&#039;;&lt;br /&gt;
&lt;br /&gt;
-#%WGetFiles = (&lt;br /&gt;
-#        &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
-#        &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
-#        );&lt;br /&gt;
-&lt;br /&gt;
 %WGetFiles = (&lt;br /&gt;
-         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/candidates/0.5rc1/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
+         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
          &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
          );&lt;br /&gt;
&lt;br /&gt;
@@ -190,8 +185,8 @@&lt;br /&gt;
 $BuildTree  = &#039;Mozilla1.8-l10n&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$BuildName = &#039;&#039;;&lt;br /&gt;
-#$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
-$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
+$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
+#$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
 #$BuildConfigDir = &#039;mozilla/config&#039;;&lt;br /&gt;
 #$Topsrcdir = &#039;mozilla&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create localized version of Lightning ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Tag RC ==&lt;br /&gt;
At a specific point in time, when you feel it&#039;s right do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RCn mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RCn l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
of cause you can use something like &amp;quot;..._RCn&amp;quot; where &amp;quot;n&amp;quot; is the number of your release candidate.&lt;br /&gt;
&lt;br /&gt;
== Create Mac universal binaries ==&lt;br /&gt;
&lt;br /&gt;
=== Mac Lightning Multi Platform XPIs ===&lt;br /&gt;
The Mac multi platform XPI has two &amp;lt;code&amp;gt;targetPlatform&amp;lt;/code&amp;gt; tags in its &amp;lt;code&amp;gt;install.rdf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;em:targetPlatform&amp;gt;Darwin_ppc-gcc3&amp;lt;/em:targetPlatform&amp;gt;&lt;br /&gt;
    &amp;lt;em:targetPlatform&amp;gt;Darwin_x86-gcc3&amp;lt;/em:targetPlatform&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and further on the XPI&#039;s directory structure is different. The &amp;lt;code&amp;gt;components&amp;lt;/code&amp;gt; directory doesn&#039;t contain any native dylibs, but those are hosted in:&lt;br /&gt;
  platform/Darwin_x86-gcc3/components/&lt;br /&gt;
    libcalbasecomps.dylib&lt;br /&gt;
    libstoragecomps.dylib&lt;br /&gt;
    libwebdav.dylib&lt;br /&gt;
  platform/Darwin_ppc-gcc3/components/&lt;br /&gt;
    libcalbasecomps.dylib&lt;br /&gt;
    libstoragecomps.dylib&lt;br /&gt;
    libwebdav.dylib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Move stuff around on stage server ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== More things not covered here yet ==&lt;br /&gt;
* [http://wiki.mozilla.org/index.php?title=Calendar:Sunbird_Updates auto update] and the according {{bug|381420}}&lt;br /&gt;
* [http://wiki.mozilla.org/Build:CommunitySelfHelp talkback changes] required for a version change&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Release Process Old Page&#039;&#039;&#039; = &lt;br /&gt;
keeping as reference for now - probaly remove when reworking is done.&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
== Create a branch == &lt;br /&gt;
1. Create a branch from the branch you are releasing from this creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH, you also need to note the time this was done on a page like [[Calendar:Release:Sunbird_0.5]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
Note time this is done: May 22, 21:37 CDT&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create a minibranch==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs ci -m&amp;quot;bumping version number on calendar/sunbird on minibranch only&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* remove firefox stuff from calendar/lightning/install.rdf&lt;br /&gt;
&lt;br /&gt;
== Tag the release ==&lt;br /&gt;
* run &amp;quot;date&amp;quot; before you start and use this as date stamp.&lt;br /&gt;
* the date should be in UTC and have this format: &amp;quot;yyyy-mm-dd hh:mm +0000&amp;quot;&lt;br /&gt;
* You need to use an RC here in case we have RC builds that way RCs will move forward to the release (you can have multiple RC&#039;s but there is only one release) so ${RC} becomes 1 for the first attempt to release 0.5&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
screen&lt;br /&gt;
cd .. (one up from mozilla)&lt;br /&gt;
mkdir -p tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
cd tags &amp;amp;&amp;amp; ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE &amp;amp;&amp;amp; \&lt;br /&gt;
  ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, check out mozilla/client.mk and any &amp;lt;something&amp;gt;/config/mozconfig files you need with statements like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
  cvs co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  mozilla/client.mk&lt;br /&gt;
  becomes: cvs co -r ${PRODUCT_TAG}_BRANCH -D &amp;quot;2007-05-23 04:00 +0000&amp;quot; mozilla/client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, you follow these steps:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pull version files from the version bump minibranch&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH ${APP}/app/module.ver \&lt;br /&gt;
 ${APP}/config/version.txt config/milestone.txt&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Create the RC tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RC${RC} 2&amp;gt;&amp;amp;1 | tee ../${BRANCH_TAG}_RC${RC}.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RC${RC}.log&lt;br /&gt;
&lt;br /&gt;
# Create a minibranch for the pull scripts so we can change them without&lt;br /&gt;
# changing anything on the original branch.&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Update client.mk to the minibranch you just created.&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Add the new product tag to the client.mk - need to replace the current branch ID&lt;br /&gt;
sed &amp;quot;s/${MOZILLA_1_8_BRANCH}/${PRODUCT_TAG}_RELEASE/g&amp;quot; client.mk &amp;gt; client.mk.tmp&lt;br /&gt;
mv client.mk.tmp client.mk&lt;br /&gt;
&lt;br /&gt;
# Verify that client.mk only has the changes you expect&lt;br /&gt;
cvs diff -u client.mk&lt;br /&gt;
# Verify that client.mk has its sticky tag set properly.&lt;br /&gt;
cvs status client.mk&lt;br /&gt;
cvs commit -m &amp;quot;For $PRODUCT $VERSION, redirect client.mk onto the ${PRODUCT_TAG}_RELEASE tag.&amp;quot; client.mk&lt;br /&gt;
&lt;br /&gt;
# Move the release tag onto the modified version of the pull scripts.&lt;br /&gt;
# Note that you may have to wait to gain a lock, that is normal.&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RELEASE client.mk&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RC${RC} client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag Talkback===&lt;br /&gt;
* &#039;&#039;&#039;NOTE:&#039;&#039;&#039; to do this, you need access to talkback, currently only lilmatt has that access on our team.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the mofo tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
mkdir mofo/&lt;br /&gt;
cd mofo/&lt;br /&gt;
&lt;br /&gt;
# Branch Talkback like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/mofo rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mofo&lt;br /&gt;
&lt;br /&gt;
# Check out the talkback files from the branch you want to tag.&lt;br /&gt;
cvs -d :ext:cltbld@cvs.mozilla.org:/mofo co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  talkback/fullsoft 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cd talkback/fullsoft/&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag L10N ===&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the l10n tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RELEASE&lt;br /&gt;
mkdir l10n/&lt;br /&gt;
cd l10n/&lt;br /&gt;
&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&lt;br /&gt;
# Grab list of shipped locales&lt;br /&gt;
LOCALES=`awk &#039;{print $1}&#039; &amp;lt; ../cvsroot/mozilla/calendar/locales/shipped-locales`&lt;br /&gt;
&lt;br /&gt;
# Check out the l10n files from the branch you want to tag.&lt;br /&gt;
(for l in $LOCALES&lt;br /&gt;
do&lt;br /&gt;
  cvs -d ${CVSROOT}/l10n co \&lt;br /&gt;
    -r $BRANCH_TAG \&lt;br /&gt;
    -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
    l10n/${l}&lt;br /&gt;
done) 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
cd l10n/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use lilmatt&#039;s magic L10N script to compile Lightning into Locales.  You can find the script in {{bug|352546}}.  We will check it into the main tree somewhere (suggested name: m/c/lilmattsmagicbuildtricks).  You need to update the .dtd and .properties filenames for the current release.&lt;br /&gt;
&lt;br /&gt;
==Push tag forward on updated l10n files==&lt;br /&gt;
In the &amp;lt;code&amp;gt;l10n&amp;lt;/code&amp;gt; directory where you originally tagged l10n...&lt;br /&gt;
 cvs up -r SUNBIRD_0_5_BRANCH&lt;br /&gt;
 cvs tag -F SUNBIRD_0_5_RELEASE&lt;/div&gt;</summary>
		<author><name>Ause</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=67350</id>
		<title>Calendar:HowToRelease</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=67350"/>
		<updated>2007-08-31T15:03:36Z</updated>

		<summary type="html">&lt;p&gt;Ause: /* &amp;#039;&amp;#039;&amp;#039;Release Process&amp;#039;&amp;#039;&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Release Process&#039;&#039;&#039; = &lt;br /&gt;
== Overview ==&lt;br /&gt;
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 detailed section below.&lt;br /&gt;
&lt;br /&gt;
To prepare for a release:&lt;br /&gt;
* Create a branch in mozilla repository&lt;br /&gt;
* Create a branch in l10n repository&lt;br /&gt;
* Change Tinderboxes to build form that branch&lt;br /&gt;
* Change the Version Number&lt;br /&gt;
* Create localized version of Lightning (to be done in the build - see Bug 352546)&lt;br /&gt;
* Tag files on the branch to make a RC if required&lt;br /&gt;
&lt;br /&gt;
When the final RC gets approved:&lt;br /&gt;
* Tag files on the branch with a release tag&lt;br /&gt;
* Create Mac universal binaries (to be done in the build too?)&lt;br /&gt;
* Move stuff around on stage server&lt;br /&gt;
&lt;br /&gt;
== Create a branch ==&lt;br /&gt;
NOTES:&lt;br /&gt;
* If you intend to see changes made for this release, esp. the fixes, in any later release, keep in mind to also commit them to the regular development branch.&lt;br /&gt;
* ${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&lt;br /&gt;
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_BRANCH&lt;br /&gt;
* ${RC_TAG} is made by appending _RC to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RC&lt;br /&gt;
* ${RELEASE_TAG} is made by appending _RELEASE to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RELEASE&lt;br /&gt;
&lt;br /&gt;
=== mozilla cvs repository ===&lt;br /&gt;
1. Create a branch from the branch you are releasing from. This creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== l10n cvs repository ===&lt;br /&gt;
&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on, changes meant to apper in the release are done on this branch.&lt;br /&gt;
&lt;br /&gt;
== Change Tinderboxes for Release ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;tinderbox-config.pl&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* be sure to make these changes on the cvs branch the desired tinderbox picks up.&lt;br /&gt;
&lt;br /&gt;
The following sample shows the changes done for linux when switching back from &amp;quot;release mode&amp;quot; to &amp;quot;nightly&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: tinder-config.pl&lt;br /&gt;
===================================================================&lt;br /&gt;
RCS file: /cvsroot/mozilla/tools/tinderbox-configs/sunbird/linux/tinder-config.pl,v&lt;br /&gt;
retrieving revision 1.26.2.8&lt;br /&gt;
retrieving revision 1.26.2.9&lt;br /&gt;
diff -u -r1.26.2.8 -r1.26.2.9&lt;br /&gt;
--- tinder-config.pl    24 May 2007 16:56:07 -0000  1.26.2.8&lt;br /&gt;
+++ tinder-config.pl    28 Jun 2007 20:21:07 -0000  1.26.2.9&lt;br /&gt;
@@ -49,8 +49,8 @@&lt;br /&gt;
 # Tests&lt;br /&gt;
 $CleanProfile             = 1;&lt;br /&gt;
 $ResetHomeDirForTests     = 1;&lt;br /&gt;
-$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
-#$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
+#$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
+$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
 $VendorName               = &#039;Mozilla&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$RunMozillaTests          = 1;  # Allow turning off of all tests if needed.&lt;br /&gt;
@@ -166,13 +166,8 @@&lt;br /&gt;
&lt;br /&gt;
 $LocalizationVersionFile = &#039;calendar/sunbird/config/version.txt&#039;;&lt;br /&gt;
&lt;br /&gt;
-#%WGetFiles = (&lt;br /&gt;
-#        &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
-#        &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
-#        );&lt;br /&gt;
-&lt;br /&gt;
 %WGetFiles = (&lt;br /&gt;
-         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/candidates/0.5rc1/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
+         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
          &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
          );&lt;br /&gt;
&lt;br /&gt;
@@ -190,8 +185,8 @@&lt;br /&gt;
 $BuildTree  = &#039;Mozilla1.8-l10n&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$BuildName = &#039;&#039;;&lt;br /&gt;
-#$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
-$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
+$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
+#$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
 #$BuildConfigDir = &#039;mozilla/config&#039;;&lt;br /&gt;
 #$Topsrcdir = &#039;mozilla&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create localized version of Lightning ==&lt;br /&gt;
&lt;br /&gt;
== Tag RC ==&lt;br /&gt;
At a specific point in time, when you feel it&#039;s right do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RC mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RC l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
of cause you can use something like &amp;quot;..._RCn&amp;quot; where &amp;quot;n&amp;quot; is the number of your release candidate.&lt;br /&gt;
&lt;br /&gt;
== Tag Release ==&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
Could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_RC ${PRODUCT_TAG}_RELEASE mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_RC ${PRODUCT_TAG}_RELEASE l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create Mac universal binaries ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Move stuff around on stage server ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== More things not covered here yet ==&lt;br /&gt;
* [http://www.examhttp://wiki.mozilla.org/index.php?title=Calendar:Sunbird_Updates&amp;amp;action=editple.com auto update] and the according [https://bugzilla.mozilla.org/show_bug.cgi?id=381420 Bug 381420]&lt;br /&gt;
* [http://wiki.mozilla.org/Build:CommunitySelfHelp talkback changes] required for a version change&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;Release Process Old Page&#039;&#039;&#039; = &lt;br /&gt;
keeping as reference for now - probaly remove when reworking is done.&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
== Create a branch == &lt;br /&gt;
1. Create a branch from the branch you are releasing from this creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH, you also need to note the time this was done on a page like [[Calendar:Release:Sunbird_0.5]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
Note time this is done: May 22, 21:37 CDT&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create a minibranch==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs ci -m&amp;quot;bumping version number on calendar/sunbird on minibranch only&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* remove firefox stuff from calendar/lightning/install.rdf&lt;br /&gt;
&lt;br /&gt;
== Tag the release ==&lt;br /&gt;
* run &amp;quot;date&amp;quot; before you start and use this as date stamp.&lt;br /&gt;
* the date should be in UTC and have this format: &amp;quot;yyyy-mm-dd hh:mm +0000&amp;quot;&lt;br /&gt;
* You need to use an RC here in case we have RC builds that way RCs will move forward to the release (you can have multiple RC&#039;s but there is only one release) so ${RC} becomes 1 for the first attempt to release 0.5&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
screen&lt;br /&gt;
cd .. (one up from mozilla)&lt;br /&gt;
mkdir -p tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
cd tags &amp;amp;&amp;amp; ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE &amp;amp;&amp;amp; \&lt;br /&gt;
  ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, check out mozilla/client.mk and any &amp;lt;something&amp;gt;/config/mozconfig files you need with statements like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
  cvs co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  mozilla/client.mk&lt;br /&gt;
  becomes: cvs co -r ${PRODUCT_TAG}_BRANCH -D &amp;quot;2007-05-23 04:00 +0000&amp;quot; mozilla/client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, you follow these steps:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pull version files from the version bump minibranch&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH ${APP}/app/module.ver \&lt;br /&gt;
 ${APP}/config/version.txt config/milestone.txt&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Create the RC tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RC${RC} 2&amp;gt;&amp;amp;1 | tee ../${BRANCH_TAG}_RC${RC}.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RC${RC}.log&lt;br /&gt;
&lt;br /&gt;
# Create a minibranch for the pull scripts so we can change them without&lt;br /&gt;
# changing anything on the original branch.&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Update client.mk to the minibranch you just created.&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Add the new product tag to the client.mk - need to replace the current branch ID&lt;br /&gt;
sed &amp;quot;s/${MOZILLA_1_8_BRANCH}/${PRODUCT_TAG}_RELEASE/g&amp;quot; client.mk &amp;gt; client.mk.tmp&lt;br /&gt;
mv client.mk.tmp client.mk&lt;br /&gt;
&lt;br /&gt;
# Verify that client.mk only has the changes you expect&lt;br /&gt;
cvs diff -u client.mk&lt;br /&gt;
# Verify that client.mk has its sticky tag set properly.&lt;br /&gt;
cvs status client.mk&lt;br /&gt;
cvs commit -m &amp;quot;For $PRODUCT $VERSION, redirect client.mk onto the ${PRODUCT_TAG}_RELEASE tag.&amp;quot; client.mk&lt;br /&gt;
&lt;br /&gt;
# Move the release tag onto the modified version of the pull scripts.&lt;br /&gt;
# Note that you may have to wait to gain a lock, that is normal.&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RELEASE client.mk&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RC${RC} client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag Talkback===&lt;br /&gt;
* &#039;&#039;&#039;NOTE:&#039;&#039;&#039; to do this, you need access to talkback, currently only lilmatt has that access on our team.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the mofo tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
mkdir mofo/&lt;br /&gt;
cd mofo/&lt;br /&gt;
&lt;br /&gt;
# Branch Talkback like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/mofo rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mofo&lt;br /&gt;
&lt;br /&gt;
# Check out the talkback files from the branch you want to tag.&lt;br /&gt;
cvs -d :ext:cltbld@cvs.mozilla.org:/mofo co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  talkback/fullsoft 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cd talkback/fullsoft/&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag L10N ===&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the l10n tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RELEASE&lt;br /&gt;
mkdir l10n/&lt;br /&gt;
cd l10n/&lt;br /&gt;
&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&lt;br /&gt;
# Grab list of shipped locales&lt;br /&gt;
LOCALES=`awk &#039;{print $1}&#039; &amp;lt; ../cvsroot/mozilla/calendar/locales/shipped-locales`&lt;br /&gt;
&lt;br /&gt;
# Check out the l10n files from the branch you want to tag.&lt;br /&gt;
(for l in $LOCALES&lt;br /&gt;
do&lt;br /&gt;
  cvs -d ${CVSROOT}/l10n co \&lt;br /&gt;
    -r $BRANCH_TAG \&lt;br /&gt;
    -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
    l10n/${l}&lt;br /&gt;
done) 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
cd l10n/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use lilmatt&#039;s magic L10N script to compile Lightning into Locales.  You can find the script in {{bug|352546}}.  We will check it into the main tree somewhere (suggested name: m/c/lilmattsmagicbuildtricks).  You need to update the .dtd and .properties filenames for the current release.&lt;br /&gt;
&lt;br /&gt;
==Push tag forward on updated l10n files==&lt;br /&gt;
In the &amp;lt;code&amp;gt;l10n&amp;lt;/code&amp;gt; directory where you originally tagged l10n...&lt;br /&gt;
 cvs up -r SUNBIRD_0_5_BRANCH&lt;br /&gt;
 cvs tag -F SUNBIRD_0_5_RELEASE&lt;/div&gt;</summary>
		<author><name>Ause</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=64385</id>
		<title>Calendar:HowToRelease</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=64385"/>
		<updated>2007-08-02T14:15:32Z</updated>

		<summary type="html">&lt;p&gt;Ause: /* Create a branch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Release Process&#039;&#039;&#039; = &lt;br /&gt;
== Overview ==&lt;br /&gt;
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 detailed section below.&lt;br /&gt;
&lt;br /&gt;
To prepare for a release:&lt;br /&gt;
* Create a branch in mozilla repository&lt;br /&gt;
* Create a branch in l10n repository&lt;br /&gt;
* Change Tinderboxes to build form that branch&lt;br /&gt;
* Change the Version Number&lt;br /&gt;
* Create localized version of Lightning (to be done in the build - see Bug 352546)&lt;br /&gt;
* Tag files on the branch to make a RC if required&lt;br /&gt;
&lt;br /&gt;
When the final RC gets approved:&lt;br /&gt;
* Tag files on the branch with a release tag&lt;br /&gt;
* Create Mac universal binaries (to be done in the build too?)&lt;br /&gt;
* Move stuff around on stage server&lt;br /&gt;
&lt;br /&gt;
== Create a branch ==&lt;br /&gt;
NOTES:&lt;br /&gt;
* If you intend to see changes made for this release, esp. the fixes, in any later release, keep in mind to also commit them to the regular development branch.&lt;br /&gt;
* ${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&lt;br /&gt;
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_BRANCH&lt;br /&gt;
* ${RC_TAG} is made by appending _RC to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RC&lt;br /&gt;
* ${RELEASE_TAG} is made by appending _RELEASE to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RELEASE&lt;br /&gt;
&lt;br /&gt;
=== mozilla cvs repository ===&lt;br /&gt;
1. Create a branch from the branch you are releasing from. This creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== l10n cvs repository ===&lt;br /&gt;
&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on, changes meant to apper in the release are done on this branch.&lt;br /&gt;
&lt;br /&gt;
== Change Tinderboxes for Release ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;tinderbox-config.pl&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* be sure to make these changes on the cvs branch the desired tinderbox picks up.&lt;br /&gt;
&lt;br /&gt;
The following sample shows the changes done for linux when switching back from &amp;quot;release mode&amp;quot; to &amp;quot;nightly&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: tinder-config.pl&lt;br /&gt;
===================================================================&lt;br /&gt;
RCS file: /cvsroot/mozilla/tools/tinderbox-configs/sunbird/linux/tinder-config.pl,v&lt;br /&gt;
retrieving revision 1.26.2.8&lt;br /&gt;
retrieving revision 1.26.2.9&lt;br /&gt;
diff -u -r1.26.2.8 -r1.26.2.9&lt;br /&gt;
--- tinder-config.pl    24 May 2007 16:56:07 -0000  1.26.2.8&lt;br /&gt;
+++ tinder-config.pl    28 Jun 2007 20:21:07 -0000  1.26.2.9&lt;br /&gt;
@@ -49,8 +49,8 @@&lt;br /&gt;
 # Tests&lt;br /&gt;
 $CleanProfile             = 1;&lt;br /&gt;
 $ResetHomeDirForTests     = 1;&lt;br /&gt;
-$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
-#$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
+#$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
+$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
 $VendorName               = &#039;Mozilla&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$RunMozillaTests          = 1;  # Allow turning off of all tests if needed.&lt;br /&gt;
@@ -166,13 +166,8 @@&lt;br /&gt;
&lt;br /&gt;
 $LocalizationVersionFile = &#039;calendar/sunbird/config/version.txt&#039;;&lt;br /&gt;
&lt;br /&gt;
-#%WGetFiles = (&lt;br /&gt;
-#        &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
-#        &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
-#        );&lt;br /&gt;
-&lt;br /&gt;
 %WGetFiles = (&lt;br /&gt;
-         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/candidates/0.5rc1/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
+         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
          &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
          );&lt;br /&gt;
&lt;br /&gt;
@@ -190,8 +185,8 @@&lt;br /&gt;
 $BuildTree  = &#039;Mozilla1.8-l10n&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$BuildName = &#039;&#039;;&lt;br /&gt;
-#$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
-$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
+$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
+#$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
 #$BuildConfigDir = &#039;mozilla/config&#039;;&lt;br /&gt;
 #$Topsrcdir = &#039;mozilla&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create localized version of Lightning ==&lt;br /&gt;
&lt;br /&gt;
== Tag RC ==&lt;br /&gt;
At a specific point in time, when you feel it&#039;s right do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RC mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RC l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
of cause you can use something like &amp;quot;..._RCn&amp;quot; where &amp;quot;n&amp;quot; is the number of your release candidate.&lt;br /&gt;
&lt;br /&gt;
== Tag Release ==&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
Could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_RC ${PRODUCT_TAG}_RELEASE mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_RC ${PRODUCT_TAG}_RELEASE l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create Mac universal binaries ==&lt;br /&gt;
&lt;br /&gt;
== Move stuff around on stage server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
= &#039;&#039;&#039;Release Process Old Page&#039;&#039;&#039; = &lt;br /&gt;
keeping as reference for now - probaly remove when reworking is done.&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
== Create a branch == &lt;br /&gt;
1. Create a branch from the branch you are releasing from this creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH, you also need to note the time this was done on a page like [[Calendar:Release:Sunbird_0.5]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
Note time this is done: May 22, 21:37 CDT&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create a minibranch==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs ci -m&amp;quot;bumping version number on calendar/sunbird on minibranch only&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* remove firefox stuff from calendar/lightning/install.rdf&lt;br /&gt;
&lt;br /&gt;
== Tag the release ==&lt;br /&gt;
* run &amp;quot;date&amp;quot; before you start and use this as date stamp.&lt;br /&gt;
* the date should be in UTC and have this format: &amp;quot;yyyy-mm-dd hh:mm +0000&amp;quot;&lt;br /&gt;
* You need to use an RC here in case we have RC builds that way RCs will move forward to the release (you can have multiple RC&#039;s but there is only one release) so ${RC} becomes 1 for the first attempt to release 0.5&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
screen&lt;br /&gt;
cd .. (one up from mozilla)&lt;br /&gt;
mkdir -p tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
cd tags &amp;amp;&amp;amp; ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE &amp;amp;&amp;amp; \&lt;br /&gt;
  ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, check out mozilla/client.mk and any &amp;lt;something&amp;gt;/config/mozconfig files you need with statements like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
  cvs co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  mozilla/client.mk&lt;br /&gt;
  becomes: cvs co -r ${PRODUCT_TAG}_BRANCH -D &amp;quot;2007-05-23 04:00 +0000&amp;quot; mozilla/client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, you follow these steps:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pull version files from the version bump minibranch&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH ${APP}/app/module.ver \&lt;br /&gt;
 ${APP}/config/version.txt config/milestone.txt&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Create the RC tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RC${RC} 2&amp;gt;&amp;amp;1 | tee ../${BRANCH_TAG}_RC${RC}.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RC${RC}.log&lt;br /&gt;
&lt;br /&gt;
# Create a minibranch for the pull scripts so we can change them without&lt;br /&gt;
# changing anything on the original branch.&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Update client.mk to the minibranch you just created.&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Add the new product tag to the client.mk - need to replace the current branch ID&lt;br /&gt;
sed &amp;quot;s/${MOZILLA_1_8_BRANCH}/${PRODUCT_TAG}_RELEASE/g&amp;quot; client.mk &amp;gt; client.mk.tmp&lt;br /&gt;
mv client.mk.tmp client.mk&lt;br /&gt;
&lt;br /&gt;
# Verify that client.mk only has the changes you expect&lt;br /&gt;
cvs diff -u client.mk&lt;br /&gt;
# Verify that client.mk has its sticky tag set properly.&lt;br /&gt;
cvs status client.mk&lt;br /&gt;
cvs commit -m &amp;quot;For $PRODUCT $VERSION, redirect client.mk onto the ${PRODUCT_TAG}_RELEASE tag.&amp;quot; client.mk&lt;br /&gt;
&lt;br /&gt;
# Move the release tag onto the modified version of the pull scripts.&lt;br /&gt;
# Note that you may have to wait to gain a lock, that is normal.&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RELEASE client.mk&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RC${RC} client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag Talkback===&lt;br /&gt;
* &#039;&#039;&#039;NOTE:&#039;&#039;&#039; to do this, you need access to talkback, currently only lilmatt has that access on our team.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the mofo tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
mkdir mofo/&lt;br /&gt;
cd mofo/&lt;br /&gt;
&lt;br /&gt;
# Branch Talkback like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/mofo rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mofo&lt;br /&gt;
&lt;br /&gt;
# Check out the talkback files from the branch you want to tag.&lt;br /&gt;
cvs -d :ext:cltbld@cvs.mozilla.org:/mofo co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  talkback/fullsoft 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cd talkback/fullsoft/&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag L10N ===&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the l10n tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RELEASE&lt;br /&gt;
mkdir l10n/&lt;br /&gt;
cd l10n/&lt;br /&gt;
&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&lt;br /&gt;
# Grab list of shipped locales&lt;br /&gt;
LOCALES=`awk &#039;{print $1}&#039; &amp;lt; ../cvsroot/mozilla/calendar/locales/shipped-locales`&lt;br /&gt;
&lt;br /&gt;
# Check out the l10n files from the branch you want to tag.&lt;br /&gt;
(for l in $LOCALES&lt;br /&gt;
do&lt;br /&gt;
  cvs -d ${CVSROOT}/l10n co \&lt;br /&gt;
    -r $BRANCH_TAG \&lt;br /&gt;
    -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
    l10n/${l}&lt;br /&gt;
done) 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
cd l10n/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use lilmatt&#039;s magic L10N script to compile Lightning into Locales.  You can find the script in {{bug|352546}}.  We will check it into the main tree somewhere (suggested name: m/c/lilmattsmagicbuildtricks).  You need to update the .dtd and .properties filenames for the current release.&lt;br /&gt;
&lt;br /&gt;
==Push tag forward on updated l10n files==&lt;br /&gt;
In the &amp;lt;code&amp;gt;l10n&amp;lt;/code&amp;gt; directory where you originally tagged l10n...&lt;br /&gt;
 cvs up -r SUNBIRD_0_5_BRANCH&lt;br /&gt;
 cvs tag -F SUNBIRD_0_5_RELEASE&lt;/div&gt;</summary>
		<author><name>Ause</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Calendar_Talk:HowToRelease&amp;diff=64382</id>
		<title>Calendar Talk:HowToRelease</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Calendar_Talk:HowToRelease&amp;diff=64382"/>
		<updated>2007-08-02T13:59:27Z</updated>

		<summary type="html">&lt;p&gt;Ause: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;this is a prototype of what i think should be on this page. feel free to correct, extend or partially rewrite.&lt;/div&gt;</summary>
		<author><name>Ause</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=64381</id>
		<title>Calendar:HowToRelease</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=64381"/>
		<updated>2007-08-02T13:57:57Z</updated>

		<summary type="html">&lt;p&gt;Ause: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Release Process&#039;&#039;&#039; = &lt;br /&gt;
== Overview ==&lt;br /&gt;
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 detailed section below.&lt;br /&gt;
&lt;br /&gt;
To prepare for a release:&lt;br /&gt;
* Create a branch in mozilla repository&lt;br /&gt;
* Create a branch in l10n repository&lt;br /&gt;
* Change Tinderboxes to build form that branch&lt;br /&gt;
* Change the Version Number&lt;br /&gt;
* Create localized version of Lightning (to be done in the build - see Bug 352546)&lt;br /&gt;
* Tag files on the branch to make a RC if required&lt;br /&gt;
&lt;br /&gt;
When the final RC gets approved:&lt;br /&gt;
* Tag files on the branch with a release tag&lt;br /&gt;
* Create Mac universal binaries (to be done in the build too?)&lt;br /&gt;
* Move stuff around on stage server&lt;br /&gt;
&lt;br /&gt;
== Create a branch ==&lt;br /&gt;
NOTES:&lt;br /&gt;
* 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.&lt;br /&gt;
* ${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&lt;br /&gt;
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_BRANCH&lt;br /&gt;
* ${RC_TAG} is made by appending _RC to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RC&lt;br /&gt;
* ${RELEASE_TAG} is made by appending _RELEASE to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RELEASE&lt;br /&gt;
&lt;br /&gt;
=== mozilla cvs repository ===&lt;br /&gt;
1. Create a branch from the branch you are releasing from. This creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== l10n cvs repository ===&lt;br /&gt;
&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on, changes meant to apper in the release are done on this branch.&lt;br /&gt;
&lt;br /&gt;
== Change Tinderboxes for Release ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;tinderbox-config.pl&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* be sure to make these changes on the cvs branch the desired tinderbox picks up.&lt;br /&gt;
&lt;br /&gt;
The following sample shows the changes done for linux when switching back from &amp;quot;release mode&amp;quot; to &amp;quot;nightly&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: tinder-config.pl&lt;br /&gt;
===================================================================&lt;br /&gt;
RCS file: /cvsroot/mozilla/tools/tinderbox-configs/sunbird/linux/tinder-config.pl,v&lt;br /&gt;
retrieving revision 1.26.2.8&lt;br /&gt;
retrieving revision 1.26.2.9&lt;br /&gt;
diff -u -r1.26.2.8 -r1.26.2.9&lt;br /&gt;
--- tinder-config.pl    24 May 2007 16:56:07 -0000  1.26.2.8&lt;br /&gt;
+++ tinder-config.pl    28 Jun 2007 20:21:07 -0000  1.26.2.9&lt;br /&gt;
@@ -49,8 +49,8 @@&lt;br /&gt;
 # Tests&lt;br /&gt;
 $CleanProfile             = 1;&lt;br /&gt;
 $ResetHomeDirForTests     = 1;&lt;br /&gt;
-$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
-#$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
+#$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
+$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
 $VendorName               = &#039;Mozilla&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$RunMozillaTests          = 1;  # Allow turning off of all tests if needed.&lt;br /&gt;
@@ -166,13 +166,8 @@&lt;br /&gt;
&lt;br /&gt;
 $LocalizationVersionFile = &#039;calendar/sunbird/config/version.txt&#039;;&lt;br /&gt;
&lt;br /&gt;
-#%WGetFiles = (&lt;br /&gt;
-#        &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
-#        &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
-#        );&lt;br /&gt;
-&lt;br /&gt;
 %WGetFiles = (&lt;br /&gt;
-         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/candidates/0.5rc1/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
+         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
          &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
          );&lt;br /&gt;
&lt;br /&gt;
@@ -190,8 +185,8 @@&lt;br /&gt;
 $BuildTree  = &#039;Mozilla1.8-l10n&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$BuildName = &#039;&#039;;&lt;br /&gt;
-#$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
-$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
+$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
+#$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
 #$BuildConfigDir = &#039;mozilla/config&#039;;&lt;br /&gt;
 #$Topsrcdir = &#039;mozilla&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create localized version of Lightning ==&lt;br /&gt;
&lt;br /&gt;
== Tag RC ==&lt;br /&gt;
At a specific point in time, when you feel it&#039;s right do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RC mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RC l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
of cause you can use something like &amp;quot;..._RCn&amp;quot; where &amp;quot;n&amp;quot; is the number of your release candidate.&lt;br /&gt;
&lt;br /&gt;
== Tag Release ==&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
Could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_RC ${PRODUCT_TAG}_RELEASE mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_RC ${PRODUCT_TAG}_RELEASE l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create Mac universal binaries ==&lt;br /&gt;
&lt;br /&gt;
== Move stuff around on stage server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
= &#039;&#039;&#039;Release Process Old Page&#039;&#039;&#039; = &lt;br /&gt;
keeping as reference for now - probaly remove when reworking is done.&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
== Create a branch == &lt;br /&gt;
1. Create a branch from the branch you are releasing from this creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH, you also need to note the time this was done on a page like [[Calendar:Release:Sunbird_0.5]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
Note time this is done: May 22, 21:37 CDT&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create a minibranch==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs ci -m&amp;quot;bumping version number on calendar/sunbird on minibranch only&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* remove firefox stuff from calendar/lightning/install.rdf&lt;br /&gt;
&lt;br /&gt;
== Tag the release ==&lt;br /&gt;
* run &amp;quot;date&amp;quot; before you start and use this as date stamp.&lt;br /&gt;
* the date should be in UTC and have this format: &amp;quot;yyyy-mm-dd hh:mm +0000&amp;quot;&lt;br /&gt;
* You need to use an RC here in case we have RC builds that way RCs will move forward to the release (you can have multiple RC&#039;s but there is only one release) so ${RC} becomes 1 for the first attempt to release 0.5&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
screen&lt;br /&gt;
cd .. (one up from mozilla)&lt;br /&gt;
mkdir -p tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
cd tags &amp;amp;&amp;amp; ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE &amp;amp;&amp;amp; \&lt;br /&gt;
  ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, check out mozilla/client.mk and any &amp;lt;something&amp;gt;/config/mozconfig files you need with statements like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
  cvs co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  mozilla/client.mk&lt;br /&gt;
  becomes: cvs co -r ${PRODUCT_TAG}_BRANCH -D &amp;quot;2007-05-23 04:00 +0000&amp;quot; mozilla/client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, you follow these steps:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pull version files from the version bump minibranch&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH ${APP}/app/module.ver \&lt;br /&gt;
 ${APP}/config/version.txt config/milestone.txt&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Create the RC tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RC${RC} 2&amp;gt;&amp;amp;1 | tee ../${BRANCH_TAG}_RC${RC}.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RC${RC}.log&lt;br /&gt;
&lt;br /&gt;
# Create a minibranch for the pull scripts so we can change them without&lt;br /&gt;
# changing anything on the original branch.&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Update client.mk to the minibranch you just created.&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Add the new product tag to the client.mk - need to replace the current branch ID&lt;br /&gt;
sed &amp;quot;s/${MOZILLA_1_8_BRANCH}/${PRODUCT_TAG}_RELEASE/g&amp;quot; client.mk &amp;gt; client.mk.tmp&lt;br /&gt;
mv client.mk.tmp client.mk&lt;br /&gt;
&lt;br /&gt;
# Verify that client.mk only has the changes you expect&lt;br /&gt;
cvs diff -u client.mk&lt;br /&gt;
# Verify that client.mk has its sticky tag set properly.&lt;br /&gt;
cvs status client.mk&lt;br /&gt;
cvs commit -m &amp;quot;For $PRODUCT $VERSION, redirect client.mk onto the ${PRODUCT_TAG}_RELEASE tag.&amp;quot; client.mk&lt;br /&gt;
&lt;br /&gt;
# Move the release tag onto the modified version of the pull scripts.&lt;br /&gt;
# Note that you may have to wait to gain a lock, that is normal.&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RELEASE client.mk&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RC${RC} client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag Talkback===&lt;br /&gt;
* &#039;&#039;&#039;NOTE:&#039;&#039;&#039; to do this, you need access to talkback, currently only lilmatt has that access on our team.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the mofo tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
mkdir mofo/&lt;br /&gt;
cd mofo/&lt;br /&gt;
&lt;br /&gt;
# Branch Talkback like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/mofo rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mofo&lt;br /&gt;
&lt;br /&gt;
# Check out the talkback files from the branch you want to tag.&lt;br /&gt;
cvs -d :ext:cltbld@cvs.mozilla.org:/mofo co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  talkback/fullsoft 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cd talkback/fullsoft/&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag L10N ===&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the l10n tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RELEASE&lt;br /&gt;
mkdir l10n/&lt;br /&gt;
cd l10n/&lt;br /&gt;
&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&lt;br /&gt;
# Grab list of shipped locales&lt;br /&gt;
LOCALES=`awk &#039;{print $1}&#039; &amp;lt; ../cvsroot/mozilla/calendar/locales/shipped-locales`&lt;br /&gt;
&lt;br /&gt;
# Check out the l10n files from the branch you want to tag.&lt;br /&gt;
(for l in $LOCALES&lt;br /&gt;
do&lt;br /&gt;
  cvs -d ${CVSROOT}/l10n co \&lt;br /&gt;
    -r $BRANCH_TAG \&lt;br /&gt;
    -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
    l10n/${l}&lt;br /&gt;
done) 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
cd l10n/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use lilmatt&#039;s magic L10N script to compile Lightning into Locales.  You can find the script in {{bug|352546}}.  We will check it into the main tree somewhere (suggested name: m/c/lilmattsmagicbuildtricks).  You need to update the .dtd and .properties filenames for the current release.&lt;br /&gt;
&lt;br /&gt;
==Push tag forward on updated l10n files==&lt;br /&gt;
In the &amp;lt;code&amp;gt;l10n&amp;lt;/code&amp;gt; directory where you originally tagged l10n...&lt;br /&gt;
 cvs up -r SUNBIRD_0_5_BRANCH&lt;br /&gt;
 cvs tag -F SUNBIRD_0_5_RELEASE&lt;/div&gt;</summary>
		<author><name>Ause</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=64380</id>
		<title>Calendar:HowToRelease</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Calendar:HowToRelease&amp;diff=64380"/>
		<updated>2007-08-02T13:56:08Z</updated>

		<summary type="html">&lt;p&gt;Ause: /* Release Process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Release Process&#039;&#039;&#039; = &lt;br /&gt;
== Overview ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To prepare for a release:&lt;br /&gt;
* Create a branch in mozilla repository&lt;br /&gt;
* Create a branch in l10n repository&lt;br /&gt;
* Change Tinderboxes to build form that branch&lt;br /&gt;
* Change the Version Number&lt;br /&gt;
* Create localized version of Lightning (to be done in the build - see Bug 352546)&lt;br /&gt;
* Tag files on the branch to makr a RC if required&lt;br /&gt;
&lt;br /&gt;
When the final RC gets approved:&lt;br /&gt;
* Tag files on the branch with a release tag&lt;br /&gt;
* Create Mac universal binaries (to be done in the build too?)&lt;br /&gt;
* Move stuff around on stage server &lt;br /&gt;
&lt;br /&gt;
== Create a branch ==&lt;br /&gt;
NOTES:&lt;br /&gt;
* 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.&lt;br /&gt;
* ${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&lt;br /&gt;
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_BRANCH&lt;br /&gt;
* ${RC_TAG} is made by appending _RC to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RC&lt;br /&gt;
* ${RELEASE_TAG} is made by appending _RELEASE to the ${PRODUCT_TAG} for example, SUNBIRD_0_7_RELEASE&lt;br /&gt;
&lt;br /&gt;
=== mozilla cvs repository ===&lt;br /&gt;
1. Create a branch from the branch you are releasing from. This creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== l10n cvs repository ===&lt;br /&gt;
&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on, changes meant to apper in the release are done on this branch.&lt;br /&gt;
&lt;br /&gt;
== Change Tinderboxes for Release ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;tinderbox-config.pl&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
* be sure to make these changes on the cvs branch the desired tinderbox picks up.&lt;br /&gt;
&lt;br /&gt;
The following sample shows the changes done for linux when switching back from &amp;quot;release mode&amp;quot; to &amp;quot;nightly&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: tinder-config.pl&lt;br /&gt;
===================================================================&lt;br /&gt;
RCS file: /cvsroot/mozilla/tools/tinderbox-configs/sunbird/linux/tinder-config.pl,v&lt;br /&gt;
retrieving revision 1.26.2.8&lt;br /&gt;
retrieving revision 1.26.2.9&lt;br /&gt;
diff -u -r1.26.2.8 -r1.26.2.9&lt;br /&gt;
--- tinder-config.pl    24 May 2007 16:56:07 -0000  1.26.2.8&lt;br /&gt;
+++ tinder-config.pl    28 Jun 2007 20:21:07 -0000  1.26.2.9&lt;br /&gt;
@@ -49,8 +49,8 @@&lt;br /&gt;
 # Tests&lt;br /&gt;
 $CleanProfile             = 1;&lt;br /&gt;
 $ResetHomeDirForTests     = 1;&lt;br /&gt;
-$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
-#$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
+#$ProductName              = &amp;quot;Sunbird&amp;quot;;&lt;br /&gt;
+$ProductName              = &#039;Calendar&#039;;&lt;br /&gt;
 $VendorName               = &#039;Mozilla&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$RunMozillaTests          = 1;  # Allow turning off of all tests if needed.&lt;br /&gt;
@@ -166,13 +166,8 @@&lt;br /&gt;
&lt;br /&gt;
 $LocalizationVersionFile = &#039;calendar/sunbird/config/version.txt&#039;;&lt;br /&gt;
&lt;br /&gt;
-#%WGetFiles = (&lt;br /&gt;
-#        &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
-#        &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
-#        );&lt;br /&gt;
-&lt;br /&gt;
 %WGetFiles = (&lt;br /&gt;
-         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/candidates/0.5rc1/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
+         &amp;quot;http://stage.mozilla.org/pub/mozilla.org/calendar/sunbird/nightly/latest-mozilla1.8/sunbird-%version%.en-US.linux-i686.tar.gz&amp;quot; =&amp;gt;&lt;br /&gt;
          &amp;quot;/builds/tinderbox/Sb-Mozilla1.8-l10n/Linux_2.4.21-37.EL_Clobber/sunbird.tar.gz&amp;quot;&lt;br /&gt;
          );&lt;br /&gt;
&lt;br /&gt;
@@ -190,8 +185,8 @@&lt;br /&gt;
 $BuildTree  = &#039;Mozilla1.8-l10n&#039;;&lt;br /&gt;
&lt;br /&gt;
 #$BuildName = &#039;&#039;;&lt;br /&gt;
-#$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
-$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
+$BuildTag = &#039;MOZILLA_1_8_BRANCH&#039;;&lt;br /&gt;
+#$BuildTag = &#039;SUNBIRD_0_5_RELEASE&#039;;&lt;br /&gt;
 #$BuildConfigDir = &#039;mozilla/config&#039;;&lt;br /&gt;
 #$Topsrcdir = &#039;mozilla&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create localized version of Lightning ==&lt;br /&gt;
&lt;br /&gt;
== Tag RC ==&lt;br /&gt;
At a specific point in time, when you feel it&#039;s right do&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RC mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_BRANCH ${PRODUCT_TAG}_RC l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
of cause you can use something like &amp;quot;..._RCn&amp;quot; where &amp;quot;n&amp;quot; is the number of your release candidate.&lt;br /&gt;
&lt;br /&gt;
== Tag Release ==&lt;br /&gt;
&lt;br /&gt;
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...&lt;br /&gt;
&lt;br /&gt;
Could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_RC ${PRODUCT_TAG}_RELEASE mozilla&lt;br /&gt;
cvs rtag -r ${PRODUCT_TAG}_RC ${PRODUCT_TAG}_RELEASE l10n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create Mac universal binaries ==&lt;br /&gt;
&lt;br /&gt;
== Move stuff around on stage server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
= &#039;&#039;&#039;Release Process Old Page&#039;&#039;&#039; = &lt;br /&gt;
keeping as reference for now - probaly remove when reworking is done.&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
== Create a branch == &lt;br /&gt;
1. Create a branch from the branch you are releasing from this creates a ${PRODUCT_TAG}_BRANCH from the MOZILLA_1_8_BRANCH, you also need to note the time this was done on a page like [[Calendar:Release:Sunbird_0.5]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla&lt;br /&gt;
Note time this is done: May 22, 21:37 CDT&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Test that the branch was properly created by checking out from the branch.&lt;br /&gt;
&amp;lt;pre&amp;gt; cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change the Version Number ==&lt;br /&gt;
* You check out the branch you just created - use standard &amp;quot;check out code from mozilla cvs method&amp;quot;, just substitute in the new branch for your branch parameter&lt;br /&gt;
* On this branch, you change the follwing:&lt;br /&gt;
    * calendar/sunbird/app/module.ver&lt;br /&gt;
    * calendar/sunbird/config/version.txt&lt;br /&gt;
* Then you:&lt;br /&gt;
&amp;lt;pre&amp;gt;cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\&lt;br /&gt;
 mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create a minibranch==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \&lt;br /&gt;
 calendar/sunbird/config/version.txt&lt;br /&gt;
cvs ci -m&amp;quot;bumping version number on calendar/sunbird on minibranch only&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* remove firefox stuff from calendar/lightning/install.rdf&lt;br /&gt;
&lt;br /&gt;
== Tag the release ==&lt;br /&gt;
* run &amp;quot;date&amp;quot; before you start and use this as date stamp.&lt;br /&gt;
* the date should be in UTC and have this format: &amp;quot;yyyy-mm-dd hh:mm +0000&amp;quot;&lt;br /&gt;
* You need to use an RC here in case we have RC builds that way RCs will move forward to the release (you can have multiple RC&#039;s but there is only one release) so ${RC} becomes 1 for the first attempt to release 0.5&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
screen&lt;br /&gt;
cd .. (one up from mozilla)&lt;br /&gt;
mkdir -p tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
cd tags &amp;amp;&amp;amp; ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE &amp;amp;&amp;amp; \&lt;br /&gt;
  ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, check out mozilla/client.mk and any &amp;lt;something&amp;gt;/config/mozconfig files you need with statements like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
  cvs co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  mozilla/client.mk&lt;br /&gt;
  becomes: cvs co -r ${PRODUCT_TAG}_BRANCH -D &amp;quot;2007-05-23 04:00 +0000&amp;quot; mozilla/client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Next, you follow these steps:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pull version files from the version bump minibranch&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH ${APP}/app/module.ver \&lt;br /&gt;
 ${APP}/config/version.txt config/milestone.txt&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Create the RC tag.&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RC${RC} 2&amp;gt;&amp;amp;1 | tee ../${BRANCH_TAG}_RC${RC}.log&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RC${RC}.log&lt;br /&gt;
&lt;br /&gt;
# Create a minibranch for the pull scripts so we can change them without&lt;br /&gt;
# changing anything on the original branch.&lt;br /&gt;
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Update client.mk to the minibranch you just created.&lt;br /&gt;
cvs up -r ${PRODUCT_TAG}_MINIBRANCH client.mk&lt;br /&gt;
&lt;br /&gt;
# Add the new product tag to the client.mk - need to replace the current branch ID&lt;br /&gt;
sed &amp;quot;s/${MOZILLA_1_8_BRANCH}/${PRODUCT_TAG}_RELEASE/g&amp;quot; client.mk &amp;gt; client.mk.tmp&lt;br /&gt;
mv client.mk.tmp client.mk&lt;br /&gt;
&lt;br /&gt;
# Verify that client.mk only has the changes you expect&lt;br /&gt;
cvs diff -u client.mk&lt;br /&gt;
# Verify that client.mk has its sticky tag set properly.&lt;br /&gt;
cvs status client.mk&lt;br /&gt;
cvs commit -m &amp;quot;For $PRODUCT $VERSION, redirect client.mk onto the ${PRODUCT_TAG}_RELEASE tag.&amp;quot; client.mk&lt;br /&gt;
&lt;br /&gt;
# Move the release tag onto the modified version of the pull scripts.&lt;br /&gt;
# Note that you may have to wait to gain a lock, that is normal.&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RELEASE client.mk&lt;br /&gt;
cvs tag -F ${PRODUCT_TAG}_RC${RC} client.mk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag Talkback===&lt;br /&gt;
* &#039;&#039;&#039;NOTE:&#039;&#039;&#039; to do this, you need access to talkback, currently only lilmatt has that access on our team.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the mofo tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RC${RC}&lt;br /&gt;
mkdir mofo/&lt;br /&gt;
cd mofo/&lt;br /&gt;
&lt;br /&gt;
# Branch Talkback like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/mofo rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mofo&lt;br /&gt;
&lt;br /&gt;
# Check out the talkback files from the branch you want to tag.&lt;br /&gt;
cvs -d :ext:cltbld@cvs.mozilla.org:/mofo co \&lt;br /&gt;
  -r $BRANCH_TAG \&lt;br /&gt;
  -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
  talkback/fullsoft 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
# Create the tag.&lt;br /&gt;
cd talkback/fullsoft/&lt;br /&gt;
cvs tag ${PRODUCT_TAG}_RELEASE 2&amp;gt;&amp;amp;1 | tee ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&lt;br /&gt;
# Look for errors&lt;br /&gt;
grep -v &amp;quot;^T&amp;quot; ../${PRODUCT_TAG}_RELEASE.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag L10N ===&lt;br /&gt;
* Note that you will need L10N access to do this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create the l10n tag directory.&lt;br /&gt;
cd ~cltbld/tags/${PRODUCT_TAG}_RELEASE&lt;br /&gt;
mkdir l10n/&lt;br /&gt;
cd l10n/&lt;br /&gt;
&lt;br /&gt;
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:&lt;br /&gt;
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n&lt;br /&gt;
&lt;br /&gt;
# Grab list of shipped locales&lt;br /&gt;
LOCALES=`awk &#039;{print $1}&#039; &amp;lt; ../cvsroot/mozilla/calendar/locales/shipped-locales`&lt;br /&gt;
&lt;br /&gt;
# Check out the l10n files from the branch you want to tag.&lt;br /&gt;
(for l in $LOCALES&lt;br /&gt;
do&lt;br /&gt;
  cvs -d ${CVSROOT}/l10n co \&lt;br /&gt;
    -r $BRANCH_TAG \&lt;br /&gt;
    -D &amp;quot;$PULL_DATE&amp;quot; \&lt;br /&gt;
    l10n/${l}&lt;br /&gt;
done) 2&amp;gt;&amp;amp;1 | tee checkout-output.log&lt;br /&gt;
&lt;br /&gt;
cd l10n/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use lilmatt&#039;s magic L10N script to compile Lightning into Locales.  You can find the script in {{bug|352546}}.  We will check it into the main tree somewhere (suggested name: m/c/lilmattsmagicbuildtricks).  You need to update the .dtd and .properties filenames for the current release.&lt;br /&gt;
&lt;br /&gt;
==Push tag forward on updated l10n files==&lt;br /&gt;
In the &amp;lt;code&amp;gt;l10n&amp;lt;/code&amp;gt; directory where you originally tagged l10n...&lt;br /&gt;
 cvs up -r SUNBIRD_0_5_BRANCH&lt;br /&gt;
 cvs tag -F SUNBIRD_0_5_RELEASE&lt;/div&gt;</summary>
		<author><name>Ause</name></author>
	</entry>
</feed>