On 5/13/2015 9:34 PM, Niall Douglas wrote:
On 13 May 2015 at 14:12, Edward Diener wrote:
So for each library you want the library maintainer to periodically check every past and present version of a library it depends on and document what dependencies it has and what versions of those dependencies works with the library.
Forgive me if I find such a task a bit overburdening. This means that if my library X depends on A, B, and C I must test my library first against past versions of A, B, and C, in all possible combinations, and then must susbsequently test my library against any new versions of A. B. and C, in all possible combinations. Furthermore whenever I update library X I must go through the full procedure once again.
I cannot conceive that such a manual versioning scheme is workable.
Then you are highly unaware of the tooling available to automate this.
Travis can run, per commit, http://ispras.linuxbase.org/index.php/ABI_compliance_checker which ensures that ABI and API have not broken for a given API version of a given library. Each API version lives in its own git branch.
That will only test ABI compatibility at best. Unless you suggest that version 1 and version 2 of a library do not share any source code, it's quite possible that version 2 will break functionality in subtle ways, while retaining API/ABI, and there are not tools to check for that without testing. Thanks, Volodya