Keep an eye on the bugzilla
entries that are registered by users and developers. Decide on
the bugs that need to be fixed for the beta and pain developers for
an ETA.
The document here talks about
the powers of a build Czar.
The Build Czar has the power to set up more builds on his own for
his convinience. This
page has a
step by step instructions on how to do that.
The build czar can get the build configuration by looking at the
config portion of the scoreboard
Any pro-active involvement by the build czar is welcomed. Being
a pro-active build czar will mean that you watch the subversion archive
carefully and respond quickly to suspected changes. At the end it will
safe time because the repo stays stable.
Recipe for Cutting a Beta/Minor Kit
The build czar is also incharge for the release of the
beta. Cutting a beta is as simple as cutting butter if things go
well. Here is the procedure followed while cutting a beta:
- The whole process takes somewhere between 8-9 hours, about 2 hours
for making the release itself and the remaining time for generating
the doxygen documentation.
- Prior to starting this, gather aggregate release notes from all
developers. This is usually in the form of an email plea asking for
a writeup of significant changes since the last beta. Add these notes
to the NEWS files before cutting the release so that all notes are
part of the release.
- Checkout a new workspace on deuce.doc.wustl.edu
- In order to do this you must have ssh identity set up, and
(unless you like typing your passphrase A LOT) have your
environment configured so that you can access the CVS repo transparently.
When you are using the bugzilla account the best you can add the
public key in .ssh/id_rsa.pub into your .ssh/authorized_keys on
cvs.doc.wustl.edu
Need a link here!
-
The best place to create the workspace is under /project/acetmp. Don't use
the home directory itself, it is an NFS share and not really fast.
- Set the
CVSROOT
variable to yourusers@cvs.doc.wustl.edu:/project
/cvs-repository and CVS_RSH to ssh using SETENV
- Checkout like this: cvs -z 9 checkout ACE_wrappers
- Do not forget to checkout your MPC repository. Do it like this:
cvs -z 9 co -P ACE_MPC
- If the repository is frozen, remove all users from that file and
place your user name in the FROZEN file
- Set $ACE_ROOT, $TAO_ROOT and $CIAO_ROOT to point to the new
workspace you checked out. You must also set
$MPC_ROOT
to
be $ACE_ROOT/MPC
.
- Set an environment variable SIGNATURE indicating your full
name. This is used to fill the ChangeLog entry.
- For example,setenv SIGNATURE "Chris Cleeland"
- Set an environment variable MAILID indicating your mail id. This
is used to fill the mail id portion of the ChangeLog entry.
- For example,setenv MAILID "cleeland@ociweb.com"
- Change directories to to $ACE_ROOT
- Do a make -f Release allsources to create a beta kit
- Or do a make -f Release allsources REL=minor to create a minor kit
- This command only tags and creates the kits for the
software itself, not documentation.
- The kits end up in /export/project/deuce/ftp/pub/ACE+TAO-distribution
To summarise, the following is a transcript of the steps up to this point executing
successfully (assumes /project/acetmp/sm exists and is empty):
sm@beatrice ~
$ ssh bugzilla@deuce.doc.wustl.edu
No default printer
bugzilla@deuce cs/group/bugzilla> cd /project/acetmp/sm
bugzilla@deuce /project/acetmp/sm> setenv CVSROOT bugzilla@cvs.doc.wustl.edu:/project/cvs-repository
bugzilla@deuce /project/acetmp/sm> setenv CVS_RSH ssh
bugzilla@deuce /project/acetmp/sm> setenv ACE_ROOT $PWD/ACE_wrappers
bugzilla@deuce /project/acetmp/sm> setenv TAO_ROOT $PWD/ACE_wrappers/TAO
bugzilla@deuce /project/acetmp/sm> setenv CIAO_ROOT $PWD/ACE_wrappers/TAO/CIAO
bugzilla@deuce /project/acetmp/sm> setenv MPC_ROOT $PWD/ACE_wrappers/MPC
bugzilla@deuce /project/acetmp/sm> setenv SIGNATURE "Simon McQueen"
bugzilla@deuce /project/acetmp/sm> setenv MAILID sm@prismtech.com
bugzilla@deuce /project/acetmp/sm> cvs -z 9 checkout ACE_wrappers
bugzilla@deuce /project/acetmp/sm> cvs -z 9 co -P ACE_MPC
bugzilla@deuce /project/acetmp/sm> cd ACE_wrappers/
bugzilla@deuce acetmp/sm/ACE_wrappers> make -f Release allsources | & tee ../release.log
Feel free to cut and paste with suitable edits.
- If something goes wrong and the build needs to be restarted for some reason
the following files must be returned to the state they were in before the release
process started and then checked back into CVS:
ACE_wrappers/ChangeLog
ACE_wrappers/PROBLEM-REPORT-FORM
ACE_wrappers/VERSION
ACE_wrappers/TAO/ChangeLog
ACE_wrappers/TAO/PROBLEM-REPORT-FORM
ACE_wrappers/TAO/VERSION
ACE_wrappers/TAO/CIAO/ChangeLog
ACE_wrappers/TAO/CIAO/PROBLEM-REPORT-FORM
ACE_wrappers/TAO/CIAO/VERSION
ACE_wrappers/TAO/CIAO/ciao/Version.h
ACE_wrappers/TAO/tao/Version.h
ACE_wrappers/ace/Version.h
The following tags will also need to be removed: CIAO-0_X_Y, TAO-1_X_Y, and ACE-5_X_Y
(wher X and Y are the minor and beta release numbers of the release that is to be restarted).
E.g.:
cvs tag -d CIAO-0_4_8
cvs tag -d TAO-1_4_8
cvs tag -d ACE-5_4_8
- When ready, create a manual tag ACE+TAO+CIAO-X_Y_Z, where X_Y_Z must be replaced by major/minor/beta version (for example 1_4_7).
For example, the tag might be: ACE+TAO+CIAO-1_4_8
- Once the distribution is ready, get ready for creating doxygen
documentation. This is slightly complicated than it requires. We will
address the complexity soon.
- Login to naboo.dre.vanderbilt.edu as bczar
- After login, ssh to deuce.doc.wustl.edu as bugzilla and check whether ssh succeeds. If not fix the problem. The make script tries to copy the tar.gz files to the website using ssh.
- go to /web/users/isisbuilds/tmp/ACE_wrappers
- Set the environment variables pointed above.
- Update the workspace with the right version tag
- Run doxygen --version within the shell.
- Open up $ACE_ROOT/bin/generate_rel_mangpages in your favorite editor.
- Search for the string 'doxy_version'.
- Check the version specified here. If it is the same as the one
you got using doxygen --version then you don't have to worry.
- If it is different change the value of the doxy_version to the one installed on naboo.dre.vanderbilt.edu.
- Now you are ready to create documentation
- Run make -f Release manpages to create the doxygen
documentation.
- If you can't leave the terminal window active for 6-9 hours,
consider prefixing this command with nohup
- While doxygen churns, format a release announcement, including the
release notes gathered from developers.
You can use these as an example.
- Let Doug Schmidt review
these before you do anything with them.
- Check the file, generate_rel_manpages into the repository if you have made some changes to it.
- Make sure the new version is available in Bugzilla.
- now we have a bczar Bugzilla user with full privileges. This bczar Bugzilla account would point to bczar user at ISIS. For example, as a new build czar, you could update the .forward file on one of the ISIS hosts, say, naboo.dre.vanderbilt.edu with your build czar email.
- you should be able to send request through the bugzilla system to email you the password at any time to bczar@dre.vanderbilt.edu
- here is the description of how to add a new version through Bugzilla.
- go to any Bugzilla "Query" page, you should see a yellow box at the bottom. click "Log in" link to log in as bzar@dre.vanderbilt.edu.
- look at the yellow box at bottom again. You will see several links following "Edit". Click on the "components" link.
- you are then at "Select product" page. You should see a list components, i.e., ACE CIAO TAO. Click on the product you want to edit.
- you are then at "Edit product" page. Scroll down a bit, you should see a list of all versions coming with this product. At the very beginning of the list, you should see "Edit versions" link. Click this link.
- you should see a "Add a new version" text box and a "Add" link just above the yellow box at the bottom. Click on this link
- you are then at "Add version of [Name of the product]" page.
- you are able to add the new verion now.
- Now update the documentation at
www.dre.vanderbilt.edu/Doxygen.
- Login to naboo.dre.vanderbilt.edu
- su to bczar user
- cd to directory /web/www/Doxygen
- Create a temporary directory. eg. tmp
- Change Directory to tmp
- scp file from the deuce server -
/project/deuce/ftp/pub/ACE+TAO-distribution/ACE-html.tar.bz2
- Unzip and untar the files - bunzip2 ;tar -xvf
- Do cd ..
- Create directory 'Current Version No'
- Change directory to 'Current Version No'
- Move contents of tmp/html to this dorectory - mv ../tmp/html
- Now Change Directory - cd ..
- Remove the already existing soflink to the "Beta"
- Create softlink "Beta" linking it to new Documentation
- Mail the approved release announcement out to, at minimum the following:
ciao-users@cs.wustl.edu,
tao-users@cs.wustl.edu,
tao-announce@cs.wustl.edu,
ace-users@cs.wustl.edu,
ace-announce@cs.wustl.edu. Do this as yourself (not as bugzilla).
N.B. You will not be able to post to the users' lists unless you are
subscribed to them. Odds are you will not be able to post to the announce lists
at all. Ask someone else (like Doug) to do this step.
Tips to being a Build Czar
1. Trust no one.
2. Be careful with this
guy, he is notorious in breaking builds (and fixing them as
well...Rumour has it that it's actually a super-scalar,
super-pipelined processor capable of out-of-order execution, in human
incarnation).
3. Don't forgive people who break ACE :-)
4. If a build hasn't run in a long time (symptoms are a "red" in the
Last Run column of the build scoreboard), delete the .disable file in
/path/to/build/directory/BUILD_NAME/ by hand.
5. Think of the group who wrote the scoreboard update script, everytime
you catch an otherwise not so obvious error with the help of the
scoreboard. Tell DEVO group
about it.
6. Add $CVSROOT/CVSROOT/etc/FROZEN to freeze the repo
7. Add names of people who need to be given permission and make sure
that you add your name so that you can see what is being checked in.
8. Leave a line at the end of the FROZEN file
9. Compile once on Win32, Linux and Solaris before cutting a beta.
10. Trust the release script when making a release. Don't make tar
balls by hand. Make sure that the public ftp directories
(/project/beguine/ftp/pub/ACE+TAO-distribution and
/project/beguine/ftp/pub/ACE+TAO-distribution/diffs) have the right
permissions, so that the release script can copy the tar balls.
11. When making a release, make sure that all the auto_compiles on
that machine (deuce.doc.wustl.edu) are stopped. Also make sure that
there is enough space in /tmp on that machine.
12. When all hell breaks loose, don't wait for the nightly builds to
monitor improvement. Instead manually start the builds.
13. Maintain private up-to-date workspaces for problem platforms (read
as Solaris).
14. Don't hesitate to ask for help.
15. When you get an account to acess the cvs repo, make sure you are added to the correct groups, for example, gid=100(users),5000(doc),5002(acetaodev),5003(cvs). Otherwise you will have problem to checkout various modules.
16. Install your public key to the different machines you have frequent access to avoid typing password.
17. Update this page if you have any more tips for future build czars :-). This
page is bugzilla@deuce.doc.wustl.edu:~/.www-docs/index.html