Skip to content

Does uv use all extras/groups matching dependencies_* by default #16118

@yarnabrina

Description

@yarnabrina

Question

We are discussing internally to migrate to uv in sktime. Being a framework with goal being providing unifoed interface, it has a high number of soft dependencies. To maintain the framework itself, we have a very broad dependencies and few additional optional dependencies currently to check some compatibility tests occasionally on CI while main CI runs on latest versions. Two of these have name dependencies_lowest and dependencies_lower and while running uv sync, it seems uv is trying to install these as well.

Is it intended or a bug? If intended, is there a way to avoid this? I was trying with conflicts (once as extra and once as group) but both failed.

Artefacts

  1. pyproject.toml: https://github.com/sktime/sktime/blob/93e6bbc28c5e8364caed8db4186186b7153d74c9/pyproject.toml
  2. Traceback
  × No solution found when resolving dependencies for split (included: sktime[group:dependencies-lowest]; excluded:
  │ sktime[group:dependencies-lower]):
  ╰─▶ Because only the following versions of skforecast{python_full_version < '3.13'} are available:
          skforecast{python_full_version < '3.13'}<=0.12.1
          skforecast{python_full_version < '3.13'}==0.13.0
          skforecast{python_full_version < '3.13'}==0.14.0
          skforecast{python_full_version < '3.13'}>0.15
      and skforecast==0.12.1 depends on scikit-learn>=1.2,<1.5, we can conclude that skforecast{python_full_version <
      '3.13'}>=0.12.1,<0.13.0 depends on scikit-learn>=1.2,<1.5.
      And because skforecast>=0.13.0,<=0.14.0 depends on scikit-learn>=1.2 and scikit-learn>=1.2, we can conclude that
      skforecast{python_full_version < '3.13'}>=0.12.1,<0.15 depends on scikit-learn>=1.2.
      And because sktime[all-extras-pandas2] depends on skforecast{python_full_version < '3.13'}>=0.12.1,<0.15 and
      sktime:dependencies-lowest depends on scikit-learn==0.24.0, we can conclude that sktime:dependencies-lowest and
      sktime[all-extras-pandas2] are incompatible.
      And because your project requires sktime[all-extras-pandas2] and sktime:dependencies-lowest, we can conclude that your       
      project's requirements are unsatisfiable.
  1. PR: [MNT] Declare extra conflicts to make uv sync work sktime/sktime#8892

Platform

Windows 11 x86_64

Version

0.8.22

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionAsking for clarification or support

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions