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.
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
basebound 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 aboutbase<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 thebase<0trick may improve our life mid-run.