Changes between Version 11 and Version 12 of RasdamanReleaseProcess
- Timestamp:
- Apr 22, 2013, 2:27:16 PM (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
RasdamanReleaseProcess
v11 v12 4 4 Since we are using git for version control there are a few caveats that have to be considered in defining the release process: 5 5 * git is distributed and [http://www.ericsink.com/entries/dvcs_dag_1.html does not keep a linear history] like centralised VCS; 6 * pretty much [http://ricroberts.com/articles/getting-to-grips-with-git-part-2-branches-and-tags ever ithing is considered a branch];6 * pretty much [http://ricroberts.com/articles/getting-to-grips-with-git-part-2-branches-and-tags everything is considered a branch]; 7 7 * there is a [http://nvie.com/posts/a-successful-git-branching-model/ successful git branching model] out there that we can draw upon. 8 8 … … 16 16 The repository contains two types of ''branches'' on it: 17 17 * '''master''' (single instance) -- the currently available branch, which will be the main development branch; 18 * '''release''' (mul itple instances) -- When starting release process (consolidation of beta, rc, and other testing releases), a ''release'' branch is created with name '''release_M.m'''. These branches will allow maintenance of past releases, while development continues in the master branch.18 * '''release''' (multiple instances) -- When starting release process (consolidation of beta, rc, and other testing releases), a ''release'' branch is created with name '''release_M.m'''. These branches will allow maintenance of past releases, while development continues in the master branch. 19 19 * Where M=Major version; m=minor version; All patch versions will belong to the same "minor" branch 20 20 * Note: consider broader detail such as per-major version release line (fewer branches) or cleaning up branches for un-maintained versions 21 21 22 As an example consider release 8.4.0 and following bugfixes and regression pat hces:22 As an example consider release 8.4.0 and following bugfixes and regression patches: 23 23 {{{ 24 24 release_8.4 (branch) … … 33 33 A local branch can be checked out and with recent versions of git also a remote one with the same name: 34 34 {{{ 35 #!sh 35 36 git checkout release_M.m 36 37 37 38 #should give you output similar to: 38 39 Branch release_M.m set up to track remote branch release_M.m from origin. 39 Switched to a new branch 'release_M.m' 40 40 Switched to a new branch 'release_M.m'` 41 41 }}} 42 42 … … 47 47 Every release, both testing (cleaned up afterwards) and final, is marked by a ''tag'' according to the pattern '''vM.m.p''' (we are keeping the "v" prefix for historical reasons) in the repo, which can be checked out with 48 48 {{{ 49 #!sh 49 50 git checkout vM.m.p 51 }}} 52 53 Single branches may also be clones, in case the whole repo is not needed: 54 {{{ 55 #!sh 56 # clone only the `release_8.4' branch, locally 57 git clone -b release_8.4 git://kahlua.eecs.jacobs-university.de/rasdaman.git 58 59 # [...] Checking out a newly created branch, e.g. `featureX': 60 git branch -rv 61 origin/master 96e9534 Fixed array constant for rgb (Ticket 157) 62 origin/release_8.4 5eacb06 Fix netcdf import when only one variable is imported 63 origin/featureX 1234567 Start implementation of feature X. 64 git checkout -b featureX origin/featureX 50 65 }}} 51 66 … … 57 72 == 1. Create branch and tag according to the aforementioned naming scheme - ''Requires write access to the repo'' == 58 73 {{{ 74 #!sh 59 75 VERSION="v$MAJOR.$MINOR.0" 60 76 RELEASE="release_$MAJOR.$MINOR" … … 73 89 74 90 {{{ 75 * git archive --output=rasdaman-v8.4.0.tgz v8.4.0 # from local clone 91 #!sh 92 # from local clone 93 git archive --output=rasdaman-v8.4.0.tgz v8.4.0 76 94 }}} 77 95 {{{ 78 * git archive --remote=git://kahlua.eecs.jacobs-university.de/rasdaman.git --output=rasdaman-v8.4.0.tgz v8.4.0 # diretly from repo ''currently not working'' 96 #!sh 97 # diretly from repo ''currently not working'' 98 git archive --remote=git://kahlua.eecs.jacobs-university.de/rasdaman.git --output=rasdaman-v8.4.0.tgz v8.4.0 79 99 }}} 80 100 … … 92 112 93 113 == Testing time == 94 We should estab ilish some time frame to advance in the release process: now we wait one week before advancing -rc if bugfixes come in.114 We should establish some time frame to advance in the release process: now we wait one week before advancing -rc if bugfixes come in. 95 115 96 116 == Patch manager with branches ==