-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update snakemake Python dependency #42147
Conversation
7.30.2 requires at least Python 3.9
I concur with this PR. I noticed the issue when some of our CI with Python 3.8 + Snakemake 7.30.2 from Bioconda started failing with:
when 7.30.2 should never have been selected by the solver for installation on 3.8 to begin with. |
@BiocondaBot please add label |
Verified correctness of this PR, see |
I don't know enough about build numbers to know whether Python 3.8 will now try to pick build 0 (before the version requirement bump was part of conda metadata). |
Indeed the solver (well, at least libmamba's solver) will just pick the build 0 instead. :-( I thought it would, but tested anyway and was initially surprised because Can one yank releases/builds from Bioconda? I believe Anaconda's repositories let you do this, but who can do that for Bioconda? Separately, it seems this pattern of the |
Until someone can yank these files from Bioconda's channel:
then anyone with a Conda env with Python 3.7 or 3.8 trying to install Snakemake (without a version restriction) will get a broken version. A workaround is to exclude 7.30.2, e.g.:
but this version restriction will be required in perpetuity (assuming Snakemake doesn't reintroduce support for 3.7 or 3.8). |
…nt runtime setup This should fix our CI. The initial Bioconda builds (build number 0) for Snakemake 7.30.2 missed a major bump in Snakemake's minimum Python version (3.7 → 3.9). This rendered the Bioconda packages for snakemake and snakemake-minimal installable on 3.7 or 3.8 but non-functional at runtime. Subsequent builds (build number 1 and onwards) of 7.30.2 fixed this oversight, but since the initial builds haven't been yanked/marked broken, the solver still chooses them.¹ Since Conda's package spec syntax doesn't allow for exclusion of specific builds, exclude all of 7.30.2. It's fine if we never test on this patch version²; Python 3.6–3.8 will get <7.30.2 and 3.9 and onwards will get the already-available subsequent version 7.31.0. ¹ <bioconda/bioconda-recipes#42147> ² It looks like SemVer, but it ain't! The major version change for Python occurred between 7.30.1 and 7.30.2.
7.30.2 requires at least Python 3.9
I hope that's correct @johanneskoester?