Changes between Version 4 and Version 5 of Obsolete/Development/ReleaseProcess


Ignore:
Timestamp:
Jul 2, 2014, 11:58:07 AM (11 years ago)
Author:
/C=UK/O=eScience/OU=CLRC/L=RAL/CN=james adams
Comment:

Update to match current procedures.

Legend:

Unmodified
Added
Removed
Modified
  • Obsolete/Development/ReleaseProcess

    v4 v5  
    88As discussed in the 15th Quattor workshop, I detail here the tools and means for a Quattor release.  This document should be kept up to date as the release procedure gets more automated.
    99
    10 For the client code (configuration modules, core libraries...), we do one release each 4-6 weeks.  The "certification" process is manual, here is how it goes:
     10We do one release approximately every two months.  The "certification" process is partly automated, here is how it goes:
    1111
    1212== Release branch ==
    1313
    14 When the time comes, the release manager (RM) creates a new branch in the main GitHub repository, on each repository that will be released.  He ensures that the builds in the [https://jenkins1.ugent.be/view/Quattor Jenkins repository] pass.  If they don't, he iterates with the authors or reverts the commits that break the tests.
     14A week before release date, the RM announces a merge freeze on all repositories, this means that no new features should be merged, only fixes for serious issues discovered in the current code-base.
     15
     16The RM merges any pull-requests that need to be in the release.
     17
     18If necessary, the release manager (RM) creates a new branch in the main GitHub repository, on each repository that will be released, however most repositories will be released from master.
     19
     20The RM ensures that the builds in the [https://jenkins1.ugent.be/view/Quattor Jenkins repository] pass.  If they don't, he iterates with the authors or reverts the commits that break the tests.
     21
     22== Tools ==
     23
     24The [https://github.com/quattor/release release repository] contains the releaser.sh script for performing releases, this is now the preferred method of performing a Quattor release.
     25This builds packages, tags the GitHub repositories, collects and signs the RPMs and generates a signed YUM repository in a tar-ball.
     26
     27At least one release candidate should be built before a final release, more often than not several will be required!
     28
     29Release numbering is of the format YY.M.P where P is a point-release number, starting at 0.
     30Release candidates are suffixed with -rcN where N is the RC number.
     31For example:
     32   * 14.5.0  (final)
     33   * 14.6.0-rc1  (release candidate 1)
    1534
    1635== Testing the release ==
    1736
    18 When all tests seem to pass, the RM creates all the packages and uploads them to some Yum repository.  He will then update all templates in a sandbox, and deploy the site.
     37When all tests seem to pass, the RM uploads the repository tar-ball to the to yum.quattor.org and publishes it under /testing/.
     38
     39The RM announces the availability of the RC and requests site testing.
    1940
    2041'''NOTE:''' We don't have the manpower to produce test profiles for each component.  Only the most important ones are being stressed ATM.
     
    2243'''NOTE:''' We'd appreciate a number of virtual machines (or a test site in the cloud) to make even more thorough tests.
    2344
    24 == Declaring victory ==
    25 
    26 When all the installations and component executions succeed, the RM executes the following command line on all the repositories:
    27 
    28 {{{
    29 #!sh
    30 $ mvn -q -DautoVersionSubmodules=true -Dgpg.useagent=true -Darguments=-Dgpg.useagent=true -B -DreleaseVersion=$VERSION clean release:prepare release:perform
    31 }}}
    32 
    3345== Uploading to the Git repositories ==
    3446
    35 The [https://github.com/quattor/release.git release repository] contains a POM file with all the artifacts that should be uploaded to the Yum repositories, with their releases.  Just adjust it.
    36 
    37 == Tools ==
    38 
    39 The `releasing.org` file is an useful checklist to keep track of which modules we have already validated.
    40 
     47The [https://github.com/quattor/release release repository] contains a POM file with all the artifacts that should be uploaded to the Yum repositories, with their releases.  Just adjust it.