This is exactly what the Package Versioning Policy is for. By using semantic versioning, your .cabal file can specify that you use version 1.0.* of a given package. Any API-compatible versions of that package are supposed to be in the 1.0 range. Versions 1.1 and above are considered API incompatible.<span></span><br><br>On Tuesday, January 26, 2016, Imants Cekusins <<a href="mailto:imantc@gmail.com">imantc@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Stack may already do something like this, I don't know. Anyway, here is an idea.<br>
<br>
<br>
Currently .cabal lists version or version range.<br>
<br>
What if package info included lists of API-compatible versions of this package?<br>
<br>
<br>
Let's say one library requires v10 of packageA. Another library<br>
requires v15 of the same packageA. This is a hypothetical scenario :-P<br>
<br>
However v10, v15 are API-compatible as far as package maintainer<br>
knows. Package info specifies v10 and v15 as API-compatible too.<br>
<br>
What if it were possible to issue:<br>
cabal install packageA<br>
.. and then if v10, v15 are compatible, v15 is returned without warnings.<br>
If v10 and v15 are not compatible, cabal would warn.<br>
<br>
<br>
Basically instead of library clients needing to test multiple library<br>
versions or requiring 1 exact version, deps could be specified as 1<br>
version (with which development took place) and cabal (with hints from<br>
package maintainers) would figure this out.<br>
<br>
It might even be possible to fine-tune it to check modules & symbols<br>
actually used by library consumer app.<br>
<br>
<br>
?<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'Haskell-Cafe@haskell.org')">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
</blockquote><br><br>-- <br>-- Dan Burton<br>