Skip to content

Mismatch between pip and conda dependency pins: which is the intended one? #24

@corneliusroemer

Description

@corneliusroemer

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

jaxlib >=0.3.10, <1

see https://github.com/bioconda/bioconda-recipes/blob/master/recipes/evofr/meta.yaml#LL27C7-L27C26

You specify the pip dependencies here as

jaxlib = "^0.3.10"

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions