SeaMonkey:Release Process: Difference between revisions

Jump to navigation Jump to search
change to reflect some additions I made for 1.1.5 release
(fill in "Moving An Existing Release Tag" section)
(change to reflect some additions I made for 1.1.5 release)
Line 13: Line 13:
  CVS_LOGIN=kairo%kairo.at
  CVS_LOGIN=kairo%kairo.at
  CVS_REPOS="-d :ext:$CVS_LOGIN@cvs.mozilla.org:/cvsroot"
  CVS_REPOS="-d :ext:$CVS_LOGIN@cvs.mozilla.org:/cvsroot"
  PULLTAG=FIREFOX_2_0_0_8_RELEASE
  PULLTAG=GECKO181_20071004_RELBRANCH
  #PULLTAG=MOZILLA_1_8_BRANCH
  #PULLTAG=MOZILLA_1_8_BRANCH
  MINIBRANCH=SEAMONKEY_1_1_5_MINIBRANCH
  MINIBRANCH=SEAMONKEY_1_1_5_MINIBRANCH
  RELEASETAG=SEAMONKEY_1_1_5_RELEASE
  RELEASETAG=SEAMONKEY_1_1_5_RELEASE
  #CO_OPTS=MOZ_CO_DATE="2007-01-09 13:00:00"
  CO_OPTS=MOZ_CO_DATE=\"`date +"%F %T"`\"
  CO_OPTS=<br>
  #CO_OPTS=<br>
  echo "cvs $CVS_REPOS checkout -r $PULLTAG $CO_OPTS mozilla/client.mk"
  echo "cvs $CVS_REPOS checkout -r $PULLTAG $CO_OPTS mozilla/client.mk"
  echo "cd mozilla"
  echo "cd mozilla"
  echo "make -f client.mk checkout $CO_OPTS MOZ_CO_PROJECT=suite"
  echo "make -f client.mk checkout $CO_OPTS MOZ_CO_PROJECT=suite"
Line 28: Line 28:
  echo "rm ../client.mk.orig"
  echo "rm ../client.mk.orig"
  echo "cvs $CVS_REPOS commit -r $MINIBRANCH -m 'edit tags to pull from $RELEASETAG' client.mk"
  echo "cvs $CVS_REPOS commit -r $MINIBRANCH -m 'edit tags to pull from $RELEASETAG' client.mk"
echo "mv xpfe/bootstrap/version.txt ../version.txt.orig"
echo "sed 's/pre//' ../version.txt.orig > xpfe/bootstrap/version.txt"
echo "rm ../version.txt.orig"
echo "mv xpfe/bootstrap/module.ver ../module.ver.orig"
echo "sed 's/pre//' ../module.ver.orig > xpfe/bootstrap/module.ver"
echo "rm ../module.ver.orig"
echo "cvs $CVS_REPOS commit -r $PULLTAG -m 'remove \"pre\" postfix from SeaMonkey version on release branch' xpfe/bootstrap/module.ver xpfe/bootstrap/version.txt"
  echo "cvs $CVS_REPOS tag -F $RELEASETAG client.mk"
  echo "cvs $CVS_REPOS tag -F $RELEASETAG client.mk"
  echo "cvs $CVS_REPOS tag $RELEASETAG"
  echo "cvs $CVS_REPOS tag $RELEASETAG"


This outputs a list of commands to run for the tagging process, which I execute step by step, checking that the right thing is actually done. SeaMonkey usually pulls from a Firefox release tag, so we have a well-defined state to pull. If we don't pull a release tag but a branch tag, I also set the CO_OPTS variable to use an exact date so that the tree is also well-defined.
This outputs a list of commands to run for the tagging process, which I execute step by step, checking that the right thing is actually done. SeaMonkey usually pulls from a not-much-changing Gecko release branch near to a Firefox release tag, so we usually have a well-defined state to pull, but to make sure when pulling from that branch, I also set the CO_OPTS variable to use an exact date (automatically to the time of pulling in that script) so that the tree is 100% well-defined.


The commands pull a client.mk and use it to pull a complete suite (SeaMonkey) source checkout. We're only tagging files that are part of this checkout. For versions where building own builds with the old calendar extension was still supported, we also included calendar in that pull and in our tag as well as our source tarballs (see later), but nowadays the suite pull is enough.
The commands pull a client.mk and use it to pull a complete suite (SeaMonkey) source checkout. We're only tagging files that are part of this checkout. For versions where building own builds with the old calendar extension was still supported, we also included calendar in that pull and in our tag as well as our source tarballs (see later), but nowadays the suite pull is enough.


The first commit to client.mk does not show up anywhere actually, so the message is useless, but I remember that CVS didn't correctly realize that it had the state of that minibranch and might choke afterwards. The mv/sed/rm stuff is to make the client.mk pull our new SeaMonkey release tag, the second commit to client.mk will actually be recorded in the file's cvs history and should tell what that tag change actually was.
The first commit to client.mk does not show up anywhere actually, so the message is useless, but I remember that CVS didn't correctly realize that it had the state of that minibranch and might choke afterwards. The mv/sed/rm stuff is to make the client.mk pull our new SeaMonkey release tag, the second commit to client.mk will actually be recorded in the file's cvs history and should tell what that tag change actually was.
We do similar things to module.ver and version.txt in the next steps to remove the "pre" postfix on the SeaMonkey version number, just that we can commit them directly to the Gecko release branch, as those are SeaMonkey-specific files anyways.


The actual tagging is done with the last two commands, first the new tag is forced on the client.mk file, then the rest of the tree is tagged.
The actual tagging is done with the last two commands, first the new tag is forced on the client.mk file, then the rest of the tree is tagged.
Account confirmers, Anti-spam team, canmove, Confirmed users, Bureaucrats and Sysops emeriti
4,083

edits

Navigation menu