Ignore:
Timestamp:
Dec 18, 2013, 9:18:48 AM (6 years ago)
Author:
Peter
Message:

merge patch release 0.11.1 into trunk

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/README.developer

    r3114 r3144  
    142142http://www.gnu.org/software/libtool/manual/libtool.html#Debugging-executables
    143143
     144
     145= Release Procedure =
     146
     147These instructions cover how to release minor and patch releases in a
     148project that uses trac/subversion for revision control and project
     149management. How to release major releases is not covered yet since we
     150have not done that (with the exception of the first release). Release
     151numbering follows the normal convention of major.minor.patch and the
     152APR (see http://apr.apache.org/versioning.html) guidelines for
     153releases are used.
     154
     155The main development is performed in the trunk branch of the
     156repository. A new release branch is created for each minor release
     157from the trunk and patch releases are snapshots of the minor release
     158branch. This implies that patch work is performed in the minor release
     159branch, and changes made release branch is transferred to the trunk
     160every time a new patch release is made. Remember, patch work should be
     161limited to bug fixes and important fixes only leaving development of
     162new features and designs to the trunk branch.
     163
     164Releases should only be performed by an appointed member of the team,
     165the Release Manager.
     166
     167
     168=== Creating a release branch ===
     169
     170Once people agree that a new release branch should be made, the
     171Release Manager creates it with the following procedure
     172(substitute A.B with the version you are preparing, e.g. 0.3)
     173
     174 1. Check that 'YAT_LT_VERSION_INFO' is set correcly
     175    otherwise update following line in 'm4/version.m4'
     176
     1778<----
     178    m4_define([YAT_LT_VERSION_INFO], [c:r:a])
     1798<----
     180
     181 2. Add a line in NEWS
     1828<----
     183     See the end for copyrights and conditions.
     184
     185    +yat A.B.x series from http://dev.thep.lu.se/yat/svn/branches/A.B-stable
     186    +
     187     Version A.B (released NOT YET)
     1888<----
     189
     190 3. Commit the changes with
     191
     192    #> svn ci -m "Prepare A.B-stable branch"
     193
     194 4. For this step svncopyright is needed, http://dev.thep.lu.se/svndigest.
     195    Update copyright statements with command:
     196
     197    #> make copyright
     198
     199    Examine the updates and commit changes with
     200
     201    #> svn ci -m "updating copyright statements"`.
     202
     203 5. Create a new stable branch with
     204
     205    #> make svn-stable-branch
     206
     207 6. Prepare the trunk for the next minor release
     208
     209   a) Update version number in 'm4/version.m4'. Locate and change the
     210      below lines
     211
     2128<----
     213      MY_VERSION_early([A], [B+1], [0], [true])
     214      m4_define([YAT_LT_VERSION_INFO], [c+1:0:0])
     2158<----
     216
     217   b) Add an entry in `NEWS`
     218
     2198<----
     220      version A.[B+1] (released NOT YET)
     2218<----
     222
     223      The date is set when version A.[B+1] is released. [[br]][[br]]
     224
     225   c) Commit changes to the repository:
     226
     227    #> svn ci -m "Bumping VERSION to A.[B+1]pre"
     228
     229 7. When someone with access to documentation site has time available,
     230    they will upgrade to the new branch. This person is usually not the
     231    release manager, so please send a reminder.
     232
     233=== Rolling a minor release ===
     234
     235    These instructions describe how to make a release. Replace A.B.C
     236    with current VERSION (A.B if this is not a patch release).
     237
     238 1. Update version number in 'm4/version.m4'. Locate and change the
     239    below line
     240
     2418<----
     242      MY_VERSION_early([A], [B], [C], [false])
     2438<----
     244
     245
     246 2. Update the interface version number in 'm4/version.m4'. Locate and
     247    set the version in the below line
     248
     2498<----
     250      m4_define([YAT_LT_VERSION_INFO], [c:r:a])
     2518<----
     252
     253    appropriately. Refer to file 'm4/version.m4' for details on how to
     254    decide triplet 'c:r:a'.
     255
     256
     257 3. Set the date for the new release in 'NEWS'.
     258
     2598<----
     260      version A.B.C (released 26 June 2007)
     2618<----
     262
     263
     264 4. Make sure that the items in 'NEWS' cover the new features of the
     265    release.
     266
     267
     268 5. Commit changes to the repository:
     269
     270    #> svn ci -m "Preparing release A.B.C"
     271
     272
     273 6. For this step svncopyright is needed, http://dev.thep.lu.se/svndigest.
     274    Update copyright statements with command:
     275
     276    #> make copyright
     277
     278    Examine the updates and commit changes with
     279
     280    #> svn ci -m "updating copyright statements"
     281
     282
     283 7. Now it's time to create a tarball, an svn tag, and upload the
     284    tarball to sourceforge. For this to work you need to hold write
     285    permissions at libyat project page at sourceforge. If your sf user
     286    id is different from the one defined in 'Makefile.am', you can
     287    override the default with 'sf_user=<your id>'. Issue the
     288    convenience target:
     289
     290    #> make release-tag-upload
     291
     292    This will run some sanity checks, run maintainer-check and
     293    distcheck, create an svn tag, and upload the newly created tarball
     294    to sourceforge. The last step requires that you provide your SF password.
     295
     296
     297 8. On WikiStart update links
     298    '[source:tags/A.B.C/NEWS NEWS]' and
     299    '[source:branches/A.B-stable/README README]'
     300
     301 9. Update SubversionCheckout
     302
     303   a) In section 'yat latest release' update command to
     304      'svn checkout http://dev.thep.lu.se/yat/svn/tags/A.B.C yat-A.B.C
     305      and link to
     306      '[source:tags/A.B.C/NEWS NEWS]'
     307      If this is a patch release jump to point 10).
     308
     309   b) In section 'yat stable' update command to
     310      'svn checkout http://dev.thep.lu.se/yat/svn/branches/A.B-stable yat-A.B.x
     311      and link to
     312      '[source:branches/A.B-stable/NEWS NEWS]'
     313
     314
     315 10. Close the milestone associated with this release.
     316
     317
     318 11. Update the version list in Trac using the trac-admin tool.
     319
     320
     321 12. Use file 'announcement.txt' as template and send email to
     322    libyat-users@lists.sourceforge.net
     323
     324
     325 13. Merge the release into the trunk.
     326
     327    a) Go to a pristine trunk WC:
     328
     329       #> cd /path/to/yat-trunk/
     330       #> make check-svn-diff
     331
     332    b) Merge changes into trunk:
     333
     334       #> svn merge ^/branches/A.B-stable
     335
     336    c) Resolve potential conflicts. Run tests and perform all other
     337       appropriate tests to make sure that the merge does not create
     338       havoc. Typically changes in `m4/version.m4` are problematic so
     339       check this file extra carefully.
     340
     341    d) Commit changes to the trunk branch.
     342
     343       #> svn commit -m "Merged release A.B.C into trunk."
     344
     345
     346 14. Prepare the stable branch for the next patch release.
     347
     348    a) Update version number in 'm4/version.m4'. Locate and change the
     349       below line
     350
     3518<---
     352       MY_VERSION_early([A], [B], [C+1], [true])
     3538<---
     354
     355       Run 'make all' and while waiting finalize item b) below
     356
     357    b) Add an entry in 'NEWS'
     358
     3598<----
     360       version A.B.[C+1] (released NOT YET)
     3618<----
     362
     363       The date is set when version A.B.[C+1] is released.
     364
     365
     366 15. Commit changes to the repository:
     367
     368    #> svn ci -m "Bumping VERSION to A.B.[C+1]pre"
     369
     370
    144371= Versioning =
    145372
Note: See TracChangeset for help on using the changeset viewer.