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

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 36 37 38 39
	All non-trivial changes to the source code should
	be documented in the ChangeLog files.


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

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

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

48 49 50
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
51

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

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

59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
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 
commmitted since the previous release. The interface version is 
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
83 84


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

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

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

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

108

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

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

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

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

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
127
-----------------------
Pekka Pessi's avatar
Pekka Pessi committed
128

129 130 131 132
- 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
133