release_management.txt 4.8 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
    sh> darcs get http://sofia-sip.org/repos/sofia-sip --tag=rel-sofia-sip-1_yy_z
64 65
- create the release tarball with "make distcheck" (make sure depcomp et
  al libtool scripts are correctly created)
66
- calculate md5 and sha1 hashes using md5sum and sha1sum utilities,
Pekka Pessi's avatar
Pekka Pessi committed
67 68
  and copy the values to the release-notes (see below)

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

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

- send an announcement mail, containing the
98
  release notes, to sofia-sip-devel@lists.sourceforge.net
Pekka Pessi's avatar
Pekka Pessi committed
99 100
- 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.Zdevel" (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

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

115
Some tips for synchronizing from/to different version controlled
116 117 118 119
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

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

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