|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
-
- Release checklist:
-
- Figure out whether a release is worthwhile to do.
- Analyze the previous release branch to see if anything should have beeni
- applied to master.
- Analyze APIs between previous release branch and master to produce list of
- changes (added/removed/updated funcs, etc...), and detect backwards compat
- issues.
- If the new release is not backwards compatible, then this is a MAJOR release.
- Collect changes and assemble tentative release notes.
- Identify previous release branch point
- Check commit logs between previous branch point and now
- Create a new issues_closed_for_X.Y.md file
-
- Update ChangeLog with relevant notes before branching.
-
- Check that the compile works on Linux
- Check that the compile works on NetBSD
- Check that the compile works on Windows
-
- Start creating the new release:
- release=0.14
- git clone https://github.com/json-c/json-c json-c-${release}
-
- mkdir distcheck
- cd distcheck
- # Note, the build directory *must* be entirely separate from
- # the source tree for distcheck to work properly.
- cmake ../json-c-${release}
- make distcheck
- cd ..
-
- Make any fixes/changes *before* branching.
-
- cd json-c-${release}
- git branch json-c-${release}
- git checkout json-c-${release}
-
- ------------
-
- Using ${release}:
- Update the version in json_c_version.h
- Update the version in Doxyfile (PROJECT_NUMBER)
- Update the version in CMakeLists.txt (VERSION in the project(...) line)
- Update the version in config.h.win32 (several places)
-
- Update the set_target_properties() line in CmakeLists.txt to set the shared
- library version. Generally, unless we're doing a major release, change:
- VERSION x.y.z
- to
- VERSION x.y+1.z
-
- git commit -a -m "Bump version to ${release}"
-
- ------------
-
- Generate the doxygen documentation:
-
- doxygen
- git add -f doc
- git commit doc
-
- ------------
-
- Create the release tarballs:
-
- cd ..
- echo .git > excludes
- tar -czf json-c-${release}.tar.gz -X excludes json-c-${release}
-
- echo doc >> excludes
- tar -czf json-c-${release}-nodoc.tar.gz -X excludes json-c-${release}
-
- ------------
-
- Tag the branch:
-
- cd json-c-${release}
- git tag -a json-c-${release}-$(date +%Y%m%d) -m "Release json-c-${release}"
-
- git push origin json-c-${release}
- git push --tags
-
- ------------
-
- Go to Amazon S3 service at:
- https://console.aws.amazon.com/s3/
-
- Upload the two tarballs in the json-c_releases folder.
- When uploading, use "Reduced Redundancy", and make the uploaded files publicly accessible.
-
- Logout of Amazon S3, and verify that the files are visible.
- https://s3.amazonaws.com/json-c_releases/releases/index.html
-
- ===================================
-
- Post-release checklist:
-
- git checkout master
-
- Add new section to ChangeLog for ${release}+1
-
- Use ${release}.99 to indicate a version "newer" than anything on the branch:
- Update the version in json_c_version.h
- Update the version in Doxyfile
- Update the version in CMakeLists.txt
- Update the version in config.h.win32
-
- Update RELEASE_CHECKLIST.txt, set release=${release}+1
-
- Update the set_target_properties() line in CmakeLists.txt to match the release branch.
-
- ------------
-
- Update the gh-pages branch with new docs:
-
- cd json-c-${release}
- git checkout json-c-${release}
- cd ..
-
- git clone -b gh-pages https://github.com/json-c/json-c json-c-pages
- cd json-c-pages
- mkdir json-c-${release}
- cp -R ../json-c-${release}/doc json-c-${release}/.
- git add json-c-${release}
- git commit
-
- vi index.html
- # Add/change links to current release.
-
- git commit index.html
-
- git push
-
- ------------
-
- Update checksums on wiki page.
-
- cd ..
- openssl sha -sha256 json-c*gz
- openssl md5 json-c*gz
-
- Copy and paste this output into the wiki page at:
- https://github.com/json-c/json-c/wiki
-
- ------------
-
- Send an email to the mailing list.
|