Changes between Initial Version and Version 1 of VersionsAndBranching


Ignore:
Timestamp:
08/20/10 17:28:14 (4 years ago)
Author:
dread
Comment:

first stab

Legend:

Unmodified
Added
Removed
Modified
  • VersionsAndBranching

    v1 v1  
     1CKAN is stored in a mercurial repo and we have devised this process to cope with coding, releasing and maintaining versions of the software. 
     2 
     3We have three branches of the code to reflect their uses: 
     4 
     5'''default''' branch is for future releases - New features go here. Bug fixes should always go here as well as the other branches. 
     6 
     7'''metastable''' branch is for releases deployed to ckan.net and similar servers. These servers get new features first. Sometimes there are issues to be resolved with these new features. It usually lags `default`. 
     8 
     9'''stable''' branch is designed for the most stable code. It usually lags `metastable`. 
     10 
     11(From now on) merges must only be done in the DOWN direction (in the direction `default`->`metastable`->`stable`) and only when you release. So you can release `default` to `metastable` with a merge, and from `metastable` to `stable`, but you mustn't merge `metastable` to `default`, for example. And not when you simply fix a bug. 
     12 
     13The problem with merging in the other direction is that a bugfix changesets on `metastable` may well be mixed in with changesets incrementing the minor digit of the version number. The version number on the `default` branch may already have a higher major version and you don't want to overwrite it with the `metastable` changeset. When you merge you can't pick and choose changesets - you have all up to a certain one - so you can't merge in this direction. 
     14 
     15You might have written a bugfix in `default` that you want in `metastable` too, but don't want the rigmorole of releasing at this point. In this case, don't merge - the problem with merging when you're not releasing, is that you may well pull half-finished features from `default` into branches which need to be more stable. 
     16 
     17The solution instead is to ... (tbc)