README.developers 4.09 KB
Newer Older
Pekka Pessi's avatar
Pekka Pessi committed
1
===============================================================
2
README.developers - Sofia-SIP development practices
Pekka Pessi's avatar
Pekka Pessi committed
3 4 5
===============================================================

Introduction
Pekka Pessi's avatar
Pekka Pessi committed
6
============
Pekka Pessi's avatar
Pekka Pessi committed
7 8 9 10 11 12 13 14

This file is a collection of practices and rules for Sofia-SIP
development. If you have questions, or would like to make 
changes, raise the issue on sofia-sip-devel (see 
http://lists.sourceforge.net/lists/listinfo/sofia-sip-devel ).


Important files for developers
Pekka Pessi's avatar
Pekka Pessi committed
15
==============================
Pekka Pessi's avatar
Pekka Pessi committed
16 17 18 19 20

AUTHORS
	List of contributors. When contributing new code, add 
	yourself to AUTHORS, and also remember to update the
	per source file copyright statements.
21 22 23 24 25 26

COPYRIGHTS
	List of licenses and related copyright statements. While 
	majority of Sofia-SIP is licensed under LGPL, there are
	a few files with different, but LGPL compatible, licensing 
	terms.
Pekka Pessi's avatar
Pekka Pessi committed
27 28 29 30
	
README.developers 
	This file.

Pekka Pessi's avatar
Pekka Pessi committed
31
TODO
Pekka Pessi's avatar
Pekka Pessi committed
32 33
	Not in active use yet.

Pekka Pessi's avatar
Pekka Pessi committed
34
<dir>/ChangeLog files
Pekka Pessi's avatar
Pekka Pessi committed
35
	All non-trivial changes to the source code should
36 37
	be documented in the ChangeLog files. See also the 
	top-level ChangeLog.
Pekka Pessi's avatar
Pekka Pessi committed
38 39 40


Version numbering 
Pekka Pessi's avatar
Pekka Pessi committed
41
=================
Pekka Pessi's avatar
Pekka Pessi committed
42 43

Package version
Pekka Pessi's avatar
Pekka Pessi committed
44
---------------
Pekka Pessi's avatar
Pekka Pessi committed
45 46

For public releases, the package version is:
47
     vMAJOR.MINOR.REVISION, where MINOR is even
Pekka Pessi's avatar
Pekka Pessi committed
48

49 50 51
For development releases and snaphots the version is one of:
     vMAJOR.MINOR.REVISION, where minor is odd
     vMAJOR.MINOR.REVISION.YEAR.MONTH.DAY, where minor is odd
Pekka Pessi's avatar
Pekka Pessi committed
52

53
For all releases, the version should be changed in configure.ac 
54
and committed to Darcs/CVS before making the release package. The person 
55
doing the release is responsible for updating the version number.
Pekka Pessi's avatar
Pekka Pessi committed
56 57

Library interface versions
Pekka Pessi's avatar
Pekka Pessi committed
58
--------------------------
Pekka Pessi's avatar
Pekka Pessi committed
59

60 61 62 63 64 65 66 67 68 69 70 71 72 73
Sofia-SIP libraries utilize libtool interface versioning. See

  - http://www.gnu.org/software/libtool/manual.html#Versioning
  - http://www.gnu.org/software/libtool/manual.html#Using-Automake

The interface versions are set in top-level 'configure.ac' file.
Additionally, the SONAME version (CURRENT-AGE) is set in the
same place. These version numbers are available for use as autoconf 
variables (see the library 'Makefile.am' files and 
'packages/sofia-sip.spec.in').

All changes to the library versions should be marked to the
appropriate library 'ChangeLog' file. The library version should
be changed at the same time as the first interface change is 
74
committed since the previous release. The interface version is 
75 76 77 78 79 80 81 82 83
frozen (should be marked to the 'ChangeLog' file) at the time
the next release is tagged (in other words, intra-release changes
need not be tracked with libtool versions).

The goal should always be to avoid breaking the API/ABIs until
absolutely necessary. Interfaces clearly marked as private can
be changed without change to library interface version, but
otherwise all public functions, types, variables and definitions
fall under interface change control.
Pekka Pessi's avatar
Pekka Pessi committed
84 85


Pekka Pessi's avatar
Pekka Pessi committed
86 87 88
Version control tags
====================

89 90
Tagging releases and snapshots
------------------------------
Pekka Pessi's avatar
Pekka Pessi committed
91

92 93
- source repository (*)
    - master Darcs tree at:
94
      http://sofia-sip.org/repos/sofia-sip
95 96
    - CVS tree (only used to track major releases) at:
      http://sourceforge.net/cvs/?group_id=143636
Pekka Pessi's avatar
Pekka Pessi committed
97 98
- tags: rel-sofia-sip-x_y_z
    - stable and development releases (matches release 
Pekka Pessi's avatar
Pekka Pessi committed
99
      version sofia-sip-x.y.z)
Pekka Pessi's avatar
Pekka Pessi committed
100 101 102 103
- tags: snapshot_rel_YEARMMDD
    - snapshot releases at
      http://sofia-sip.sourceforge.net/snapshots/

104 105 106 107
Notes (*):
    - Information about Darcs:
      http://abridgegame.org/darcs/
      http://lwn.net/Articles/110516/
Pekka Pessi's avatar
Pekka Pessi committed
108

109

Pekka Pessi's avatar
Pekka Pessi committed
110
Sending patches
Pekka Pessi's avatar
Pekka Pessi committed
111
===============
Pekka Pessi's avatar
Pekka Pessi committed
112

113 114
People without Darcs access
---------------------------
Pekka Pessi's avatar
Pekka Pessi committed
115 116 117 118

Send your patches to sofia-sip-devel. Someone from the 
development team (see AUTHORS) will handle the patch.

119 120
People with Darcs access
------------------------
Pekka Pessi's avatar
Pekka Pessi committed
121 122 123 124 125 126 127

Trivial changes can be committed without review. For non-trivial 
changes, you should first send a proposal to sofia-sip-devel and
wait for comments. There are no strict approval rules so use of
common sense is recommended. ;)

Tips for making patches
Pekka Pessi's avatar
Pekka Pessi committed
128
-----------------------
Pekka Pessi's avatar
Pekka Pessi committed
129

130 131 132 133
- test your patch on a clean checkout from version control system
- remember to check for updates before pushing your changes
  to the master repository

Pekka Pessi's avatar
Pekka Pessi committed
134