Version 2 (modified by chris, 6 years ago) (diff) |
---|
Table of Contents
JK: This page is not finished... Will tidy & complete ASAP
Code Management and Release Process
The code for the site, including all Drupal core, contrib and custom files (but excluding settings and uploaded assets) is stored in an SVN repository available at https://tech.transitionnetwork.org/svn/ and browser:www.
Overview & Principles
- Developers work on their own machines and check into the DEV branch of the SVN repository (https://tech.transitionnetwork.org/svn/branches/DEV) ONLY when their code TESTED functional
- The development server (DEV) mirrors the LIVE environment must be used to test this code before moving to LIVE.
- There is a TEST server which can also be used as required, but is optional unless there is a lot of development work going on or many developers need to test their work in preparation for a release to LIVE.
- The LIVE server ONLY EVER gets tagged releases put on it. Such releases must be tested (both on a local developer machine AND on DEV) prior to release. Hence, the LIVE server moves from one tagged release to the next.
- Database backups must happen before each release to LIVE - this way each release on LIVE has an associated database backup.
Release Process Detail
The process is as follows:
- Developer(s) commits their changes to the DEV branch (presently https://svn.webarch.net/transition/code/branches/DEV but recommend simplifying this). Testing is done on DEV server to ensure things work as planned.
- OPTIONAL: Developer updates the TEST server using same code.
- OPTIONAL: Developer solicits feedback and testing from managers/stakeholders if complex changes or new development. This is probably on DEV, but could be on TEST.
- Once happy, developer tags the code as appropriate (e.g. v1.3.1 "The crown jewels" etc) as a new copy in the LIVE branch. The source of this should be the DEV branch, since TEST server should only test tagged and ready releases before they make it to LIVE.
- OPTIONAL: points 1-5 happen as many times as required to get the release ready, tested and signed off.
- Developer backs up and updates LIVE using the latest tagged release. NOT USING MERGE!!! Using 'svn switch' in our case. If there is a problem the developer can always switch back to the previous tagged release for LIVE and examine the issue in TEST.
Comment from Chris
Some suggestions:
Developers work on the browser:www/trunk and this is tested on test.transitionnetwork.org and dev.transitionnetwork.org as required.
When the code is ready to be deployed to the live server it's tagged, which is an svn copy, eg:
svn cp trunk rel-2010-11-19 svn commit -m "Release version 2010-11-19"
Then on the live server this is deployed:
sudo -i cd cd /web/transitionnetwork.org/www/ svn switch https://tech.transitionnetwork.org/svn/www/rel-2010-11-19/ .