Skip to content

Fix dependency resolution for dev installs#341

Merged
sfc-gh-mwyatt merged 3 commits intosnowflakedb:mainfrom
akshatvishu:fix/deps-uv-dev-install
Jan 22, 2026
Merged

Fix dependency resolution for dev installs#341
sfc-gh-mwyatt merged 3 commits intosnowflakedb:mainfrom
akshatvishu:fix/deps-uv-dev-install

Conversation

@akshatvishu
Copy link
Contributor

@akshatvishu akshatvishu commented Jan 14, 2026

Problem

Installing dev dependencies fails due to incompatible dependency constraints.

Snowflake connector conflict

  • snowflake-ml-python>=1.21.0 requires snowflake-connector-python>=3.17.3,<4
  • cortex pinned snowflake-connector-python==3.12.3
    Which results in [dev] and [all] extras being unsatisfiable
uv sync --extra dev
  × No solution found when resolving dependencies for split (markers: python_full_version >= '3.12' and sys_platform == 'linux'):
  ╰─▶ Because snowflake-ml-python>=1.21.0 depends on snowflake-connector-python[pandas]>=3.17.3,<4 and only the following versions of snowflake-ml-python are available:
          snowflake-ml-python<=1.21.0
          snowflake-ml-python==1.22.0
      we can conclude that snowflake-ml-python>=1.21.0 depends on snowflake-connector-python>=3.17.3,<4.
      And because arctic-training[all] depends on snowflake-connector-python==3.12.3, we can conclude that arctic-training[all] and snowflake-ml-python>=1.21.0 are incompatible.
      And because arctic-training[all] depends on snowflake-ml-python>=1.21.0 and your project requires arctic-training[all], we can conclude that your project's requirements are
      unsatisfiable.

Python version / Sphinx conflict

  • requires-python = ">=3.8" includes Python versions no longer supported by current sphinx
  • sphinx>=8.1.3 requires Python >=3.10
    This results in dependency resolution fails even when using Python 3.10+
uv sync --extra dev
  × No solution found when resolving dependencies for split (markers: python_full_version == '3.9.*' and sys_platform == 'linux'):
  ╰─▶ Because the requested Python version (>=3.8) does not satisfy Python>=3.10.0 and sphinx==9.1.0 depends on Python>=3.12, we can conclude that sphinx==9.1.0 cannot be used. (1)

      Because the requested Python version (>=3.8) does not satisfy Python>=3.10.0 and sphinx==8.1.3 depends on Python>=3.10, we can conclude that sphinx==8.1.3 cannot be used.
      And because we know from (1) that sphinx==9.1.0 cannot be used, we can conclude that all of:
          sphinx==8.1.3
          sphinx>=9.1.0
       cannot be used.
      And because sphinx==8.3.0 was yanked (reason: Bad release), we can conclude that all of:
          sphinx==8.1.3
          sphinx==8.3.0
          sphinx>=9.1.0
       cannot be used. (2)

      Because the requested Python version (>=3.8) does not satisfy Python>=3.10.0 and all of:
          sphinx>=8.2.0,<=8.2.3
          sphinx>=9.0.0,<=9.0.4
      depend on Python>=3.11, we can conclude that all of:
          sphinx>=8.2.0,<=8.2.3
          sphinx>=9.0.0,<=9.0.4
       cannot be used.
      And because we know from (2) that all of:
          sphinx==8.1.3
          sphinx==8.3.0
          sphinx>=9.1.0
       cannot be used, we can conclude that sphinx>=8.1.3 cannot be used.
      And because only the following versions of sphinx are available:
          sphinx<=8.1.3
          sphinx==8.2.0
          sphinx==8.2.1
          sphinx==8.2.2
          sphinx==8.2.3
          sphinx==8.3.0
          sphinx==9.0.0
          sphinx==9.0.1
          sphinx==9.0.2
          sphinx==9.0.3
          sphinx==9.0.4
          sphinx==9.1.0
      we can conclude that sphinx>=8.1.3 cannot be used.
      And because arctic-training[all] depends on sphinx>=8.1.3 and your project requires arctic-training[all], we can conclude that your project's requirements are unsatisfiable.

      hint: The `requires-python` value (>=3.8) includes Python versions that are not supported by your dependencies (e.g., sphinx==9.1.0 only supports >=3.12). Consider using a more
      restrictive `requires-python` value (like >=3.12).

      hint: Pre-releases are available for `sphinx` in the requested range (e.g., 9.1.0rc2), but pre-releases weren't enabled (try: `--prerelease=allow`)

      hint: While the active Python version is 3.12, the resolution failed for other Python versions supported by your project. Consider limiting your project's supported Python versions
      using `requires-python`.

Reproduction

uv sync --python 3.12 --extra dev

Solution

classifiers = [
   "Programming Language :: Python :: 3.12",
 ]
-requires-python = ">= 3.8"
+requires-python = ">=3.10"


 [project.optional-dependencies]

 cortex = [
-    "snowflake-connector-python==3.12.3",
+    "snowflake-connector-python>=3.17.3,<4",
 ]

@akshatvishu
Copy link
Contributor Author

akshatvishu commented Jan 15, 2026

@sfc-gh-dhung @sfc-gh-mwyatt Apologies for the direct ping but I wanted to flag that the snowflake-ml-python>=1.21.0 dependency introduced in #330 is the root cause of the resolution failure described above.
Could you take a look when you have a moment?

Copy link
Collaborator

@sfc-gh-mwyatt sfc-gh-mwyatt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the contribution!


cortex = [
"snowflake-connector-python==3.12.3",
"snowflake-connector-python>=3.17.3,<4",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sfc-gh-caxu does Arctic Synth need any particular version of snowflake-connector-python, or can we remove version constraints for it altogether? (Or just something broad like >=3.12.0)?

@sfc-gh-mwyatt sfc-gh-mwyatt merged commit 2f34ad1 into snowflakedb:main Jan 22, 2026
8 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants