Open
Description
As of now, deprecated versions and non-preferred versions are treated equally: Cabal will find the preferred versions, try all of them, and if none is acceptable, then try the non-preferred and deprecated versions, with no difference among them.
My understanding is that
- non-preferred versions are perfectly functioning versions that are just less preferable than preferred versions
- deprecated versions are malfunctioning versions that should be avoided
So my proposed flow would be the following:
- when requested for package
foo
- if there are preferred versions, try those in decreasing order of version number
- if none of those are acceptable, try the non-preferred and non-deprecated versions in decreasing order of version. If one is acceptable, pick it with a warning.
- if none of those are acceptable, try the deprecated versions in decreasing order of version. If one is acceptable, pick it with a warning/or don't even pick it unless some flag
--allow-deprecated=[all|foo|...]
is provided.
There are a bunch of issues on this matter, just mentioning deprecated and normal versions, but the non-preferred versions just complicate it even more:
Activity