changes (added/removed/updated funcs, etc...), and detect backwards compat
issues.
* https://github.com/lvc/abi-compliance-checker
+ * See also `abi-check.sh`
* If the new release is not backwards compatible, then this is a MAJOR release.
* Mention removed features in ChangeLog
* Consider re-adding backwards compatible support, through symbol
## Release creation
Start creating the new release:
- release=0.16
+
+ PREV=$(git tag | tail -1)
+ PREV=${PREV#json-c-}
+ PREV=${PREV%-*}
+ release=0.$((${PREV#*.} + 1))
+ cd ~
git clone https://github.com/json-c/json-c json-c-${release}
+ rm -rf distcheck
mkdir distcheck
cd distcheck
# Note, the build directory *must* be entirely separate from
Make any fixes/changes *before* branching.
cd json-c-${release}
- git branch json-c-${release}
- git checkout json-c-${release}
+ git checkout -b json-c-${release}
------------
openssl md5 json-c*gz
Copy and paste this output into the wiki page at:
- https://github.com/json-c/json-c/wiki
+* https://github.com/json-c/json-c/wiki
+* https://github.com/json-c/json-c/wiki/Old-Releases
------------
--- /dev/null
+#!/bin/sh
+
+prev=0.16
+release=0.17
+
+# ... clone json-c, abi-compliance-checker, abi-dumper
+
+mkdir build
+cd build
+CFLAGS=-Og cmake -DCMAKE_INSTALL_PREFIX=~/json-c-installs/json-c-${release} ..
+make && make test && make install
+
+# Assume the old version has already been built
+
+cd ~/abi-compliance-checker
+mkxml()
+{
+ ver="$1"
+cat <<EOF > json-c-${ver}.xml
+<foo>
+<version>
+ ${ver}
+</version>
+
+<headers>
+../json-c-installs/json-c-${ver}/include/json-c
+</headers>
+
+<libs>
+../json-c-installs/json-c-${ver}/lib64/libjson-c.so
+</libs>
+</foo>
+EOF
+}
+mkxml ${release}
+mkxml ${prev}
+
+perl abi-compliance-checker.pl -lib json-c -dump json-c-${prev}.xml -dump-path ./ABI-${prev}.dump
+perl abi-compliance-checker.pl -lib json-c -dump json-c-${release}.xml -dump-path ./ABI-${release}.dump
+perl abi-compliance-checker.pl -l json-c -old ABI-${prev}.dump -new ABI-${release}.dump
+
+echo "look in compat_reports/json-c/..."