Skip to content

Commit cf30fbb

Browse files
pvcravenPaul V Cravenclaude
authored
Split docs deps and upgrade Sphinx to 9.1.0 (#2843)
* Split docs dependencies into separate group, upgrade Sphinx to 9.1.0 Sphinx 9.x requires Python >=3.12, but arcade supports >=3.10. Move all doc-building deps into a 'docs' dependency group so test CI can skip them on Python 3.10/3.11 via 'uv sync --no-group docs'. Also upgrades sphinx-rtd-theme from 3.0.2 to 3.1.0 (required for Sphinx 9.x compatibility). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Switch ReadTheDocs to uv with docs dependency group RTD was using pip with extra_requirements, but deps are in [dependency-groups] not [project.optional-dependencies], so RTD never actually installed Sphinx. Switch to RTD's native uv support with 'command: sync' and 'groups: [docs]'. Also bump RTD from Python 3.10 to 3.13 and Ubuntu 24.04 (Sphinx 9.x requires Python >=3.12). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix uv resolution: add Python >=3.12 markers to docs deps uv does universal resolution across all versions in requires-python (>=3.10), so Sphinx 9.1.0 fails even on Python 3.13. Fix by: - Adding 'python_version >= 3.12' markers to all docs group deps - Removing docs include from dev group (keep them independent) - Code quality CI uses 'uv sync --group docs' explicitly - RTD installs both dev and docs groups Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Bump doc dependency versions - pygments 2.19.1 → 2.20.0 - sphinx-togglebutton 0.3.2 → 0.4.5 - sphinx-sitemap 2.6.0 → 2.9.0 - sphinx-autobuild 2024.10.3 → 2025.8.25 - docutils 0.21.2 → 0.22.4 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix Sphinx warnings for ambiguous x/y cross-references The ':type: tuple (x, y, width, height)' syntax caused Sphinx to interpret x and y as cross-references to class attributes. Use inline code markup instead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Paul V Craven <paul.craven@optimizley.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 5f6f6f9 commit cf30fbb

5 files changed

Lines changed: 23 additions & 24 deletions

File tree

.github/workflows/code_quality.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
enable-cache: true
3030

3131
- name: Sync UV project
32-
run: uv sync
32+
run: uv sync --group docs
3333

3434
- name: Formatting (Ruff)
3535
if: success()
@@ -75,7 +75,7 @@ jobs:
7575
enable-cache: true
7676

7777
- name: Sync UV Project
78-
run: uv sync
78+
run: uv sync --group docs
7979

8080
- name: build-docs
8181
run: uv run make.py docs-full

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
enable-cache: true
3939

4040
- name: Sync UV project
41-
run: uv sync
41+
run: uv sync --no-group docs
4242

4343
- name: Run tests
4444
env:

.readthedocs.yaml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,17 @@ sphinx:
66
configuration: doc/conf.py
77

88
build:
9-
os: ubuntu-22.04
9+
os: ubuntu-24.04
1010
tools:
11-
# If you change this, you also need to update .github/workflows/test.yml
12-
# to make sure doc test builds run on the same version.
13-
python: "3.10" # July 2024 | See autobuild info in pyproject.toml's dev dependencies
11+
python: "3.13"
1412

1513
python:
1614
install:
17-
- method: pip
18-
path: .
19-
extra_requirements:
15+
- method: uv
16+
command: sync
17+
groups:
2018
- dev
19+
- docs
2120

2221
# Build PDF & ePub
2322
# formats:

arcade/gl/framebuffer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def scissor(self) -> tuple[int, int, int, int] | None:
128128
# Disable scissoring
129129
ctx.scissor = None
130130
131-
:type: tuple (x, y, width, height)
131+
The value is a tuple of ``(x, y, width, height)`` or ``None`` to disable.
132132
133133
"""
134134
return self._scissor

pyproject.toml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,20 @@ Book = "https://learn.arcade.academy"
3838
extras = [
3939
"pymunk~=7.2.0"
4040
]
41+
# Doc building (requires Python >=3.12 due to Sphinx 9.x)
42+
docs = [
43+
"sphinx==9.1.0; python_version >= '3.12'",
44+
"sphinx_rtd_theme==3.1.0; python_version >= '3.12'",
45+
"sphinx-rtd-dark-mode==1.3.0; python_version >= '3.12'",
46+
"sphinx-autobuild==2025.8.25; python_version >= '3.12'",
47+
"sphinx-copybutton==0.5.2; python_version >= '3.12'",
48+
"sphinx-sitemap==2.9.0; python_version >= '3.12'",
49+
"sphinx-togglebutton==0.4.5; python_version >= '3.12'",
50+
"pygments==2.20.0; python_version >= '3.12'",
51+
"docutils==0.22.4; python_version >= '3.12'",
52+
]
4153
# Used for dev work
4254
dev = [
43-
"sphinx==8.1.3", # April 2024 | Updated 2024-07-15, 7.4+ is broken with sphinx-autobuild
44-
"sphinx_rtd_theme==3.0.2", # Nov 2024
45-
"sphinx-rtd-dark-mode==1.3.0",
46-
"sphinx-autobuild==2024.10.3", # April 2024 | Due to this, Python 3.10+ is required to serve docs
47-
"sphinx-copybutton==0.5.2", # April 2023
48-
"sphinx-sitemap==2.6.0", # April 2024
49-
"sphinx-togglebutton==0.3.2", # May 2025
50-
"pygments==2.19.1", # 2.18 has breaking changes in lexer
51-
"docutils==0.21.2", # ?
52-
# "pyyaml==6.0.1",
53-
# "readthedocs-sphinx-search==0.3.2",
54-
# "sphinx-autodoc-typehints==2.0.1",
5555
# --- tools and build
5656
"pytest",
5757
"pytest-cov",
@@ -65,7 +65,7 @@ dev = [
6565
"typer==0.12.5", # Needed for make.py
6666
"wheel",
6767
"bottle", # Used for web testing playground
68-
{include-group = "extras"}
68+
{include-group = "extras"},
6969
]
7070

7171
# Testing only

0 commit comments

Comments
 (0)