Calendar:HowToRelease: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 2: Line 2:


NOTES:  
NOTES:  
* ${BRANCH_TAG} is the header for the BRANCH - for sunbird 0.5 this was SUNBIRD_0_5, other releases should follow the same convention
* ${PRODUCT_TAG} is the header for the BRANCH - for sunbird 0.5 this was SUNBIRD_0_5, other releases should follow the same convention
* ${BRANCH_TAG} is made by appending _BRANCH to the ${PRODUCT_TAG} for example, SUNBIRD_0_5_BRANCH


== Create a branch ==  
== Create a branch ==  
1. Create a branch from the branch you are releasing from this creates a ${BRANCH_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]].
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]].
<pre>
<pre>
cvs rtag -r MOZILLA_1_8_BRANCH -b ${BRANCH_TAG}_BRANCH mozilla
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla
Note time this is done: May 22, 21:37 CDT</pre>
Note time this is done: May 22, 21:37 CDT</pre>
2. Test that the branch was properly created by checking out from the branch.
2. Test that the branch was properly created by checking out from the branch.
Line 18: Line 19:
     * calendar/sunbird/config/version.txt
     * calendar/sunbird/config/version.txt
* Then you:
* Then you:
<pre>cvs -d ${CVSROOT} co -r ${BRANCH_TAG}_BRANCH\
<pre>cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\
  mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt
  mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt
</pre>
</pre>
Line 24: Line 25:
==Create a minibranch==
==Create a minibranch==
<pre>
<pre>
cvs tag -b ${BRANCH_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \
  calendar/sunbird/config/version.txt
  calendar/sunbird/config/version.txt
cvs up -r ${BRANCH_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \
cvs up -r ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \
  calendar/sunbird/config/version.txt
  calendar/sunbird/config/version.txt
cvs ci -m"bumping version number on calendar/sunbird on minibranch only"
cvs ci -m"bumping version number on calendar/sunbird on minibranch only"
Line 40: Line 41:
screen
screen
cd .. (one up from mozilla)
cd .. (one up from mozilla)
mkdir -p tags/${BRANCH_TAG}_RC${RC}
mkdir -p tags/${PRODUCT_TAG}_RC${RC}
cd tags && ln -s ${BRANCH_TAG}_RC${RC} ${BRANCH_TAG}_RELEASE && \
cd tags && ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE && \
   ln -s ${BRANCH_TAG}_RC${RC} ${BRANCH_TAG}_RELEASE
   ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE
</pre>
</pre>
Next, check out mozilla/client.mk and any <something>/config/mozconfig files you need with statements like this:
* Next, check out mozilla/client.mk and any <something>/config/mozconfig files you need with statements like this:
<pre>   
<pre>   
   cvs co \
   cvs co \
Line 50: Line 51:
   -D "$PULL_DATE" \
   -D "$PULL_DATE" \
   mozilla/client.mk
   mozilla/client.mk
   becomes: cvs co -r ${BRANCH_TAG}_BRANCH -D "2007-05-23 04:00 +0000" mozilla/client.mk
   becomes: cvs co -r ${PRODUCT_TAG}_BRANCH -D "2007-05-23 04:00 +0000" mozilla/client.mk
</pre>
* Next, you follow these steps:
<pre>
# pull version files from the version bump minibranch
cvs up -r ${PRODUCT_TAG}_MINIBRANCH ${APP}/app/module.ver \
${APP}/config/version.txt config/milestone.txt
 
# Create the tag.
cvs tag ${PRODUCT_TAG}_RELEASE 2>&1 | tee ../${PRODUCT_TAG}_RELEASE.log
# Look for errors
grep -v "^T" ../${PRODUCT_TAG}_RELEASE.log
 
# Create the RC tag.
cvs tag ${PRODUCT_TAG}_RC${RC} 2>&1 | tee ../${BRANCH_TAG}_RC${RC}.log
# Look for errors
grep -v "^T" ../${PRODUCT_TAG}_RC${RC}.log
 
# Create a minibranch for the pull scripts so we can change them without
# changing anything on the original branch.
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH client.mk
 
# Update client.mk to the minibranch you just created.
cvs up -r ${PRODUCT_TAG}_MINIBRANCH client.mk
 
# Add the new product tag to the client.mk - need to replace the current branch ID
sed "s/${MOZILLA_1_8_BRANCH}/${PRODUCT_TAG}_RELEASE/g" client.mk > client.mk.tmp
mv client.mk.tmp client.mk
 
# Verify that client.mk only has the changes you expect
cvs diff -u client.mk
# Verify that client.mk has its sticky tag set properly.
cvs status client.mk
cvs commit -m "For $PRODUCT $VERSION, redirect client.mk onto the ${PRODUCT_TAG}_RELEASE tag." client.mk
 
# Move the release tag onto the modified version of the pull scripts.
# Note that you may have to wait to gain a lock, that is normal.
cvs tag -F ${PRODUCT_TAG}_RELEASE client.mk
cvs tag -F ${PRODUCT_TAG}_RC${RC} client.mk
</pre>
 
=== Tag Talkback===
* '''NOTE:''' to do this, you need access to talkback, currently only lilmatt has that access on our team.
<pre>
# Create the mofo tag directory.
cd ~cltbld/tags/${PRODUCT_TAG}_RC${RC}
mkdir mofo/
cd mofo/
 
# Branch Talkback like we did for the SUNBIRD_0_5_RELEASE earlier:
cvs -d ${CVSROOT}/mofo rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mofo
 
# Check out the talkback files from the branch you want to tag.
cvs -d :ext:cltbld@cvs.mozilla.org:/mofo co \
  -r $BRANCH_TAG \
  -D "$PULL_DATE" \
  talkback/fullsoft 2>&1 | tee checkout-output.log
 
# Create the tag.
cd talkback/fullsoft/
cvs tag ${PRODUCT_TAG}_RELEASE 2>&1 | tee ../${PRODUCT_TAG}_RELEASE.log
 
# Look for errors
grep -v "^T" ../${PRODUCT_TAG}_RELEASE.log
</pre>
 
=== Tag L10N ===
* Note that you will need L10N access to do this
<pre>
# Create the l10n tag directory.
cd ~cltbld/tags/${PRODUCT_TAG}_RELEASE
mkdir l10n/
cd l10n/
 
# Branch Locales like we did for the SUNBIRD_0_5_RELEASE earlier:
cvs -d ${CVSROOT}/l10n rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH l10n
 
# Grab list of shipped locales
LOCALES=`awk '{print $1}' < ../cvsroot/mozilla/calendar/locales/shipped-locales`
 
# Check out the l10n files from the branch you want to tag.
(for l in $LOCALES
do
  cvs -d ${CVSROOT}/l10n co \
    -r $BRANCH_TAG \
    -D "$PULL_DATE" \
    l10n/${l}
done) 2>&1 | tee checkout-output.log
 
cd l10n/
</pre>
</pre>
Confirmed users
3,816

edits