
Hi Michael,
The *additional* tool I recommended (version freezing) is going to be cheap to use [and] has additional benefits not covered by the PVP, which we should be encouraging users to take advantage of anyway.
my understanding is that "version freezing" means to over-specify the restrictions on build inputs, i.e. to require that dependencies exist in a specific version instead of any version that lies in a given version range. If I misunderstood what you mean, then please correct me! My experience with version freezing (over-specified dependency restrictions) is that you it invariably leads to a situation where packages A and B mutually exclude each other because they require C==1.0.0.1 and C==1.0.0.2, respectively. This might a lesser problem for developers hacking away in their project-local Cabal sandboxes, but for people who try to maintain a consistent package set that's used to distribute binary packages to their users, this is a nightmare, because our lives become significantly more complicated if we have to keep several versions of the same packages around -- especially if those packages are near the root of the dependency tree. In fact, your habit of doing that has eventually led NixOS to the development of jailbreak-cabal [1], a tool that automatically removes all dependency restrictions from a Cabal file to undo the "version freeze", and I dare say that the vast majority of build problems we run into while trying to upgrade a package can be solved by running that tool. So, if a "version freeze" really is what I think it is, then I can't say that I like the idea of encouraging other people to pick up that habit. Just my 2 cents, Peter