Changes between Version 11 and Version 12 of RasdamanReleaseProcess


Ignore:
Timestamp:
Apr 22, 2013, 2:27:16 PM (11 years ago)
Author:
Piero Campalani
Comment:

typos fix and added single branch cloning

Legend:

Unmodified
Added
Removed
Modified
  • RasdamanReleaseProcess

    v11 v12  
    44Since we are using git for version control there are a few caveats that have to be considered in defining the release process:
    55 * 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 everithing 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];
    77 * there is a [http://nvie.com/posts/a-successful-git-branching-model/ successful git branching model] out there that we can draw upon.
    88
     
    1616The repository contains two types of ''branches'' on it:
    1717 * '''master''' (single instance) -- the currently available branch, which will be the main development branch;
    18  * '''release''' (mulitple 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.
    1919  * Where M=Major version; m=minor version; All patch versions will belong to the same "minor" branch
    2020   * Note: consider broader detail such as per-major version release line (fewer branches) or cleaning up branches for un-maintained versions
    2121
    22 As an example consider release 8.4.0 and following bugfixes and regression pathces:
     22As an example consider release 8.4.0 and following bugfixes and regression patches:
    2323{{{
    2424   release_8.4 (branch)
     
    3333A local branch can be checked out and with recent versions of git also a remote one with the same name:
    3434{{{
     35#!sh
    3536git checkout release_M.m
    3637
    3738#should give you output similar to:
    3839Branch release_M.m set up to track remote branch release_M.m from origin.
    39 Switched to a new branch 'release_M.m'
    40 
     40Switched to a new branch 'release_M.m'`
    4141}}}
    4242
     
    4747Every 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
    4848{{{
     49#!sh
    4950git checkout vM.m.p
     51}}}
     52
     53Single 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
     57git clone -b release_8.4 git://kahlua.eecs.jacobs-university.de/rasdaman.git
     58
     59# [...] Checking out a newly created branch, e.g. `featureX':
     60git 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.
     64git checkout -b featureX origin/featureX
    5065}}}
    5166
     
    5772== 1. Create branch and tag according to the aforementioned naming scheme - ''Requires write access to the repo'' ==
    5873{{{
     74#!sh
    5975VERSION="v$MAJOR.$MINOR.0"
    6076RELEASE="release_$MAJOR.$MINOR"
     
    7389
    7490{{{
    75    * git archive  --output=rasdaman-v8.4.0.tgz v8.4.0   # from local clone
     91#!sh
     92# from local clone
     93git archive  --output=rasdaman-v8.4.0.tgz v8.4.0
    7694}}}
    7795{{{
    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''
     98git archive --remote=git://kahlua.eecs.jacobs-university.de/rasdaman.git --output=rasdaman-v8.4.0.tgz v8.4.0
    7999}}}
    80100
     
    92112
    93113== Testing time ==
    94 We should estabilish some time frame to advance in the release process: now we wait one week before advancing -rc if bugfixes come in.
     114We should establish some time frame to advance in the release process: now we wait one week before advancing -rc if bugfixes come in.
    95115
    96116== Patch manager with branches ==