README.developers 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. ===============================================================
  2. README.developers - Sofia-SIP development practices
  3. ===============================================================
  4. Introduction
  5. ============
  6. This file is a collection of practices and rules for Sofia-SIP
  7. development. If you have questions, or would like to make
  8. changes, raise the issue on sofia-sip-devel (see
  9. http://lists.sourceforge.net/lists/listinfo/sofia-sip-devel ).
  10. Important files for developers
  11. ==============================
  12. AUTHORS
  13. List of contributors. When contributing new code, add
  14. yourself to AUTHORS, and also remember to update the
  15. per source file copyright statements.
  16. COPYRIGHTS
  17. List of licenses and related copyright statements. While
  18. majority of Sofia-SIP is licensed under LGPL, there are
  19. a few files with different, but LGPL compatible, licensing
  20. terms.
  21. README.developers
  22. This file.
  23. TODO
  24. Not in active use yet.
  25. <dir>/ChangeLog files
  26. All non-trivial changes to the source code should
  27. be documented in the ChangeLog files. See also the
  28. top-level ChangeLog.
  29. Version numbering
  30. =================
  31. Package version
  32. ---------------
  33. For public releases, the package version is:
  34. vMAJOR.MINOR.REVISION, where MINOR is even
  35. For development releases and snaphots the version is one of:
  36. vMAJOR.MINOR.REVISION, where minor is odd
  37. vMAJOR.MINOR.REVISION.YEAR.MONTH.DAY, where minor is odd
  38. For all releases, the version should be changed in configure.ac
  39. and committed to Darcs/CVS before making the release package. The person
  40. doing the release is responsible for updating the version number.
  41. Library interface versions
  42. --------------------------
  43. Sofia-SIP libraries utilize libtool interface versioning. See
  44. - http://www.gnu.org/software/libtool/manual.html#Versioning
  45. - http://www.gnu.org/software/libtool/manual.html#Using-Automake
  46. The interface versions are set in top-level 'configure.ac' file.
  47. Additionally, the SONAME version (CURRENT-AGE) is set in the
  48. same place. These version numbers are available for use as autoconf
  49. variables (see the library 'Makefile.am' files and
  50. 'packages/sofia-sip.spec.in').
  51. All changes to the library versions should be marked to the
  52. appropriate library 'ChangeLog' file. The library version should
  53. be changed at the same time as the first interface change is
  54. committed since the previous release. The interface version is
  55. frozen (should be marked to the 'ChangeLog' file) at the time
  56. the next release is tagged (in other words, intra-release changes
  57. need not be tracked with libtool versions).
  58. The goal should always be to avoid breaking the API/ABIs until
  59. absolutely necessary. Interfaces clearly marked as private can
  60. be changed without change to library interface version, but
  61. otherwise all public functions, types, variables and definitions
  62. fall under interface change control.
  63. Version control tags
  64. ====================
  65. Tagging releases and snapshots
  66. ------------------------------
  67. - source repository (*)
  68. - master Darcs tree at:
  69. http://sofia-sip.org/repos/sofia-sip
  70. - CVS tree (only used to track major releases) at:
  71. http://sourceforge.net/cvs/?group_id=143636
  72. - tags: rel-sofia-sip-x_y_z
  73. - stable and development releases (matches release
  74. version sofia-sip-x.y.z)
  75. - tags: snapshot_rel_YEARMMDD
  76. - snapshot releases at
  77. http://sofia-sip.sourceforge.net/snapshots/
  78. Notes (*):
  79. - Information about Darcs:
  80. http://abridgegame.org/darcs/
  81. http://lwn.net/Articles/110516/
  82. Sending patches
  83. ===============
  84. People without Darcs access
  85. ---------------------------
  86. Send your patches to sofia-sip-devel. Someone from the
  87. development team (see AUTHORS) will handle the patch.
  88. People with Darcs access
  89. ------------------------
  90. Trivial changes can be committed without review. For non-trivial
  91. changes, you should first send a proposal to sofia-sip-devel and
  92. wait for comments. There are no strict approval rules so use of
  93. common sense is recommended. ;)
  94. Tips for making patches
  95. -----------------------
  96. - test your patch on a clean checkout from version control system
  97. - remember to check for updates before pushing your changes
  98. to the master repository