Skip to content

[BUG] Resolving doc dependencies fails in Python 3.10 #494

@daniel-habermann

Description

@daniel-habermann

Describe the bug
I'm using uv as a dependency manager and noticed that a simple uv sync fails on dev with the following error message:

  × No solution found when resolving dependencies for split (python_full_version < '3.11'):
  ╰─▶ Because the requested Python version (>=3.10, <3.13) does not satisfy Python>=3.11 and sphinx>=8.2.0,<=8.2.3
      depends on Python>=3.11, we can conclude that sphinx>=8.2.0,<=8.2.3 cannot be used.
      And because only the following versions of sphinx are available:
          sphinx<=8.2.0
          sphinx==8.2.1
          sphinx==8.2.2
          sphinx==8.2.3
          sphinx==8.3.0
      and sphinx==8.3.0 was yanked (reason: Bad release), we can conclude that sphinx>=8.2.0 cannot be used.
      And because bayesflow[all] depends on sphinx>=8.2 and your project requires bayesflow[all], we can conclude that
      your project's requirements are unsatisfiable.

      hint: `sphinx` was requested with a pre-release marker (e.g., all of:
          sphinx>8.2.0,<8.2.1
          sphinx>8.2.1,<8.2.2
          sphinx>8.2.2,<8.2.3
          sphinx>8.2.3,<8.3.0
          sphinx>8.3.0,<9.dev0
      ), but pre-releases weren't enabled (try: `--prerelease=allow`)

      hint: The `requires-python` value (>=3.10, <3.13) includes Python versions that are not supported by
      your dependencies (e.g., sphinx>=8.2.0,<=8.2.3 only supports >=3.11). Consider using a more restrictive
      `requires-python` value (like >=3.11).

I could trace this issue back to PR #465 which pins the sphinx dependency to 8.2, which is incompatible with python 3.10. Setting "sphinx ~= 8.1.3" instead of "sphinx ~= 8.2" fixed the issue. Should I make a PR with this change?

To Reproduce
Minimal steps to reproduce the behavior:

  1. git checkout dev
  2. python3.10 -m venv myenv
  3. source myenv/bin/activate
  4. pip install -e ".[docs]"

Essentially, the doc dependencies now require python 3.11 while the requires-python is set to >=3.10.

Expected behavior
pip install -e ".[docs]" with python 3.10 should be able to correctly resolve all dependencies.

Environment

  • OS: openSUSE Tumbleweed (should be OS independent)
  • Python Version: 3.10
  • Backend: none
  • BayesFlow Version: v2.0.3 dev branch

Minimality

  • I verify that my example is minimal, does not rely on third-party packages, and is most likely an issue in BayesFlow.

Metadata

Metadata

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