You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

RELEASE_CHECKLIST.txt 3.8 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. Release checklist:
  2. Figure out whether a release is worthwhile to do.
  3. Analyze the previous release branch to see if anything should have beeni
  4. applied to master.
  5. Analyze APIs between previous release branch and master to produce list of
  6. changes (added/removed/updated funcs, etc...), and detect backwards compat
  7. issues.
  8. If the new release is not backwards compatible, then this is a MAJOR release.
  9. Collect changes and assemble tentative release notes.
  10. Identify previous release branch point
  11. Check commit logs between previous branch point and now
  12. Create a new issues_closed_for_X.Y.md file
  13. Update ChangeLog with relevant notes before branching.
  14. Check that the compile works on Linux
  15. Check that the compile works on NetBSD
  16. Check that the compile works on Windows
  17. Start creating the new release:
  18. release=0.14
  19. git clone https://github.com/json-c/json-c json-c-${release}
  20. mkdir distcheck
  21. cd distcheck
  22. # Note, the build directory *must* be entirely separate from
  23. # the source tree for distcheck to work properly.
  24. cmake ../json-c-${release}
  25. make distcheck
  26. cd ..
  27. Make any fixes/changes *before* branching.
  28. cd json-c-${release}
  29. git branch json-c-${release}
  30. git checkout json-c-${release}
  31. ------------
  32. Using ${release}:
  33. Update the version in json_c_version.h
  34. Update the version in Doxyfile (PROJECT_NUMBER)
  35. Update the version in CMakeLists.txt (VERSION in the project(...) line)
  36. Update the version in config.h.win32 (several places)
  37. Update the set_target_properties() line in CmakeLists.txt to set the shared
  38. library version. Generally, unless we're doing a major release, change:
  39. VERSION x.y.z
  40. to
  41. VERSION x.y+1.z
  42. git commit -a -m "Bump version to ${release}"
  43. ------------
  44. Generate the doxygen documentation:
  45. doxygen
  46. git add -f doc
  47. git commit doc
  48. ------------
  49. Create the release tarballs:
  50. cd ..
  51. echo .git > excludes
  52. tar -czf json-c-${release}.tar.gz -X excludes json-c-${release}
  53. echo doc >> excludes
  54. tar -czf json-c-${release}-nodoc.tar.gz -X excludes json-c-${release}
  55. ------------
  56. Tag the branch:
  57. cd json-c-${release}
  58. git tag -a json-c-${release}-$(date +%Y%m%d) -m "Release json-c-${release}"
  59. git push origin json-c-${release}
  60. git push --tags
  61. ------------
  62. Go to Amazon S3 service at:
  63. https://console.aws.amazon.com/s3/
  64. Upload the two tarballs in the json-c_releases folder.
  65. When uploading, use "Reduced Redundancy", and make the uploaded files publicly accessible.
  66. Logout of Amazon S3, and verify that the files are visible.
  67. https://s3.amazonaws.com/json-c_releases/releases/index.html
  68. ===================================
  69. Post-release checklist:
  70. git checkout master
  71. Add new section to ChangeLog for ${release}+1
  72. Use ${release}.99 to indicate a version "newer" than anything on the branch:
  73. Update the version in json_c_version.h
  74. Update the version in Doxyfile
  75. Update the version in CMakeLists.txt
  76. Update the version in config.h.win32
  77. Update RELEASE_CHECKLIST.txt, set release=${release}+1
  78. Update the set_target_properties() line in CmakeLists.txt to match the release branch.
  79. ------------
  80. Update the gh-pages branch with new docs:
  81. cd json-c-${release}
  82. git checkout json-c-${release}
  83. cd ..
  84. git clone -b gh-pages https://github.com/json-c/json-c json-c-pages
  85. cd json-c-pages
  86. mkdir json-c-${release}
  87. cp -R ../json-c-${release}/doc json-c-${release}/.
  88. git add json-c-${release}
  89. git commit
  90. vi index.html
  91. # Add/change links to current release.
  92. git commit index.html
  93. git push
  94. ------------
  95. Update checksums on wiki page.
  96. cd ..
  97. openssl sha -sha256 json-c*gz
  98. openssl md5 json-c*gz
  99. Copy and paste this output into the wiki page at:
  100. https://github.com/json-c/json-c/wiki
  101. ------------
  102. Send an email to the mailing list.