Description
Deprecation is a subtle mechanism. In particular, deprecated versions can still be picked by the solver --- to most people's surprise. It has been brought up many times (e.g. #1345). A more effective way to make sure that a version isn't picked is to revise it's base
bound to <0
, and we should advertise it more. E.g. in the UI when a user deprecates a version, we could show an instructive message about base<0
.
The above-mentioned issue has more ideas such as changing the semantics of deprecation (e.g. to be closer to that of "don't ever pick the version", just like base<0
) or adding a more direct way to achieve the same by introducing a new feature in the Cabal spec. Both of these seem heavy-weight, and we are likely stuck in a local minimum for now. Adding more visibility to the base<0
trick may improve our life mid-run.