Description
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: