Skip to content

Follow PEP 440 and install non-dev versions if --pre is not given #7579

Open
@flying-sheep

Description

@flying-sheep

People installing scanpy==1.4.4.post1 (which specifies anndata>=0.6.22rc1) currently get anndata==0.7rc2. I think they should get anndata==0.6.22 instead.

What's the problem this feature will solve?
Currently pip treats the >= and rc parts separately:

  • >= means to pip “Anything bigger is OK” (except for rcs and alphas and betas)
  • rc means “The user is OK with release candidates”

I don’t think that makes sense: When you specify a dependency as >=X.YrcZ, you mean “I need X.Y and consider the prereleases of X.Y to be stable enough”. It doesn’t mean you extend trust to any future prereleases of that package.

Describe the solution you'd like
If rc, alpha, beta, … appears in a version, >= should mean “get me any higher development versions of that version, or any higher release versions” E.g. >=0.6.22a1 should mean 0.6.22a2, 0.6.22b1, 0.6.22rc2, are OK, and any stable version >=0.6.22

Follow PEP 440 as described below:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions