Notes on Performing a WebLearn Build/Release ============================================ Versioning ========== All WebLearn versions have three components. Major.Minor.Increment (eg: 2.6.1) Major - This only gets incremented on major version changed and the increment should be sequential. Minor - This gets incremented every time a new stable branch of the codebase is created and even numbers are used for stable builds and odd ones for development. 2.6.1 is a stable build, 2.7.4 is a development build. Stable builds should only be found on branches. Increment - This is the value that gets incremented for each build sequentially, starting at 0. The increment is specific to a minor version, so each time the minor of major version is increased the increment is reset to zero. The versioning started out following the Bodington (http://bodington.org/) version (2.6) but we seem to be moving at a faster pace so it will probably become less of a link as time moves on. Building ======== Steps to follow to perform a versioned build. - Make sure source tree is up to date (CVS update). - Copy release.build.properties to build.properties - Increment version number in build.xml (dist.release.tag). - Commit build.xml back to repository. - Tag CVS repository with version (eg WebLearn_2_7_2 for build 2.7.2). - Run ant clean to make sure there are no CVS problems. - Run the ant dist target which should produce a zipped build in /dist. Branching ========= A new branch should be created for each stable build release. The version number should be incremented on both the branch and the HEAD. Current convention for branch names is branch_WebLearn_2_6 for the branch and Root_branch_WebLearn_2_6 for the tag indicating the root of the branch. Releases ======== Any build that runs on the live server should only come from the stable branch. Every new build should have its version number even if the changes are very small to make it easy to track that we have the correct version in testing or deployed.