In this docker-base PR nextstrain/docker-base#145 the build failed because pip seems to think that evofr constrains jaxlib as 0.3.10 <= jaxlib < 0.4.0 and I upgraded jaxlib to 0.4.6 (see for error in build https://github.com/nextstrain/docker-base/actions/runs/4881147643/jobs/8709697128#step:8:2789)
evofr 0.1.18 depends on jaxlib<0.4.0 and >=0.3.10
I was surprised by this, as the conda recipe has different version pins, allowing any minor version
see https://github.com/bioconda/bioconda-recipes/blob/master/recipes/evofr/meta.yaml#LL27C7-L27C26
You specify the pip dependencies here as
The caret ^ pins the minor version for major version 0 only (for all major versions >0 it pins only major version), see https://python-poetry.org/docs/dependency-specification/
So either:
- a) you weren't aware of this when writing the pyproject.toml, you actually wanted to pin major version only, or
- b) the translation from pyproject.toml to conda is not 1-to-1
jaxlib isn't the only dependency where this matters, same issue for jax, numpyro and blackjax
Would be good to sort out what is intended and align conda and pip to whatever you want it to be.
In this docker-base PR nextstrain/docker-base#145 the build failed because pip seems to think that evofr constrains
jaxlibas0.3.10 <= jaxlib < 0.4.0and I upgraded jaxlib to 0.4.6 (see for error in build https://github.com/nextstrain/docker-base/actions/runs/4881147643/jobs/8709697128#step:8:2789)I was surprised by this, as the conda recipe has different version pins, allowing any minor version
see https://github.com/bioconda/bioconda-recipes/blob/master/recipes/evofr/meta.yaml#LL27C7-L27C26
You specify the pip dependencies here as
evofr/pyproject.toml
Line 13 in 8009bb6
The caret
^pins the minor version for major version0only (for all major versions >0 it pins only major version), see https://python-poetry.org/docs/dependency-specification/So either:
jaxlibisn't the only dependency where this matters, same issue forjax,numpyroandblackjaxWould be good to sort out what is intended and align conda and pip to whatever you want it to be.