Browse Source

Add an abi-check.sh script that shows how to run the abi-compliance-checker, update release creation steps slightly.

tags/json-c-0.17-20230812
Eric Hawicz 2 years ago
parent
commit
12ea386989
2 changed files with 53 additions and 4 deletions
  1. +11
    -4
      RELEASE_CHECKLIST.txt
  2. +42
    -0
      abi-check.sh

+ 11
- 4
RELEASE_CHECKLIST.txt View 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
@@ -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

------------



+ 42
- 0
abi-check.sh View File

@@ -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/..."

Loading…
Cancel
Save