Proposed policy for branching the IMC UK CVS repository
Aims
The purpose of this policy is to ensure that both incremental and more radical/experimental development can take place simultaneously, and that we can get important updates onto the live server without experimental work unexpectedly breaking things.
This policy does not deal with deciding what changes we actually want on the site (which is a matter for agreement by consensus via the lists); it is only concerned with how those changes are implemented.
Status
This is very much a draft at present. Comments and alterations welcome either on this wiki or via the imc-uk-tech list.
General development: "MAIN" branch (aka CVS HEAD)
This is for general development: stuff that is known to be broken shouldn't be committed here, but neither should it be assumed to be in a consistent, working and tested state. It should, however, work well enough for other people to test their changes.
Current live version: "live1" branch
Changes may be merged onto this branch once they have been tested on the dev server. Large changes should have been confirmed as working by someone other than the person who made them. This branch should always be in a state suitable for uploading to the live site. It should probably contain a README file detailing (in chronological order) any other actions required to do the upgrade at each stage (DB changes, admin actions etc), or links to the relevant wiki pages.
New live branches
When very major changes are made, we may decide to freeze the MAIN branch, test it fully on the dev server and create a new live branch (which would be "live2") -- in some situations this might be easier than merging all the changes onto live1 (also CVS can get quite slow with long-lived branches). Any freezing of the MAIN branch for this purpose should be agreed on the imc-uk-tech list.
Experimental branches
For more experimental work, additional branches should be created. If they are based around a particular Kollektive or individual developer, begin the branch name with that of the Kollektive or developer, eg I might use "cambridge-2005-revamp", "zak-scripting-stuff" or whatever. The commit policy is up to the individual or Kollektive in question. Once the changes are complete and working, they should be merged onto the MAIN branch. Once tested on the main dev server, they can then be merged onto the live branch.
Help
Creating and merging branches in CVS can be confusing. If you're unsure of anything, ask either on imc-uk-tech or in IRC.
(I'll try and add some basic stuff about managing branches here later...)
--
ZaK - 02 Jan 2005
to top