release_management.txt 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. ===================================
  2. Sofia-SIP release management README
  3. ===================================
  4. :Author: Kai Vehmanen <kai -dot vehmanen -at- nokia -dot- com>
  5. :Version: 20060809-12
  6. :Formatting: reStructuredText, http://docutils.sourceforge.net/rst.html
  7. Introduction
  8. ============
  9. This README contains instructions for making new Sofia-SIP releases.
  10. Links to other resources
  11. ========================
  12. sofia-sip/README.developers
  13. The release notes
  14. =================
  15. The release notes should contain the following sections:
  16. - about Sofia-SIP
  17. - copied verbatim from sofia-sip/README
  18. - list of changes since last release
  19. - maintained in sofia-sip/RELEASE
  20. - see diff between cvs/darcs between previous and
  21. this version
  22. - written in freshmeat.net "Changes:" style
  23. - notes on API/ABI interface changes
  24. - maintained in sofia-sip/RELEASE
  25. - all changes in public interfaces, plus other
  26. notes that developers should be aware of
  27. - contributors to this release
  28. - maintained in sofia-sip/RELEASE
  29. - also sofia-sip/AUTHORS should be updated (file
  30. should list all persons/companies who have code/scripts/etc
  31. copyrighted to them in the sofia-sip tree)
  32. See the RELEASE.template file for a full list of release note
  33. sections.
  34. Making the release tarball
  35. ==========================
  36. - basics: check system clock of the build host ;)
  37. - update the version number in sofia-sip/configure.ac
  38. - make sure the library versions are correct, and you've
  39. frozen all library interfaces (with correct entries in
  40. ChangeLog files), see README.developers for more information
  41. on library versioning in general
  42. - make sure everything that is supposed to be in the
  43. release is in the master darcs tree
  44. - run 'make distcheck' to verify everything is ready for
  45. release (requires automake-1.7 or newer)
  46. - tag repos (darcs and any slave trees) with release tag
  47. 'rel-sofia-sip-x_y_z', where x_y_z is the version number (see
  48. README.developers):
  49. sh> darcs tag -m"rel-sofia-sip-x_y_z"
  50. sh> cvs tag rel-sofia-sip-x_y_z
  51. - take a fresh checkout of the release using the release tag
  52. sh> darcs get http://sofia-sip.org/repos/sofia-sip --tag=rel-sofia-sip-1_yy_z
  53. - create the release tarball with "make distcheck" (make sure depcomp et
  54. al libtool scripts are correctly created)
  55. - calculate md5 and sha1 hashes using md5sum and sha1sum utilities,
  56. and copy the values to the release-notes (see below)
  57. Creating the release notes and updating the website
  58. ===================================================
  59. - combine the sofia-sip/RELEASE contents with
  60. the template found from sfnet_www/templates/relnotes.txt
  61. - store the resulting release notes to
  62. sfnet_www/relnotes/relnotes-sofia-sip-x.y.z.txt
  63. - add explicit link to the release notes to
  64. sfnet_www/download.html (three most recent releases,
  65. see guidelines in the html comments)
  66. - update sfnet_www/index.html to mention the latest
  67. release
  68. - commit the change to sf.net website CVS, and run the
  69. sfnet_www/put_online.sh script
  70. Uploading the release to sourceforge.net
  71. ========================================
  72. - use the the 'Admin' -> 'File releases' tool for
  73. creating a new release
  74. - to upload the file, you can use for example rsync:
  75. rsync -avP -e ssh sofia-sip-x.y.z.tar.gz USER@frs.sourceforge.net:uploads/
  76. - attach the release notes (relnotes-sofia-sip-x.y.z.txt)
  77. to the file release
  78. Announcing releases
  79. ===================
  80. - send an announcement mail, containing the
  81. release notes, to sofia-sip-devel@lists.sourceforge.net
  82. - post a news item to freshmeat.net 'sofia-sip'
  83. project (current project owner: Kai Vehmanen)
  84. After release
  85. =============
  86. - replace the RELEASE file with RELEASE.template, and
  87. commit it to master source repository (see sofia-sip/README.developers)
  88. - change version in configure.ac from "X.Y.Z" to
  89. "X.Y.Zdevel" (as it is in many cases unknown what the
  90. next version will be)
  91. - make a "tree open for development" commit
  92. Syncing CVS and darcs (or some other VCS)
  93. =========================================
  94. Some tips for synchronizing from/to different version controlled
  95. tree.
  96. - As CVS cannot trace file addition/move/removals, you need
  97. to be extra careful with these. With darcs, you can use the
  98. 'darcs changes -v' command to track down all fileops since
  99. last synchronization.
  100. - Always tag the src-tree with "syncuser-fromvcs-to-tovcs-yearmmdd".
  101. - Add a top-level ChangeLog entry that documents all the
  102. changes made outside the target tree (what, who and when -
  103. for example produced with the "darcs changes --summary"
  104. command).
  105. Checking API/ABI compatibility
  106. ==============================
  107. - Use a unit test binary built against an old library,
  108. to verify a new library version (forwards-compatibility).
  109. - Use the 'icheck' tool (in Debian) to make comparison
  110. between two released versions.