diff --git a/doc/ABI/README b/doc/ABI/README new file mode 100644 index 0000000..14cd1e5 --- /dev/null +++ b/doc/ABI/README @@ -0,0 +1,34 @@ +libyang ABI/API changes +======================= + +Here is a script to build information about changes in libyang ABI/API +between its versions. Such an overview can help developers migrating from +one version to another. The script uses Andrey Ponomarenko's tools from ABI +Laboratory [1], so it is necessary to install these tools first. To do so, +you can use the automatic installer from [2]. Target must be 'abi-tracker'. + +Note: Some others tools are used by the LVC toolset and not all of them are + correctly checked, so be carefull and check warnings and error + messages (e.g. I have been missing correct version of ctags). + +Then here is the 'abi.sh' to build ABI/API timeline for libyang. By default +it includes all the versions from the project start to the current devel +branch. + +You can limit the number of included libyang versions via a number given +as a parameter to the script. For example + +$ ./abi.sh 10 + +builds overview for the last 10 libyang versions. + +Or you can compare only two specific libyang versions providing the version +numbers as script parameters: + +$ ./abi.sh 0.4.0 0.5.20 + +The result is in all cases stored as 'timeline/libyang/index.html' file. + +[1] - https://github.com/lvc +[2] - https://github.com/lvc/installer/releases + diff --git a/doc/ABI/abi.sh b/doc/ABI/abi.sh new file mode 100755 index 0000000..8d6d41f --- /dev/null +++ b/doc/ABI/abi.sh @@ -0,0 +1,64 @@ +#!/bin/bash +ABI_MON=abi-monitor +ABI_TRK=abi-tracker + +which $ABI_MON > /dev/null || exit 1 +which $ABI_TRK > /dev/null || exit 1 + +if test -n "$2"; then + VER1="$1" + VER2="$2" +elif test -n "$1"; then + if test "$1" = "help" -o "$1" = "-h" -o "$1" = "--help"; then + echo Usage: + echo \t$0 [number of last versions] + echo \t$0 [version1] [version2] + exit 0 + fi + LIMIT="-limit $1" + l=$1 +fi + +if [ -e gitrepo ]; then + cd gitrepo + git pull + cd - +else + git clone https://github.com/CESNET/libyang.git gitrepo +fi +test -e packages || mkdir packages +test -e src/libyang || mkdir -p src/libyang +rm -rf src/libyang/* + +cd gitrepo +git checkout devel +VERSIONS=`git log --grep=VERSION --oneline | sed 's/ .* /_/'` +cd - +for i in $VERSIONS; do + if test "$l" = "0"; then + rm -rf abi_dump/libyang/${i//*_} + rm -rf installed/libyang/${i//*_} + else + test -n "$l" && l=$(($l-1)) + if test -n "$VER1"; then + if test "$VER1" != "${i//*_}" -a "$VER2" != "${i//*_}"; then + rm -rf abi_dump/libyang/${i//*_} + rm -rf installed/libyang/${i//*_} + continue + fi + fi + if test ! -f packages/libyang-${i//*_}.tgz; then + cd gitrepo + git checkout ${i//_*} + cd - + tar -czf packages/libyang-${i//*_}.tgz gitrepo + fi + cp packages/libyang-${i//*_}.tgz src/libyang/ + fi +done + +cp libyang.json libyang.aux +abi-monitor -get -build $LIMIT libyang.aux +abi-tracker -build libyang.aux +rm -rf libyang.aux + diff --git a/doc/ABI/build.sh b/doc/ABI/build.sh new file mode 100755 index 0000000..0d65344 --- /dev/null +++ b/doc/ABI/build.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_TO/usr -DCMAKE_BUILD_TYPE:String="Debug" . && make && make install + diff --git a/doc/ABI/libyang.json b/doc/ABI/libyang.json new file mode 100644 index 0000000..916e986 --- /dev/null +++ b/doc/ABI/libyang.json @@ -0,0 +1,8 @@ +{ + "Name": "libyang", + "SourceDir": "src/libyang/", + "BuildScript": "build.sh", + "ChangeLog": "On", + "HeadersDiff": "On", + "PkgDiff": "On", +} diff --git a/doc/logo.png b/doc/logo.png new file mode 100644 index 0000000..13878b7 Binary files /dev/null and b/doc/logo.png differ