Skip to content

Favour non-preferred versions over deprecated versions #10097

Open
@jasagredo

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions