Skip to content

Poetry issues: Version requirement for sphinx / sphinx-autodoc-typehints #39

@tony

Description

@tony

@domdfcoding thank you for this project / organization!

Description

Issue installing through poetry package maanger

Steps to Reproduce

[tool.poetry.dev-dependencies]
sphinx = "*"
sphinx-autodoc-typehints = "~1.17.0"
sphinx-autofixture = "~0.2.3"

Actual result:

poetry update sphinx-autofixture
Updating dependencies
Resolving dependencies... (1.5s)

  SolverProblemError

  Because no versions of sphinx-autofixture match >0.2.3,<0.3.0
   and sphinx-autofixture (0.2.3) depends on sphinx (>=3.0.3,<3.4.0), sphinx-autofixture (>=0.2.3,<0.3.0) requires sphinx (>=3.0.3,<3.4.0).
  And because sphinx-autodoc-typehints (1.17.0) depends on Sphinx (>=4)
   and no versions of sphinx-autodoc-typehints match >1.17.0,<1.18.0, sphinx-autofixture (>=0.2.3,<0.3.0) is incompatible with sphinx-autodoc-typehints (>=1.17.0,<1.18.0).
  So, because tmuxp depends on both sphinx-autodoc-typehints (~1.17.0) and sphinx-autofixture (~0.2.3), version solving failed.

  at .venv/lib/python3.10/site-packages/poetry/puzzle/solver.py:241 in _solve
      237│             packages = result.packages
      238│         except OverrideNeeded as e:
      239│             return self.solve_in_compatibility_mode(e.overrides, use_latest=use_latest)
      240│         except SolveFailure as e:
    → 241│             raise SolverProblemError(e)
      242│
      243│         results = dict(
      244│             depth_first_search(
      245│                 PackageNode(self._package, packages), aggregate_package_nodes

Expected result:

I don't know of a best practice. My hope is this:

  • Keeping constraints to the minimum required version, or
  • perhaps relaxing them entirely

and letting it error on runtime

Reproduces how often:

Easy reproduced if you use a system with lockfiles

Version

  • Operating System: WSL, Ubuntu 20.04 / focal
  • Python: 3.10
  • sphinx-autofixture: 0.2.3
  • sphinx: 4.3.2
  • sphinx-autodoc-typehints: 1.17.0

Installation source

PyPI, via poetry

Other Additional Information:

  • sphinx updates major releases more often these days
  • sphinx extensions may be non-breaking (more often that not)
  • packaging lock systems are becoming more ubiquitous
  • May be worth it to let Matrix builds in CI handle checking against version of required packages to fuzz for errors

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingstale

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions