diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7750c9ad..9736fa27 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -123,6 +123,8 @@ jobs: check-docs: runs-on: ubuntu-latest + env: + UV_PYTHON: "3.13" steps: - uses: actions/checkout@v7 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8db96c3b..bd88ef7c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -93,6 +93,8 @@ jobs: release-docs: runs-on: ubuntu-latest + env: + UV_PYTHON: "3.13" steps: - uses: actions/checkout@v7 with: diff --git a/docs/contributing/index.md b/docs/contributing/index.md index 5766e103..ee992725 100644 --- a/docs/contributing/index.md +++ b/docs/contributing/index.md @@ -76,9 +76,11 @@ It will take you to GitHub, where you can edit the Markdown file and submit a pu Install dependencies for docs: ```shell -uv sync --group docs +uv sync --python 3.13 --group docs ``` +The docs tooling needs Python 3.11 or newer. + Then, start a local docs server: ```shell diff --git a/pyproject.toml b/pyproject.toml index ee344982..073c56cb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -161,11 +161,9 @@ docs = [ "mkdocs-git-revision-date-localized-plugin>=1.4.5", "mkdocs-macros-plugin>=1.3.7", "mkdocs-material>=9.6.13", - "mkdocstrings>=0.29.1", + "mkdocstrings>=1.0.7", "mkdocstrings-python>=1.16.10", - # pymdown-extensions 12 breaks mkdocstrings <1.0.7, and 1.0.7+ needs Python 3.11. - # Drop this pin once Python 3.10 support is removed. - "pymdown-extensions<12", + "pymdown-extensions>=12", "jinja2>=3.1,<3.2", "markupsafe<4.0.0", "linkchecker~=10.6.0", @@ -176,6 +174,9 @@ ci = ["cibuildwheel>=4.3.1,<5 ; python_version >= '3.11'"] benchmark = ["pyjelly[rdflib]", "zstandard>=0.23.0 ; python_version < '3.14'"] +[tool.uv.dependency-groups] +docs = { requires-python = ">=3.11" } + [tool.uv] required-version = ">=0.13.4,<0.14" default-groups = ["dev", "extras", "test", "types"] diff --git a/uv.lock b/uv.lock index 516a89e4..37b16c40 100644 --- a/uv.lock +++ b/uv.lock @@ -1556,7 +1556,7 @@ wheels = [ [[package]] name = "mkdocstrings" -version = "1.0.6" +version = "1.0.8" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jinja2" }, @@ -1566,9 +1566,9 @@ dependencies = [ { name = "mkdocs-autorefs" }, { name = "pymdown-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/53/71/f85bdf13355073ae15a7375f09879375a830553552e58c1c4b7e0bbc5c8b/mkdocstrings-1.0.6.tar.gz", hash = "sha256:a0b8c2bdd29a6416c80d717aa369bbf7831946bd9f23c2a66db1b1dbe7693dbd", size = 100649, upload-time = "2026-07-11T19:38:05.732Z" } +sdist = { url = "https://files.pythonhosted.org/packages/27/cc/e3ed8b16851f5d664dffcf8f55fc60d0d3f736a3edca21d1508105d1255a/mkdocstrings-1.0.8.tar.gz", hash = "sha256:b50fc326230906425c82ee9ec59b80e5db00892b2b593d4d0b841a0d4acf537b", size = 107444, upload-time = "2026-10-19T15:43:02.157Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/5b/4c1902e8bdd5c4db63284e9d101dece4038d4025d6d88850ffe0a1578980/mkdocstrings-1.0.6-py3-none-any.whl", hash = "sha256:2703708697487d1b6d6d7b412e176fa436edf120c1bf81dc9e126b12d00893c7", size = 35787, upload-time = "2026-07-11T19:38:04.417Z" }, + { url = "https://files.pythonhosted.org/packages/19/5e/4df7a2290e97c60a3ba410084966e5ab84aa89d15c8c98c195acbaefa8f4/mkdocstrings-1.0.8-py3-none-any.whl", hash = "sha256:4b03ed2b863009f1153f0d04aacb22a85b92afc28a0636d85717c92eecca638c", size = 42209, upload-time = "2026-10-19T15:43:00.65Z" }, ] [[package]] @@ -1579,7 +1579,6 @@ dependencies = [ { name = "griffelib" }, { name = "mkdocs-autorefs" }, { name = "mkdocstrings" }, - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/96/11/640067d1ad713ea99c233e53e57a4c300d9885f904a61371d7ef90dea549/mkdocstrings_python-2.0.9.tar.gz", hash = "sha256:ae945637dc0618c6beedbee169f10c0234b77f322c53db3fc9fb4c29b3013038", size = 203006, upload-time = "2026-09-22T13:43:27.712Z" } wheels = [ @@ -2214,18 +2213,18 @@ dev = [ { name = "ruff" }, ] docs = [ - { name = "jinja2" }, - { name = "linkchecker" }, - { name = "markdown-exec" }, - { name = "markupsafe" }, - { name = "mike" }, - { name = "mkdocs" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pymdown-extensions" }, + { name = "jinja2", marker = "python_full_version >= '3.11'" }, + { name = "linkchecker", marker = "python_full_version >= '3.11'" }, + { name = "markdown-exec", marker = "python_full_version >= '3.11'" }, + { name = "markupsafe", marker = "python_full_version >= '3.11'" }, + { name = "mike", marker = "python_full_version >= '3.11'" }, + { name = "mkdocs", marker = "python_full_version >= '3.11'" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "python_full_version >= '3.11'" }, + { name = "mkdocs-macros-plugin", marker = "python_full_version >= '3.11'" }, + { name = "mkdocs-material", marker = "python_full_version >= '3.11'" }, + { name = "mkdocstrings", marker = "python_full_version >= '3.11'" }, + { name = "mkdocstrings-python", marker = "python_full_version >= '3.11'" }, + { name = "pymdown-extensions", marker = "python_full_version >= '3.11'" }, ] extras = [ { name = "pyjelly", extra = ["rdflib"] }, @@ -2252,6 +2251,9 @@ types = [ { name = "types-protobuf" }, ] +[package.group-requires-python] +docs = ">=3.11" + [package.metadata] requires-dist = [ { name = "mypy-extensions", specifier = ">=1.0.0" }, @@ -2273,18 +2275,18 @@ dev = [ { name = "ruff", specifier = ">=0.11.8" }, ] docs = [ - { name = "jinja2", specifier = ">=3.1,<3.2" }, - { name = "linkchecker", specifier = "~=10.6.0" }, - { name = "markdown-exec", specifier = ">=1.10.3" }, - { name = "markupsafe", specifier = "<4.0.0" }, - { name = "mike", specifier = ">=2.1.3" }, - { name = "mkdocs", specifier = ">=1.6.1" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.4.5" }, - { name = "mkdocs-macros-plugin", specifier = ">=1.3.7" }, - { name = "mkdocs-material", specifier = ">=9.6.13" }, - { name = "mkdocstrings", specifier = ">=0.29.1" }, - { name = "mkdocstrings-python", specifier = ">=1.16.10" }, - { name = "pymdown-extensions", specifier = "<12" }, + { name = "jinja2", marker = "python_full_version >= '3.11'", specifier = ">=3.1,<3.2" }, + { name = "linkchecker", marker = "python_full_version >= '3.11'", specifier = "~=10.6.0" }, + { name = "markdown-exec", marker = "python_full_version >= '3.11'", specifier = ">=1.10.3" }, + { name = "markupsafe", marker = "python_full_version >= '3.11'", specifier = "<4.0.0" }, + { name = "mike", marker = "python_full_version >= '3.11'", specifier = ">=2.1.3" }, + { name = "mkdocs", marker = "python_full_version >= '3.11'", specifier = ">=1.6.1" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "python_full_version >= '3.11'", specifier = ">=1.4.5" }, + { name = "mkdocs-macros-plugin", marker = "python_full_version >= '3.11'", specifier = ">=1.3.7" }, + { name = "mkdocs-material", marker = "python_full_version >= '3.11'", specifier = ">=9.6.13" }, + { name = "mkdocstrings", marker = "python_full_version >= '3.11'", specifier = ">=1.0.7" }, + { name = "mkdocstrings-python", marker = "python_full_version >= '3.11'", specifier = ">=1.16.10" }, + { name = "pymdown-extensions", marker = "python_full_version >= '3.11'", specifier = ">=12" }, ] extras = [{ name = "pyjelly", extras = ["rdflib"] }] profiling = [ @@ -2307,15 +2309,15 @@ types = [{ name = "types-protobuf", specifier = ">=5.29.1.20250315" }] [[package]] name = "pymdown-extensions" -version = "11.0.2" +version = "12.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown" }, { name = "pyyaml" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ad/17/2db4b414de89659144488e0d9c6c0bf0c8395841dc12d81d0532cc6ef310/pymdown_extensions-11.0.2.tar.gz", hash = "sha256:9506fcbe66fa355a775b768084334238dd6805020ac4b92bea0c0dda6f8f223d", size = 855419, upload-time = "2026-08-22T19:28:47.236Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/fe/ac50ee24a80a1b344e643f6fb626063cc7041b978cd1dd9a7f9963ae1cd1/pymdown_extensions-12.3.tar.gz", hash = "sha256:a7f2a4e0bc60c6e6babfa7922cfb3b01cd640eb00fb208f3c582e12bae00ea67", size = 870532, upload-time = "2026-10-14T22:40:43.252Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a6/43/9f45ec4d14e596efc32c925a78104934790438b0c0628b70d741016734ad/pymdown_extensions-11.0.2-py3-none-any.whl", hash = "sha256:259910762019732caa1dfd76f3faa62c59f191d46573e80bcb1d13c0f675bbe5", size = 269929, upload-time = "2026-08-22T19:28:45.389Z" }, + { url = "https://files.pythonhosted.org/packages/8a/d0/758afe732c2da502c051b4d03ff88daa3c0fc1a1e671e6c5a6318177bab4/pymdown_extensions-12.3-py3-none-any.whl", hash = "sha256:345493a8e3497e24382902903a1c43a28e34a52f2b7571a1c9641429b820ca74", size = 277597, upload-time = "2026-10-14T22:40:41.543Z" }, ] [[package]]