New Release Process
This page will describe the new rollout/release strategy and proceedure using SVN. When it is finished the old page will be renamed, and then this new page will be renamed to replace the old.
The previous release proceedure is describe in
Release Process.
Overview of development and release strategy with SVN branching:
A general overview of the development strategy and the role of branches is shown in the figure at the right. Generally speaking, we are adopting the strategy of continuous development along the trunk, with releases as branches, while also allowing for parallel development of specific features via branch and merge.
Before a stable release is made, a branch is created from the trunk with the release version. For example, the 1.0 release will have the branch in
branches/1.0
. From that point on testing on that branch begins. Commits to a release branch should only contain bug fixes.
Before an actual release is made, the release branch is tagged. For example, the 1.0rc1 release will have the tag in
tags/1.0rc1
.
There are three machines used for various roles. The following list describes them:
- www13.i2u2.org is the development machine. It contains code from
trunk
and can be used for testing various changes in trunk, but also for testing certain things outside of the revision system. However, files on www13 in the quarkcat space are not guaranteed to be kept there. If you want to make sure you code gets saved, commit to SVN. If you want to test a roll-out, please announce to the e-mail list first to see if it will impact others' work.
- www15.i2u2.org is a development machine for Eric (and TJ?).
- www16.i2u2.org is a development machine used for development branches (eg. Liz implementing Marge's changes)
- www12.i2u2.org is the branch testing machine. It contains code from the current release branch. This is where beta testing happens.
- www18.i2u2.org is the production machine. It contains code from release tags.
- www17.i2u2.org is the backup production machine. It should contain the same code as www18, and we should be able to swap it in place in case www18 is temporarily unavailable.
Deploying new code:
Deploying code from SVN to one of the above can be done in the following way:
- Log into the machine
- cd ~quarkcat
- sudo -u quarkcat ./deploy-from-svn <source> (where <source> can be trunk, branches/x.y.z or tags/x.y.z). Example: sudo -u quarkcat ./deploy-from-svn branches/4.0-ND-prod
-
The deployment script will then check the code out from SVN, build it, deploy it, restart the server, and run some tests (except on www13)
Troubleshooting after Deployment:
Here are somethings you can try if the i2u2 website doesn't appear normal:
1. Make sure only the files you intended to deploy actually got deployed: Go to
https://cdcvs.fnal.gov/redmine/projects/quarknet/repository. Click on the revision number of interest, and that will show which files were committed with that revision and where.
2. Restart Apache ($ sudo service apache2 restart).
3. Reboot the VM ($ sudo reboot).