
On Wed, 2014-09-24 at 00:01 +0200, Henning Thielemann wrote:
On Tue, 23 Sep 2014, Thomas Miedema wrote:
## Motivation * The Eq and Ord instances of Version don't agree whether two versions with different versionTags are equal or not [1]:
> a = Version [1] ["a"] > b = Version [1] ["b"] > compare a b EQ > a == b False
* The Package versioning policy does not include version tags [2]. * Cabal no longer supports package version tags [3,4].
How are versions of pkg-config handled? pkg-config does not always return numeric versions.
The pkg-config versions with string (e.g. 0.9.8b) do not map cleanly onto the Version type, neither with tags nor without. The strings in pkg-config versions are part of the version and are included in the (complicated) ordering rules, where as Data.Version version tags are explicitly an unordered set, so the pkg-config alphanumeric versions do not map onto those tags. Basically pkg-config style versions need handling specially if you want to cover the full alphanumeric versions. In practice Cabal has always done this wrong, by only handling the common numeric subset. It's never been a high enough priority to handle in full. Except for old versions of OpenSSL this has not been too much of problem in practice. Duncan