README.developers 4.08 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

This file is a collection of practices and rules for Sofia-SIP
9 10
development. If you have questions, or would like to make
changes, raise the issue on sofia-sip-devel (see
Pekka Pessi's avatar
Pekka Pessi committed
11 12 13 14
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

AUTHORS
18
	List of contributors. When contributing new code, add
Pekka Pessi's avatar
Pekka Pessi committed
19 20
	yourself to AUTHORS, and also remember to update the
	per source file copyright statements.
21 22

COPYRIGHTS
23
	List of licenses and related copyright statements. While
24
	majority of Sofia-SIP is licensed under LGPL, there are
25
	a few files with different, but LGPL compatible, licensing
26
	terms.
27 28

README.developers
Pekka Pessi's avatar
Pekka Pessi committed
29 30
	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
	be documented in the ChangeLog files. See also the
37
	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 54
For all releases, the version should be changed in configure.ac
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
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
67 68
same place. These version numbers are available for use as autoconf
variables (see the library 'Makefile.am' files and
69 70 71 72
'packages/sofia-sip.spec.in').

All changes to the library versions should be marked to the
appropriate library 'ChangeLog' file. The library version should
73 74
be changed at the same time as the first interface change is
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
- tags: rel-sofia-sip-x_y_z
98
    - 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
Send your patches to sofia-sip-devel. Someone from the
Pekka Pessi's avatar
Pekka Pessi committed
117 118
development team (see AUTHORS) will handle the patch.

119 120
People with Darcs access
------------------------
Pekka Pessi's avatar
Pekka Pessi committed
121

122
Trivial changes can be committed without review. For non-trivial
Pekka Pessi's avatar
Pekka Pessi committed
123 124 125 126 127
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