From: Eric Hawicz Date: Sat, 12 Aug 2023 18:34:35 +0000 (-0400) Subject: Add an abi-check.sh script that shows how to run the abi-compliance-checker, update... X-Git-Tag: json-c-0.17-20230812~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=12ea386989c8cb2c22c90d6af9eb4a02331fc92f;p=thirdparty%2Fjson-c.git Add an abi-check.sh script that shows how to run the abi-compliance-checker, update release creation steps slightly. --- diff --git a/RELEASE_CHECKLIST.txt b/RELEASE_CHECKLIST.txt index 958c2bcd..8720c3e5 100644 --- a/RELEASE_CHECKLIST.txt +++ b/RELEASE_CHECKLIST.txt @@ -16,6 +16,7 @@ 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 @@ -40,9 +41,15 @@ ## 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 @@ -54,8 +61,7 @@ Start creating the new release: 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} ------------ @@ -177,7 +183,8 @@ Update checksums on wiki page. 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 ------------ diff --git a/abi-check.sh b/abi-check.sh new file mode 100644 index 00000000..6dab54a8 --- /dev/null +++ b/abi-check.sh @@ -0,0 +1,42 @@ +#!/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 < json-c-${ver}.xml + + + ${ver} + + + +../json-c-installs/json-c-${ver}/include/json-c + + + +../json-c-installs/json-c-${ver}/lib64/libjson-c.so + + +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/..."