release_management.txt 4.75 KB
Newer Older
1 2 3 4 5
===================================
Sofia-SIP release management README
===================================

:Author: Kai Vehmanen <kai -dot vehmanen -at- nokia -dot- com>
6
:Version: 20060809-12
7 8 9 10 11
:Formatting: reStructuredText, http://docutils.sourceforge.net/rst.html

Introduction
============

12
This README contains instructions for making new Sofia-SIP releases.
13 14 15 16 17 18 19 20 21

Links to other resources
========================

sofia-sip/README.developers

The release notes
=================

22
The release notes should contain the following sections:
23 24 25 26 27

- about Sofia-SIP
    - copied verbatim from sofia-sip/README
- list of changes since last release
    - maintained in sofia-sip/RELEASE
28 29 30
    - see diff between cvs/darcs between previous and
      this version
    - written in freshmeat.net "Changes:" style 
31 32
- notes on API/ABI interface changes 
    - maintained in sofia-sip/RELEASE
33 34
    - all changes in public interfaces, plus other
      notes that developers should be aware of
35 36
- contributors to this release
    - maintained in sofia-sip/RELEASE
37 38 39
    - also sofia-sip/AUTHORS should be updated (file
      should list all persons/companies who have code/scripts/etc
      copyrighted to them in the sofia-sip tree)
40

41 42 43
See the RELEASE.template file for a full list of release note
sections.

44 45 46
Making the release tarball 
==========================

47
- basics: check system clock of the build host ;)
48
- update the version number in sofia-sip/configure.ac
49 50 51 52
- make sure the library versions are correct, and you've
  frozen all library interfaces (with correct entries in
  ChangeLog files), see README.developers for more information
  on library versioning in general
53
- make sure everything that is supposed to be in the
54
  release is in the master darcs tree
55 56
- run 'make distcheck' to verify everything is ready for
  release (requires automake-1.7 or newer)
57
- tag repos (darcs and any slave trees) with release tag
58 59
  'rel-sofia-sip-x_y_z', where x_y_z is the version number (see
  README.developers):
60 61 62
    sh> darcs tag -m"rel-sofia-sip-x_y_z"
    sh> cvs tag rel-sofia-sip-x_y_z
- take a fresh checkout of the release using the release tag
63 64
    sh> darcs get http://sofia-sip.org/repos/sofia-sip --tag=rel-sofia-sip-1_yy_z
- create the release tarball with "make distcheck"
Pekka Pessi's avatar
Pekka Pessi committed
65 66 67
- calculate md5 and sha1 hashes using md5sum and sha1sum utils,
  and copy the values to the release-notes (see below)

68 69
Creating the release notes and updating the website
===================================================
70 71 72

- combine the sofia-sip/RELEASE contents with
  the template found from sfnet_www/templates/relnotes.txt
Pekka Pessi's avatar
Pekka Pessi committed
73
- store the resulting release notes to 
74
  sfnet_www/relnotes/relnotes-sofia-sip-x.y.z.txt
75
- add explicit link to the release notes to 
76
  sfnet_www/download.html (three most recent releases,
77
  see guidelines in the html comments)
78 79
- update sfnet_www/index.html to mention the latest
  release
80
- commit the change to sf.net website CVS, and run the 
81 82
  sfnet_www/put_online.sh script at the sourceforge.net
  shell server
Pekka Pessi's avatar
Pekka Pessi committed
83

Pekka Pessi's avatar
Pekka Pessi committed
84 85 86 87 88 89 90 91 92 93
Uploading the release to sourceforge.net
========================================

- use the the 'Admin' -> 'File releases' tool for
  creating a new release
- to upload the file, you can use for example ncftpput:
  ncftpput -u anonymous -p USER@users.sourceforge.net upload.sourceforge.net /incoming/ sofia-sip-x.y.z.tar.gz
- attach the release notes (relnotes-sofia-sip-x.y.z.txt)
  to the file release

Pekka Pessi's avatar
Pekka Pessi committed
94 95 96 97 98 99 100
Announcing releases
===================

- send an announcement mail, containing the
  release notes, to sofia-sip-devel@isource.nokia.com
- post a news item to freshmeat.net 'sofia-sip'
  project (current project owner: Kai Vehmanen)
101 102 103 104 105

After release
=============

- replace the RELEASE file with RELEASE.template, and
106
  commit it to master source repository (see sofia-sip/README.developers)
107
- change version in configure.ac from "X.Y.Z" to 
108
  "X.Y.Zwork" (as it is in many cases unknown what the 
109 110
  next version will be)
- make a "tree open for development" commit
111 112 113 114 115 116 117 118 119

Syncing CVS and darcs (or some other VCS)
=========================================

Some tips for synching from/to different version controlled
tree.

- As CVS cannot trace file addition/move/removals, you need
  to be extra careful with these. With darcs, you can use the
120
  'darcs changes -v' command to track down all fileops since
121 122 123 124 125 126 127 128
  last synchronization.

- Always tag the src-tree with "syncuser-fromvcs-to-tovcs-yearmmdd".

- Add a top-level ChangeLog entry that documents all the 
  changes made outside the target tree (what, who and when -
  for example produced with the "darcs changes --summary" 
  command).
129 130 131 132 133 134 135 136

Checking API/ABI compatibility
==============================

- Use a unit test binary built against an old library, 
  to verify a new library version (forwards-compatibility).
- Use the 'icheck' tool (in Debian) to make comparsion
  with two released versions.