Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/api-stability.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ that need a frozen API should pin a minor release (for example, `~=0.4.0`).

The core package requires Python `>=3.10` and currently tests CPython 3.10
through 3.14 on Linux, macOS, and Windows. The core runtime dependency is
Click `>=8.1,<8.5`; the compatibility suite covers the 8.1, 8.2, 8.3, and
8.4 lines on Python 3.10 and 3.14. YAML configuration and YAML output are provided by the
Click `>=8.1,<8.6`; the compatibility suite covers the 8.1, 8.2, 8.3, 8.4,
and 8.5 lines on Python 3.10 and 3.14. YAML configuration and YAML output are provided by the
optional `base-cli[yaml]` extra, which supplies PyYAML `>=6.0,<7`. Other
optional integrations are independently versioned and constrained in `pyproject.toml`: Typer
`>=0.12,<0.28`, Rich `>=13.7,<15`, and OpenTelemetry API `>=1.24,<2`. The
Expand Down
4 changes: 2 additions & 2 deletions docs/platform-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ filesystem.

## Dependency support

The core runtime dependency contract is Click `>=8.1,<8.5`, tested across the
8.1 through 8.4 lines. YAML configuration
The core runtime dependency contract is Click `>=8.1,<8.6`, tested across the
8.1 through 8.5 lines. YAML configuration
and YAML output use the optional `base-cli[yaml]` extra, which supplies PyYAML
`>=6.0,<7`. The lower bound is the oldest supported line; the upper bound
prevents an unreviewed major release from entering a production install. The
Expand Down
29 changes: 29 additions & 0 deletions tests/test_dependency_documentation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
from __future__ import annotations

import re
import unittest
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]


class DependencyDocumentationTests(unittest.TestCase):
def test_click_window_is_consistent_across_metadata_and_public_docs(self) -> None:
metadata = (ROOT / "pyproject.toml").read_text(encoding="utf-8")
documents = "\n".join(
(ROOT / path).read_text(encoding="utf-8")
for path in (
"docs/dependency-support.md",
"docs/platform-support.md",
"docs/api-stability.md",
"docs/compatibility-dashboard.md",
)
)
self.assertIn('"click>=8.1,<8.6"', metadata)
self.assertRegex(documents, re.compile(r"Click `>=8\.1,<8\.6`"))
self.assertIn("8.1, 8.2, 8.3, 8.4, 8.5", documents)
self.assertNotIn("Click `>=8.1,<8.5`", documents)


if __name__ == "__main__":
unittest.main()
Loading