Changes between Version 55 and Version 56 of ReleaseProcedure


Ignore:
Timestamp:
Nov 21, 2009, 5:04:32 AM (11 years ago)
Author:
Peter Johansson
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ReleaseProcedure

    v55 v56  
    3232=== Creating a release branch ===
    3333
    34 Once people agree that a new release branch should be made, the Release Manager creates it with the following procedure (substitute A.B with the version you are preparing):
    35 
     34Once people agree that a new release branch should be made, the
     35Release Manager creates it with the following procedure (substitute
     36A.B with the version you are preparing):
     37
     38  1. Mark the new minor series in `NEWS`
     39{{{
     40See the end for copyrights and conditions.
     41
     42+svndigest A.B.x series from
     43+          http://dev.thep/lu.se/svndigest/svn/branches/A.B-stable
     44+
     45Version A.B (released NOT YET)
     46}}}
     47  commit the changes with `svn ci -m "preparing branch A.B-stable"`[[br]][[br]]
    3648  1. Update copyright statements with commands
    3749{{{
    38 make && make check
    39 ./bin/svndigest --copyright --no-report -v
    40 }}}
    41   Examine the updates and commit changes with `svn ci -m "updating copyright statements"`[[br]][[br]]
    42   2. Create a new release branch using a one liner like
     50make check && ./bin/svndigest --copyright --no-report -v
     51}}}
     52  Examine the updates and commit changes with `svn ci -m "updating
     53  copyright statements"`[[br]][[br]]
     54  1. Make a copy of trunk WC including svndigest cache
     55{{{
     56cp /path/to/svndigest-trunk /path/to/svndigest-A.B.x
     57}}}
     58  1. Create a new minor branch using a one liner like
    4359{{{
    4460svn copy http://dev.thep.lu.se/svndigest/svn/trunk \
     
    4662    -m "New minor version A.B branch"
    4763}}}
     64  1. Switch the new WC to follow new branch
     65{{{
     66cd /path/to/svndigest-A.B.x/
     67svn switch http://dev.thep.lu.se/svndigest/svn/branches/A.B-stable
     68cd /path/to/svndigest-trunk/
     69}}}
    4870  1. Prepare the trunk for the next minor release [[br]][[br]]
    4971   i. Update version number in `m4/version.m4`. Locate and change the
    50       below line
     72      below lines
    5173{{{
    5274m4_define([MINOR_VERSION], [B+1])
    5375}}}
    54   i. Add an entry in `NEWS`
    55 {{{
    56 version A.[B+1] (released DATE)
     76   i. Add an entry in `NEWS`
     77{{{
     78version A.[B+1] (released NOT YET)
    5779}}}
    5880     The date is set when version A.[B+1] is released. [[br]][[br]]
    59   i. Commit changes to the repository,
    60      `svn ci -m "Changes for future release A.[B+1]"` [[br]][[br]]
     81   i. Commit changes to the repository,
     82      `svn ci -m "Bumping VERSION to A.[B+1]"` [[br]][[br]]
    6183
    6284=== Rolling a minor release ===
    63 
    64   For this procedure to work as expected, no other developers should commit to the repository,
    65   during the process of release. Communicate with co-developers!
    6685
    6786  1. Make sure that all commits are performed into to the trunk, such
     
    7089    file [source:trunk/NEWS NEWS].
    7190    [[br]][[br]]
    72   i. Update version number in [source:trunk/m4/version.m4 version.m4]. Locate and change the
    73      below line
     91  i. Update version number in [source:trunk/m4/version.m4
     92     version.m4]. Locate and change the below line
    7493{{{
    7594m4_define([SVNDIGEST_DEV_BUILD], [false])
    7695}}}
    77   i. Update [source:trunk/THANKS THANKS]. Remember, ego and vanity is the currency of open
    78      source projects. Well, there are other reasons for open source
    79      projects but [source:trunk/THANKS THANKS] is for boosting peoples' ego. [[br]][[br]]
     96  i. Update [source:trunk/THANKS THANKS]. [[br]][[br]]
    8097  i. Set the date for the new release in [source:trunk/NEWS NEWS]
    8198{{{
    8299version A.B (released 26 June 2007)
    83100}}}
    84     Make sure that the items in [source:trunk/NEWS NEWS] cover the new features of the
    85     release. [[br]][[br]]
     101    Make sure that the items in [source:trunk/NEWS NEWS] cover the new
     102    features of the release. [[br]][[br]]
    86103  i. Commit changes to the repository
    87104{{{
     
    90107  1. Update copyright statements with commands
    91108{{{
    92 autoreconf -m
    93 make check
    94 ./bin/svndigest --copyright --no-report -v
    95 }}}
    96   Examine the updates and commit changes with `svn ci -m "updating copyright statements"`[[br]][[br]]
     109make check && ./bin/svndigest --copyright --no-report -v
     110}}}
     111  Examine the updates and commit changes with `svn ci -m "updating
     112  copyright statements"`[[br]][[br]]
    97113  1. Needless to say, make sure that the program is in a state to be
    98114     released; make sure that all the tests pass, test the distribution
     
    103119make release
    104120}}}
    105      If everything is ok, attach the new package to the DownloadPage, else start over.[[br]][[br]]
    106   1. Create a tag, but first check that you are synchronized with repository
    107 {{{
    108 svn status -q -u
     121     Fix potential problems.[[br]][[br]]
     122  1. Check that you are synchronized with repository
     123{{{
     124svn status -qu
    109125}}}
    110126  and then create a tag using a one liner like
     
    112128svn copy http://dev.thep.lu.se/svndigest/svn/branches/A.B-stable \
    113129    http://dev.thep.lu.se/svndigest/svn/tags/A.B \
    114     -m "Tagging version A.B"
    115 }}}
    116   1. Update the version list in Trac using the
    117      [http://dev.thep.lu.se/svndigest/admin/ticket/versions trac-admin tool].
    118      Remember to set the date [[br]][[br]]
     130    -m "tagging version A.B"
     131}}}
     132  1. Prepare the minor branch for the first patch release [[br]][[br]]
     133   i. Update version number in `version.m4`. Locate and change the
     134      below line
     135{{{
     136m4_define([PATCH_VERSION], [1])
     137m4_define([SVNDIGEST_DEV_BUILD], [true])
     138}}}
     139   i. Add an entry in `NEWS`
     140{{{
     141version A.B.1 (released NOT YET)
     142}}}
     143      The date is set when version A.B.1 is released. [[br]][[br]]
     144   i. Commit changes to the repository,
     145      `svn ci -m "Bumping version"` [[br]][[br]]
     146  1. Upload `svndigest-A.B.tar.gz` and md5 file to DownloadPage
    119147  1. Update DownloadPage and [wiki:WikiStart WikiStart][[br]][[br]]
    120148   i. Update the section '''Latest stable release''' to reflect the new
     
    139167svn switch http://dev.thep.lu.se/svndigest/svn/branches/A.B-stable
    140168}}}
    141    i. In section '''svndigest ''devel'' ''' update link to `[milestone:"svndigest A.B+1" A.B+1]`.[[br]][[br]]
    142    i. On WikiStart update links `[source:tags/A.B/doc/readme.txt Manual]`, `[source:tags/A.B/NEWS NEWS]`, `[source:tags/A.B/README README]`, and also make sure that list of features is up to date.[[br]][[br]]
     169   i. In section '''svndigest ''devel'' ''' update link to
     170   `[milestone:"svndigest A.B+1" A.B+1]`.[[br]][[br]]
     171   i. On WikiStart update links `[source:tags/A.B/doc/readme.txt
     172   Manual]`, `[source:tags/A.B/NEWS NEWS]`, `[source:tags/A.B/README
     173   README]`, and also make sure that list of features is up to
     174   date.[[br]][[br]]
     175  1. Update the version list in Trac using the
     176     [http://dev.thep.lu.se/svndigest/admin/ticket/versions trac-admin tool].
     177     Remember to set the date [[br]][[br]]
     178
     179  1. Close the [http://dev.thep.lu.se/svndigest/roadmap milestone]
     180    associated with the release and replace `head` with appropriate
     181    revision. Add a new milestone as needed (with log link).
     182
    143183  1. Merge the release into the trunk. To avoid confusion and
    144184     minimize the risk of loosing fixes, this step is only performed by
    145      the Merge Master. [[br]][[br]]
    146    i. Checkout a pristine version of the trunk.
    147 {{{
    148 svn checkout http://dev.thep.lu.se/svndigest/svn/trunk trunk_merge
    149 }}}
    150    i. Merge changes in release branch since the fork into the trunk
    151 {{{
    152 cd trunk_merge
    153 svn merge http://dev.thep.lu.se/svndigest/svn/branches/A.B-stable@[fork] \
    154           http://dev.thep.lu.se/svndigest/svn/branches/A.B-stable
    155 }}}
    156    i. Resolve all conflicts. Run tests and perform all other
    157       appropriate tests to make sure that the merge does not create
    158       havoc. [[br]][[br]]
    159    i. Commit changes to the trunk branch.
    160 {{{
    161 svn commit -m "Merged branch A.B-stable to the trunk. Delta A.B - A.B@[fork]"
    162 }}}
    163   1. Prepare the minor branch for the first patch release [[br]][[br]]
    164    i. Go to release branch directory
    165 {{{
    166 cd path/to/svndigest-stable-branch/
    167 }}}
    168    i. Update version number in `version.m4`. Locate and change the
    169       below line
    170 {{{
    171 m4_define([PATCH_VERSION], [1])
    172 m4_define([SVNDIGEST_DEV_BUILD], [true])
    173 }}}
    174    i. Add an entry in `NEWS`
    175 {{{
    176 version A.B.1 (released DATE)
    177 }}}
    178       The date is set when version A.B.1 is released. [[br]][[br]]
    179    i. Commit changes to the repository,
    180       `svn ci -m "Changes for future release A.B.1"` [[br]][[br]]
    181   1. Close the [http://dev.thep.lu.se/svndigest/roadmap milestone]
    182     associated with the release and replace `head` with appropriate revision. Add a new milestone as needed (with log link).
    183 
     185     the ''Merge Master''. [[br]][[br]]
     186   i. Go to a pristine trunk WC.
     187{{{
     188cd /path/to/svndigest-trunk
     189svn update
     190svn diff
     191}}}
     192  i. Merge changes into trunk WC.
     193{{{
     194svn merge http://dev.thep.lu.se/svndigest/svn/branches/A.B-stable@fork_revision \
     195          http://dev.thep.lu.se/svndigest/svn/tags/A.B
     196}}}
     197  i. Resolve all conflicts. Run tests and perform all other
     198     appropriate tests to make sure that the merge does not create
     199     havoc. Typically changes in `m4/version.m4` are problematic
     200     so check this file extra carefully.[[br]][[br]]
     201  i. Commit changes to the trunk branch.
     202{{{
     203svn commit -m "Merged release A.B to the trunk. Delta A.B - A.B@fork_revision"
     204}}}
    184205
    185206== Patch release procedure ==
     
    206227  1. Update copyright statements with commands[[br]][[br]]
    207228{{{
    208 autoreconf -m
    209 make check
    210 ./bin/svndigest --copyright --no-report -v
    211 }}}
    212     Examine the updates and commit changes with `svn ci -m "updating copyright statements"`.[[br]][[br]]
     229make check && ./bin/svndigest --copyright --no-report -v
     230}}}
     231    Examine the updates and commit changes with `svn ci -m "updating
     232    copyright statements"`.[[br]][[br]]
    213233  1. Needless to say, make sure that the program is in a state to be
    214234     released; make sure that all the tests pass, test the distribution
    215235     package, and perform all other release tests you think is
    216236     appropriate:[[br]][[br]]
    217      Remove all unversioned files using
    218 {{{
    219 svn-clean
    220 }}}
    221      Check that remove was complete and that wc is up to date
    222 {{{
    223 svn status -u
    224 }}}
    225      which should display nothing. Build and test the package
    226 {{{
    227 ./bootstrap && ./configure && make && make check && make distcheck
    228 }}}
    229      If everything is ok, attach the new package to the DownloadPage, else start over.[[br]][[br]]
    230   1. Create a tag using a one liner like
     237     Run
     238{{{
     239make
     240make release
     241}}}
     242     Fix potential problems[[br]][[br]]
     243  1. Check that you are synchronized with repository
     244{{{
     245svn status -qu
     246}}}
     247   and then create a tag
    231248{{{
    232249svn copy http://dev.thep.lu.se/svndigest/svn/branches/A.B-stable \
    233     http://dev.thep.lu.se/svndigest/svn/tags/A.B.C \
    234     -m "Tagging version A.B.C"
    235 }}}
    236   1. Update the version list in Trac using the
    237     [http://dev.thep.lu.se/svndigest/admin/ticket/versions trac-admin tool].
    238     Remember to set the date [[br]][[br]]
     250    http://dev.thep.lu.se/svndigest/svn/tags/A.B.C \   
     251    -m "tagging version A.B.C"
     252}}}
     253  1. Prepare the minor branch for the next patch release [[br]][[br]]
     254   i. Update version number in `configure.ac`. Locate and change the
     255      below line
     256{{{
     257m4_define([PATCH_VERSION], [C+1])
     258m4_define([SVNDIGEST_DEV_BUILD], [true])
     259}}}
     260   i. Add an entry in `NEWS`
     261{{{
     262version A.B.[C+1] (released DATE)
     263}}}
     264      The date is set when version A.B.[C+1] is released. [[br]][[br]]
     265   i. Commit changes to the repository,
     266      `svn ci -m "Changes for future release A.B.[C+1]"` [[br]][[br]]
     267  1. Upload `svndigest-A.B.C.tar.gz` and md5 file to DownloadPage [[br]][[br]]
    239268  1. Update DownloadPage and [wiki:WikiStart WikiStart][[br]][[br]]
    240269   i. Update the section '''Latest stable release''' to reflect the new
     
    253282   i. In section '''svndigest ''stable'' ''' update link to
    254283      `[milestone:"svndigest A.B.[C+1]" A.B.[C+1]]`.[[br]][[br]]
    255    i. On WikiStart update reference to explicit latest version number, and links `[source:tags/A.B/doc/readme.txt Manual]`,  `[source:tags/A.B/NEWS NEWS]`, and `[source:tags/A.B/INSTALL Install]`.[[br]][[br]]
     284   i. On WikiStart update reference to explicit latest version number,
     285   and links `[source:tags/A.B.C/doc/readme.txt Manual]`,
     286   `[source:tags/A.B.C/NEWS NEWS]`, and `[source:tags/A.B.C/README
     287   README]`.[[br]][[br]]
     288  1. Close the milestone associated with the release and replace
     289     `head` with appropriate revision in log link. Add a new milestone
     290     as needed (with a log link).
     291  1. Update the version list in Trac using the
     292    [http://dev.thep.lu.se/svndigest/admin/ticket/versions trac-admin tool].
     293    Remember to set the date [[br]][[br]]
    256294  1. Merge the patch release into the trunk. To avoid confusion and
    257295     minimize the risk of loosing fixes, this step is only performed by
    258296     the Merge Master. [[br]][[br]]
    259    i. Checkout a pristine version of the trunk.
    260 {{{
    261 svn checkout http://dev.thep.lu.se/svndigest/svn/trunk trunk_merge
     297   i. go to a pristine trunk WC
     298{{{
     299cd /path/to/svndigest-trunk
     300svn update
     301svn diff
    262302}}}
    263303   i. Merge changes into trunk. In this example the diffence between a
     
    265305      the trunk WC
    266306{{{
    267 cd trunk_merge
    268307svn merge http://dev.thep.lu.se/svndigest/svn/tags/A.B \
    269308          http://dev.thep.lu.se/svndigest/svn/tags/A.B.1
     
    271310   i. Resolve all conflicts. Run tests and perform all other
    272311      appropriate tests to make sure that the merge does not create
    273       havoc. Note, changes in `version.m4` should typically not be merged into trunk.[[br]][[br]]
     312      havoc. Note, changes in `version.m4` should typically not be
     313      merged into trunk.[[br]][[br]]
    274314   i. Commit changes to the trunk branch.
    275315{{{
    276316svn commit -m "Merged patch release A.B.1 to the trunk. Delta A.B.1 - A.B"
    277317}}}
    278   1. Prepare the minor branch for the next patch release [[br]][[br]]
    279    i. Update version number in `configure.ac`. Locate and change the
    280       below line
    281 {{{
    282 m4_define([PATCH_VERSION], [C+1])
    283 m4_define([SVNDIGEST_DEV_BUILD], [true])
    284 }}}
    285    i. Add an entry in `NEWS`
    286 {{{
    287 version A.B.[C+1] (released DATE)
    288 }}}
    289       The date is set when version A.B.[C+1] is released. [[br]][[br]]
    290    i. Commit changes to the repository,
    291       `svn ci -m "Changes for future release A.B.[C+1]"` [[br]][[br]]
    292   1. Close the milestone associated with the release and replace `head` with appropriate revision in log link. Add a new
    293      milestone as needed (with a log link).