doc FEATURE add ABI tracker to provide information about changes in API/ABI
diff --git a/doc/ABI/README b/doc/ABI/README
new file mode 100644
index 0000000..054cfa0
--- /dev/null
+++ b/doc/ABI/README
@@ -0,0 +1,34 @@
+libnetconf2 ABI/API changes
+===========================
+
+Here is a script to build information about changes in libnetconf2 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 libnetconf2. By default
+it includes all the versions from the project start to the current devel
+branch.
+
+You can limit the number of included libnetconf2 versions via a number given
+as a parameter to the script. For example
+
+$ ./abi.sh 10
+
+builds overview for the last 10 libnetconf2 versions.
+
+Or you can compare only two specific libnetconf2 versions providing the version
+numbers as script parameters:
+
+$ ./abi.sh 0.1.0 0.2.3
+
+The result is in all cases stored as 'timeline/libnetconf2/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..c7d4c6a
--- /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/libnetconf2.git gitrepo
+fi
+test -e packages || mkdir packages
+test -e src/libnetconf2 || mkdir -p src/libnetconf2
+rm -rf src/libnetconf2/*
+
+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/libnetconf2/${i//*_}
+ rm -rf installed/libnetconf2/${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/libnetconf2/${i//*_}
+ rm -rf installed/libnetconf2/${i//*_}
+ continue
+ fi
+ fi
+ if test ! -f packages/libnetconf2-${i//*_}.tgz; then
+ cd gitrepo
+ git checkout ${i//_*}
+ cd -
+ tar -czf packages/libnetconf2-${i//*_}.tgz gitrepo
+ fi
+ cp packages/libnetconf2-${i//*_}.tgz src/libnetconf2/
+ fi
+done
+
+cp libnetconf2.json libnetconf2.aux
+abi-monitor -get -build $LIMIT libnetconf2.aux
+abi-tracker -build libnetconf2.aux
+rm -rf libnetconf2.aux
+
diff --git a/doc/ABI/build.sh b/doc/ABI/build.sh
new file mode 100755
index 0000000..8fd811e
--- /dev/null
+++ b/doc/ABI/build.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+cmake -DENABLE_TLS=ON -DENABLE_SSH=ON -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_TO/usr -DCMAKE_BUILD_TYPE:String="Debug" . && make && make install
+
diff --git a/doc/ABI/libnetconf2.json b/doc/ABI/libnetconf2.json
new file mode 100644
index 0000000..ac3908c
--- /dev/null
+++ b/doc/ABI/libnetconf2.json
@@ -0,0 +1,8 @@
+{
+ "Name": "libnetconf2",
+ "SourceDir": "src/libnetconf2/",
+ "BuildScript": "build.sh",
+ "ChangeLog": "On",
+ "HeadersDiff": "On",
+ "PkgDiff": "On",
+}