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. This solves the diamond dependence problem, because API versions are guaranteed and formally proven to be compatible. git submodules are branch pinned to a given API version branch, and therefore to a stable per commit verified compatible API version. This prevents dependency hell. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/