release_management.txt 4.83 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 83
  sfnet_www/put_online.sh script at the sourceforge.net
  shell server
Pekka Pessi's avatar
Pekka Pessi committed
84

Pekka Pessi's avatar
Pekka Pessi committed
85 86 87 88 89 90 91 92 93 94
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
95 96 97 98
Announcing releases
===================

- send an announcement mail, containing the
99
  release notes, to sofia-sip-devel@lists.sourceforge.net
Pekka Pessi's avatar
Pekka Pessi committed
100 101
- post a news item to freshmeat.net 'sofia-sip'
  project (current project owner: Kai Vehmanen)
102 103 104 105 106

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

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

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

116
Some tips for synchronizing from/to different version controlled
117 118 119 120
tree.

- As CVS cannot trace file addition/move/removals, you need
  to be extra careful with these. With darcs, you can use the
121
  'darcs changes -v' command to track down all fileops since
122 123 124 125 126 127 128 129
  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).
130 131 132 133 134 135

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

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