Changes between Version 9 and Version 10 of ReleaseProcedure


Ignore:
Timestamp:
Aug 20, 2007, 1:42:56 PM (17 years ago)
Author:
Jari Häkkinen
Comment:

Improving procedure.

Legend:

Unmodified
Added
Removed
Modified
  • ReleaseProcedure

    v9 v10  
    1111
    1212The main development is performed in the trunk branch of the
    13 repository. A new release branch is created for each minor release
    14 from the trunk and patch releases are snapshots of the minor release
     13repository. A new release branch is forked from the trunk for each
     14minor release a short time period before release, and patch releases
     15are snapshots of the minor release
    1516branch. This implies that patch work is performed in the minor release
    1617branch, and changes made release branch is transferred to the trunk
     
    2728== Minor release procedure ==
    2829
    29 This section describes what to do when publishing a minor release.
    30 
     30This section describes what to do when publishing a minor release. A
     31minor release branch is forked from the trunk when release time is
     32getting closer. After the fork all remaining work for the associated
     33milestone is performed in the minor branch, and if required changes
     34made to the minor branch must be merged into the trunk.
     35
     36=== Pre-final minor release procedure ===
     37Steps to perform prior to the finalization of the minor release
    3138 1. Make sure that all commits are performed into to the trunk, such
    32     as bumping version number(s) ([source:trunk/build.xml build.xml]),
    33     acknowledge contributions ([source:trunk/credits.txt credits.txt]),
     39    as acknowledge contributions ([source:trunk/credits.txt credits.txt]),
    3440    API changes that may affect backwards compatibility
    3541    ([http://base.thep.lu.se/chrome/site/doc/html/appendix/appendix.incompatible.html API changes]),
    3642    and other files as necessary.
    3743    [[br]][[br]]
    38   i. Update version number in [source:trunk/build.xml build.xml]. Locate and change the
    39      below line
     44 1. Update copyright statements with the below command. Make sure that
     45    you do not break file encodings such as UTF-8 and what not. One
     46    example, do not use non-US characters for developer names in the
     47    source:trunk/.svndigest/config file.
     48{{{
     49./bin/svndigest --copyright --no-report
     50}}}
     51    Examine the updates and commit changes with `svn ci -m "updating
     52    copyright statements"`. For this step
     53    [http://trac.thep.lu.se/trac/svndigest svndigest] is obviously
     54    needed. [[br]][[br]]
     55 1. Create the new minor
     56{{{
     57svn copy http://lev.thep.lu.se/repository/base/trunk \
     58    http://lev.thep.lu.se/repository/base/branches/A.B-stable \
     59    -m "Forking new minor version A.B branch"
     60}}}
     61 1. Prepare the trunk for the next minor release [[br]][[br]]
     62  i. Update version number in source:trunk/build.xml. Locate and
     63     change the below line
     64{{{
     65<property name="base.minorversion" value="B+1" />
     66}}}
     67  i. Commit changes to the repository,
     68     `svn ci -m "Changes for future release A.[B+1]"` [[br]][[br]]
     69
     70From now on, all changes needed for the minor release must be done to
     71this new branch only. Changes made are merged into the trunk at
     72release if required
     73
     74=== Final minor release procedure ===
     75 1. Make sure that all commits are performed into to the minor branch,
     76    such as bumping version number(s) (build.xml), acknowledge
     77    contributions (credits.txt), API changes that may affect backwards
     78    compatibility
     79    ([http://base.thep.lu.se/chrome/site/doc/html/appendix/appendix.incompatible.html
     80    API changes]), and other files as necessary. [[br]][[br]]
     81  i. Update version number in `build.xml`. Locate and change the below line
    4082{{{
    4183<property name="base.minorversion" value="B" />
    4284}}}
    43   i. Update [source:trunk/credits.txt credits.txt]. Remember, ego and vanity is the currency of open
     85  i. Update `credits.txt`. Remember, ego and vanity is the currency of open
    4486     source projects. Well, there are other reasons for open source
    45      projects but [source:trunk/credits.txt credits.txt] is for boosting peoples' ego. [[br]][[br]]
     87     projects but `credits.txt` is for boosting peoples' ego. [[br]][[br]]
    4688  i. Make sure that the API incompatibility list is up to date
    4789     [http://base.thep.lu.se/chrome/site/doc/html/appendix/appendix.incompatible.html API changes].
     
    5496 1. Update copyright statements with the below command. Make sure that you do not break file
    5597    encodings such as UTF-8 and what not. One example, do not use non-US characters for developer
    56     names in the source:trunk/.svndigest/config file.
     98    names in the `.svndigest/config` file.
    5799{{{
    58100./bin/svndigest --copyright --no-report
     
    64106    package, and perform all other release tests you think is
    65107    appropriate:
    66 {{{
    67 Please add test command sequence here
    68 }}}
    69     If you fail in this step, please resolve the issues and restart these procedures. [[br]][[br]]
     108  i. Create an empty test database
     109  i. Setup 'base.config' for the tests.
     110  i. Perform the following sequence of commands
     111{{{
     112ant test
     113cd build/test
     114./run.sh TestAll -s
     115}}}
     116    The `-s` option above will generate less output from the test
     117    program.
     118 If you fail in this step, please resolve the issues and restart these procedures. [[br]][[br]]
    70119 1. Create a tag using a one liner like
    71120{{{
    72 svn copy http://lev.thep.lu.se/repository/base/trunk \
     121svn copy http://lev.thep.lu.se/repository/base/branches/A.B-stable \
    73122    http://lev.thep.lu.se/repository/base/tags/A.B \
    74123    -m "Tagging version A.B"
     
    103152  i. Commit changes to the repository,
    104153     `svn ci -m "Changes for future release A.B.1"` [[br]][[br]]
    105  1. Prepare the trunk for the next minor release [[br]][[br]]
    106   i. Update version number in `build.xml`. Locate and change the
    107      below line
    108 {{{
    109 <property name="base.minorversion" value="B+1" />
    110 }}}
    111   i. Commit changes to the repository,
    112      `svn ci -m "Changes for future release A.[B+1]"` [[br]][[br]]
    113154 1. Update DownloadPage [[br]][[br]]
    114155  i. Update the section '''Latest stable release''' to reflect the new
     
    221262svn checkout http://lev.thep.lu.se/repository/base/trunk trunk_merge
    222263}}}
    223   i. Merge changes into trunk. In this example the diffence between a
     264  i. Merge changes into trunk. In this example the difference between a
    224265     minor release tag and the first patch release tag is merged into
    225266     the trunk WC
     
    236277svn commit -m "Merged patch release A.B.1 to the trunk. Delta A.B.1 - A.B"
    237278}}}
    238  1. ''Performing this step is to acnkowledge that the merge has been performed.'' [[br]]
     279 1. ''Performing this step is to acknowledge that the merge has been performed.'' [[br]]
    239280    Close the milestone associated with the release and replace `head` with appropriate
    240281    revision in log link. Add a new milestone as needed (with an associated log link like