]> git.ipfire.org Git - thirdparty/json-c.git/commitdiff
Add an abi-check.sh script that shows how to run the abi-compliance-checker, update...
authorEric Hawicz <erh+git@nimenees.com>
Sat, 12 Aug 2023 18:34:35 +0000 (14:34 -0400)
committerEric Hawicz <erh+git@nimenees.com>
Sat, 12 Aug 2023 18:56:51 +0000 (14:56 -0400)
RELEASE_CHECKLIST.txt
abi-check.sh [new file with mode: 0644]

index 958c2bcd80a67f30fb080f63bb233ebeba735a67..8720c3e5a3ca0a69153bf2f78296467c0d51099b 100644 (file)
@@ -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
 ## 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 (file)
index 0000000..6dab54a
--- /dev/null
@@ -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 <<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/..."