mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-30 00:00:16 +01:00
Script and config to make tracking ABI/API changes easy.
AG: enhance the script a bit and fix the make instructions
This commit is contained in:
parent
c673125ce0
commit
c6496b2510
3 changed files with 176 additions and 0 deletions
52
contrib/abi/README.md
Normal file
52
contrib/abi/README.md
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
ABI Compatility Tracking
|
||||||
|
========================
|
||||||
|
|
||||||
|
This directory contains files that can be used to generate an ABI compatibility
|
||||||
|
timeline for libwebsockets. This gives users an idea of where the library has
|
||||||
|
changed and can be used by the developers to see when incompatible changes have
|
||||||
|
been introduced and either increase the library SO version or fix the changes.
|
||||||
|
|
||||||
|
The tools used are the abi-\* family available at https://github.com/lvc/ and
|
||||||
|
some example output is here: http://abi-laboratory.pro/tracker/timeline/libuv/
|
||||||
|
|
||||||
|
The tools download existing source tarballs and git repository to generate this
|
||||||
|
data, so past versions are compared and in-development code can be compared as
|
||||||
|
well.
|
||||||
|
|
||||||
|
Although the application is not being included here, FYI the license is dual
|
||||||
|
LGPL2 / GPL2 at your choice.
|
||||||
|
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
The author provides an easy way to install the various tools he provides:
|
||||||
|
|
||||||
|
git clone https://github.com/lvc/installer
|
||||||
|
cd installer
|
||||||
|
make prefix=/usr/local target=abi-tracker
|
||||||
|
|
||||||
|
It will also list any dependencies that you need to install through normal
|
||||||
|
means. (Although in the case of needing "elfutils-libelf-devel", it may
|
||||||
|
crash during install of vtable-dumper without giving a nice list)
|
||||||
|
|
||||||
|
|
||||||
|
Generating the output
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Use the `lws-abi-update.sh` script to download the source files, build them and
|
||||||
|
generate the output html. The output can be deployed to a directory on a web
|
||||||
|
server for example. Modify the commented line in lws-abi-update.sh to do this.
|
||||||
|
|
||||||
|
As it is configured, lws-abi-update.sh will only download new source - ones
|
||||||
|
that it hasn't built before - so is suitable for use with a cron job.
|
||||||
|
|
||||||
|
|
||||||
|
Viewing the output
|
||||||
|
------------------
|
||||||
|
|
||||||
|
The best place to start looking at the data is the `timeline/libwebsockets`
|
||||||
|
directory. If your path is on a web server, navigate there, otherwise you could
|
||||||
|
try:
|
||||||
|
|
||||||
|
lynx timeline/libwebsockets/
|
107
contrib/abi/libwebsockets.json
Normal file
107
contrib/abi/libwebsockets.json
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
{
|
||||||
|
"Name": "libwebsockets",
|
||||||
|
"SourceUrl": "https://github.com/warmcat/libwebsockets/releases",
|
||||||
|
"Git": "https://github.com/warmcat/libwebsockets",
|
||||||
|
|
||||||
|
"Versions": [
|
||||||
|
{
|
||||||
|
"Number": "current",
|
||||||
|
"Installed": "installed/libwebsockets/current",
|
||||||
|
"Source": "src/libwebsockets/current",
|
||||||
|
"Changelog": "On",
|
||||||
|
"HeadersDiff": "On",
|
||||||
|
"PkgDiff": "Off",
|
||||||
|
"ABIView": "Off",
|
||||||
|
"ABIDiff": "Off"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Number": "1.7.4",
|
||||||
|
"Installed": "installed/libwebsockets/1.7.4",
|
||||||
|
"Source": "src/libwebsockets/1.7.4/libwebsockets-1.7.4.tar.gz",
|
||||||
|
"Changelog": "Off",
|
||||||
|
"HeadersDiff": "On",
|
||||||
|
"PkgDiff": "Off",
|
||||||
|
"ABIView": "Off",
|
||||||
|
"ABIDiff": "Off"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Number": "1.7.3",
|
||||||
|
"Installed": "installed/libwebsockets/1.7.3",
|
||||||
|
"Source": "src/libwebsockets/1.7.3/libwebsockets-1.7.3.tar.gz",
|
||||||
|
"Changelog": "Off",
|
||||||
|
"HeadersDiff": "On",
|
||||||
|
"PkgDiff": "Off",
|
||||||
|
"ABIView": "Off",
|
||||||
|
"ABIDiff": "Off"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Number": "1.7.2",
|
||||||
|
"Installed": "installed/libwebsockets/1.7.2",
|
||||||
|
"Source": "src/libwebsockets/1.7.2/libwebsockets-1.7.2.tar.gz",
|
||||||
|
"Changelog": "Off",
|
||||||
|
"HeadersDiff": "On",
|
||||||
|
"PkgDiff": "Off",
|
||||||
|
"ABIView": "Off",
|
||||||
|
"ABIDiff": "Off"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Number": "1.7.1",
|
||||||
|
"Installed": "installed/libwebsockets/1.7.1",
|
||||||
|
"Source": "src/libwebsockets/1.7.1/libwebsockets-1.7.1.tar.gz",
|
||||||
|
"Changelog": "Off",
|
||||||
|
"HeadersDiff": "On",
|
||||||
|
"PkgDiff": "Off",
|
||||||
|
"ABIView": "Off",
|
||||||
|
"ABIDiff": "Off"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Number": "1.7.0",
|
||||||
|
"Installed": "installed/libwebsockets/1.7.0",
|
||||||
|
"Source": "src/libwebsockets/1.7.0/libwebsockets-1.7.0.tar.gz",
|
||||||
|
"Changelog": "Off",
|
||||||
|
"HeadersDiff": "On",
|
||||||
|
"PkgDiff": "Off",
|
||||||
|
"ABIView": "Off",
|
||||||
|
"ABIDiff": "Off"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Number": "1.6.3",
|
||||||
|
"Installed": "installed/libwebsockets/1.6.3",
|
||||||
|
"Source": "src/libwebsockets/1.6.3/libwebsockets-1.6.3.tar.gz",
|
||||||
|
"Changelog": "Off",
|
||||||
|
"HeadersDiff": "On",
|
||||||
|
"PkgDiff": "Off",
|
||||||
|
"ABIView": "Off",
|
||||||
|
"ABIDiff": "Off"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Number": "1.6.2",
|
||||||
|
"Installed": "installed/libwebsockets/1.6.2",
|
||||||
|
"Source": "src/libwebsockets/1.6.2/libwebsockets-1.6.2.tar.gz",
|
||||||
|
"Changelog": "Off",
|
||||||
|
"HeadersDiff": "On",
|
||||||
|
"PkgDiff": "Off",
|
||||||
|
"ABIView": "Off",
|
||||||
|
"ABIDiff": "Off"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Number": "1.6.1",
|
||||||
|
"Installed": "installed/libwebsockets/1.6.1",
|
||||||
|
"Source": "src/libwebsockets/1.6.1/libwebsockets-1.6.1.tar.gz",
|
||||||
|
"Changelog": "Off",
|
||||||
|
"HeadersDiff": "On",
|
||||||
|
"PkgDiff": "Off",
|
||||||
|
"ABIView": "Off",
|
||||||
|
"ABIDiff": "Off"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Number": "1.5.1",
|
||||||
|
"Installed": "installed/libwebsockets/1.5.1",
|
||||||
|
"Source": "src/libwebsockets/1.5.1/libwebsockets-1.5.1.tar.gz",
|
||||||
|
"Changelog": "Off",
|
||||||
|
"HeadersDiff": "On",
|
||||||
|
"PkgDiff": "Off",
|
||||||
|
"ABIView": "Off",
|
||||||
|
"ABIDiff": "Off"
|
||||||
|
}]
|
||||||
|
}
|
17
contrib/abi/lws-abi-update.sh
Executable file
17
contrib/abi/lws-abi-update.sh
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ ! -z "$1" ] ; then
|
||||||
|
OUT=$1
|
||||||
|
else
|
||||||
|
OUT="/tmp/lws-abi-track-htdocs"
|
||||||
|
fi
|
||||||
|
|
||||||
|
D=`dirname $0`
|
||||||
|
if [ ! -z "$D" ] ; then
|
||||||
|
D=$D/
|
||||||
|
fi
|
||||||
|
J=$D"libwebsockets.json"
|
||||||
|
|
||||||
|
abi-monitor -get -build-new $J
|
||||||
|
abi-tracker -build $J
|
||||||
|
abi-tracker -deploy $OUT $J
|
Loading…
Add table
Reference in a new issue