Calendar:HowToRelease
Jump to navigation
Jump to search
Release Process
NOTES:
- ${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
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.
cvs rtag -r MOZILLA_1_8_BRANCH -b ${PRODUCT_TAG}_BRANCH mozilla Note time this is done: May 22, 21:37 CDT
2. Test that the branch was properly created by checking out from the branch.
cvs co -r ${BRANCH_TAG}_BRANCH mozilla/calendar
Change the Version Number
- You check out the branch you just created - use standard "check out code from mozilla cvs method", just substitute in the new branch for your branch parameter
- On this branch, you change the follwing:
* calendar/sunbird/app/module.ver * calendar/sunbird/config/version.txt
- Then you:
cvs -d ${CVSROOT} co -r ${PRODUCT_TAG}_BRANCH\ mozilla/calendar/sunbird/app/module.ver mozilla/calendar/sunbird/config/version.txt
Create a minibranch
cvs tag -b ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \ calendar/sunbird/config/version.txt cvs up -r ${PRODUCT_TAG}_MINIBRANCH calendar/sunbird/app/module.ver \ calendar/sunbird/config/version.txt cvs ci -m"bumping version number on calendar/sunbird on minibranch only"
- remove firefox stuff from calendar/lightning/install.rdf
Tag the release
- run "date" before you start and use this as date stamp.
- the date should be in UTC and have this format: "yyyy-mm-dd hh:mm +0000"
- 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's but there is only one release) so ${RC} becomes 1 for the first attempt to release 0.5
screen cd .. (one up from mozilla) mkdir -p tags/${PRODUCT_TAG}_RC${RC} cd tags && ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE && \ ln -s ${PRODUCT_TAG}_RC${RC} ${PRODUCT_TAG}_RELEASE
- Next, check out mozilla/client.mk and any <something>/config/mozconfig files you need with statements like this:
cvs co \ -r $BRANCH_TAG \ -D "$PULL_DATE" \ mozilla/client.mk becomes: cvs co -r ${PRODUCT_TAG}_BRANCH -D "2007-05-23 04:00 +0000" mozilla/client.mk
- Next, you follow these steps:
# 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
Tag Talkback
- NOTE: to do this, you need access to talkback, currently only lilmatt has that access on our team.
# 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
Tag L10N
- Note that you will need L10N access to do this
# 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/
Use lilmatt'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.
Push tag forward on updated l10n files
In the l10n
directory where you originally tagged l10n...
cvs up -r SUNBIRD_0_5_BRANCH cvs tag -F SUNBIRD_0_5_RELEASE