Skip to content

Support Sphinx 9 #67

@patdhlk

Description

@patdhlk

Summary

sphinx-codelinks 1.2.0 (latest) pins sphinx>=7.4,<9 and sphinx-needs>=5,<9 in pyproject.toml, blocking downstream projects from upgrading to Sphinx 9.

Sphinx 9 was released 2025-11-30 (latest 9.1.0 on 2025-12-31). It dropped support for docutils 0.20, deprecated `sphinx.io`, rewrote `sphinx.ext.autodoc`, and made other smaller breaking changes. See https://www.sphinx-doc.org/en/master/changes/9.0.html.

Current state

PR #65 added a tox factor matrix (`py{312,313,314}-sphinx{7,8,9}-needs{5,6,7,8}`), but:

  • The CI workflow doesn't fan the factors out as separate jobs (recent runs show only generic `Pytest ()` jobs).
  • The pyproject runtime pin still caps at `<9`, so a tox env requesting `sphinx>=9` would conflict with the package's own dependency.

So the `sphinx9-*` cells have never actually run; whether `sphinx-codelinks` works against Sphinx 9 is unknown.

What's needed

  • Bump runtime pins in `pyproject.toml`: `sphinx>=7.4,<10`, `sphinx-needs>=5,<10`.
  • Wire the tox matrix factors through CI (`.github/workflows/ci.yml`) so each `py-sphinx-needs` cell runs as a separate job.
  • Run the matrix locally against Sphinx 9.0/9.1; fix any API drift surfaced by the new versions.
  • Cut a 1.3.0 release once all cells pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions