Skip to content

Commit 9b9bffc

Browse files
committed
chore: Upgrade theme to 1.9: Sphinx 9, uv, Python 3.11+, Node 22
This release upgrades the core toolchain: Sphinx 9.x, myst-parser 5.x, Python 3.11+, Node.js 22, and replaces Poetry with uv for dependency management. The bundled sphinx-multiversion extension has been updated for Sphinx 9 compatibility. ## How to test 1. Install uv first: make setupenv 2. Then set up the environment and build the docs: make setup make preview ## Migrating your project We'll help projects migrate from 1.8 to 1.9. See the upgrade guide for step-by-step instructions.
1 parent a26dd46 commit 9b9bffc

File tree

29 files changed

+1616
-1728
lines changed

29 files changed

+1616
-1728
lines changed

.github/dependabot.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ updates:
1414
schedule:
1515
interval: "daily"
1616

17-
# Maintain dependencies for Poetry
18-
- package-ecosystem: "pip"
17+
# Maintain dependencies for uv
18+
- package-ecosystem: "uv"
1919
directory: "/"
2020
schedule:
2121
interval: "daily"
2222

23-
- package-ecosystem: "pip"
23+
- package-ecosystem: "uv"
2424
directory: "/docs/_utils"
2525
schedule:
2626
interval: "daily"

.github/workflows/docs-pages.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,14 @@ jobs:
2121
ref: ${{ github.event.repository.default_branch }}
2222
persist-credentials: false
2323
fetch-depth: 0
24+
2425
- name: Set up Python
2526
uses: actions/setup-python@v6
2627
with:
27-
python-version: '3.10'
28+
python-version: '3.12'
29+
30+
- name: Install uv
31+
uses: astral-sh/setup-uv@v6
2832

2933
- name: Set up env
3034
run: make -C docs setupenv

.github/workflows/docs-pr.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ jobs:
2222
- name: Set up Python
2323
uses: actions/setup-python@v6
2424
with:
25-
python-version: '3.10'
25+
python-version: '3.12'
26+
27+
- name: Install uv
28+
uses: astral-sh/setup-uv@v6
2629

2730
- name: Set up env
2831
run: make -C docs setupenv
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: "Theme / Frontend build"
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- master
7+
paths:
8+
- "src/**"
9+
- "config/**"
10+
- "package.json"
11+
- "package-lock.json"
12+
push:
13+
branches:
14+
- master
15+
paths:
16+
- "src/**"
17+
- "config/**"
18+
- "package.json"
19+
- "package-lock.json"
20+
21+
jobs:
22+
build:
23+
runs-on: ubuntu-latest
24+
strategy:
25+
fail-fast: false
26+
matrix:
27+
node-version: [18, 20, 22]
28+
steps:
29+
- name: Checkout
30+
uses: actions/checkout@v6
31+
with:
32+
persist-credentials: false
33+
fetch-depth: 0
34+
35+
- name: Set up Node.js ${{ matrix.node-version }}
36+
uses: actions/setup-node@v4
37+
with:
38+
node-version: ${{ matrix.node-version }}
39+
cache: "npm"
40+
41+
- name: Install dependencies
42+
run: npm ci
43+
44+
- name: Build frontend
45+
run: npm run build

.github/workflows/multiversion-tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
- name: Set up Python
2929
uses: actions/setup-python@v6
3030
with:
31-
python-version: '3.10'
31+
python-version: '3.12'
3232

3333
- name: Set up requirements
3434
run: python -m pip install -r requirements.txt

.github/workflows/theme-tests.yaml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,29 @@ on:
1515
jobs:
1616
build:
1717
runs-on: ubuntu-latest
18+
strategy:
19+
fail-fast: false
20+
matrix:
21+
python-version: ["3.11", "3.12", "3.13"]
1822
steps:
1923
- name: Checkout
2024
uses: actions/checkout@v6
2125
with:
2226
persist-credentials: false
2327
fetch-depth: 0
2428

25-
- name: Set up Python
29+
- name: Set up Python ${{ matrix.python-version }}
2630
uses: actions/setup-python@v6
2731
with:
28-
python-version: "3.10"
32+
python-version: ${{ matrix.python-version }}
33+
34+
- name: Install uv
35+
uses: astral-sh/setup-uv@v6
2936

3037
- name: Set up env
3138
run: |
3239
make -C docs setupenv
33-
poetry install
40+
uv sync
3441
3542
- name: Run tests
36-
run: poetry run pytest .
43+
run: uv run pytest .

deploy.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ if git checkout master &&
1717
[ `git rev-list HEAD...origin/master --count` == 0 ] &&
1818
git merge origin/master
1919
then
20-
poetry version patch
21-
poetry build
22-
poetry publish
20+
uv version --bump patch
21+
uv build
22+
uv publish
2323
else
2424
echo "Error: Your local repository has some changes not pushed or"\
2525
"someone has updated the repository while you where editing code."\

docs/Makefile

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Global variables
22
# You can set these variables from the command line.
3-
POETRY = poetry
3+
UV = uv
44
SPHINXOPTS = -j auto
5-
SPHINXBUILD = $(POETRY) run sphinx-build
5+
SPHINXBUILD = $(UV) run sphinx-build
66
PAPER =
77
BUILDDIR = _build
88
SOURCEDIR = source
@@ -19,15 +19,15 @@ all: dirhtml
1919
# Setup commands
2020
.PHONY: setupenv
2121
setupenv:
22-
pip install -q poetry
22+
pip install -q uv
2323

2424
.PHONY: setup
2525
setup:
26-
$(POETRY) install
26+
$(UV) sync
2727

2828
.PHONY: update
2929
update:
30-
$(POETRY) update
30+
$(UV) sync --upgrade
3131

3232
# Clean commands
3333
.PHONY: pristine
@@ -65,24 +65,24 @@ epub3: setup
6565

6666
.PHONY: multiversion
6767
multiversion: setup
68-
$(POETRY) run sphinx-multiversion source $(BUILDDIR)/dirhtml
68+
$(UV) run sphinx-multiversion source $(BUILDDIR)/dirhtml
6969
@echo
7070
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
7171

7272
.PHONY: redirects
7373
redirects: setup
74-
$(POETRY) run redirects-cli fromfile --yaml-file _utils/redirects.yaml --output-dir $(BUILDDIR)/dirhtml
74+
$(UV) run redirects-cli fromfile --yaml-file _utils/redirects.yaml --output-dir $(BUILDDIR)/dirhtml
7575
@echo
7676
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
7777

7878
# Preview commands
7979
.PHONY: preview
8080
preview: setup
81-
$(POETRY) run sphinx-autobuild -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml --port 5500
81+
$(UV) run sphinx-autobuild -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml --port 5500
8282

8383
.PHONY: multiversionpreview
8484
multiversionpreview: multiversion
85-
$(POETRY) run python -m http.server 5500 --directory $(BUILDDIR)/dirhtml
85+
$(UV) run python -m http.server 5500 --directory $(BUILDDIR)/dirhtml
8686

8787
# Test commands
8888
.PHONY: test

docs/_utils/dependabot_template.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
version: 2
22
updates:
3-
- package-ecosystem: "pip"
3+
- package-ecosystem: "uv"
44
directory: "/docs"
55
schedule:
66
interval: "daily"
Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
1-
[tool.poetry]
1+
[project]
22
name = "sphinx-docs"
33
description = "ScyllaDB Documentation"
44
version = "0.1.0"
5-
authors = ["ScyllaDB Documentation Contributors"]
6-
package-mode = false
5+
requires-python = ">=3.11"
6+
dependencies = [
7+
"pygments>=2.18.0",
8+
"sphinx-scylladb-theme>=1.9.0",
9+
"myst-parser>=5.0.0",
10+
"sphinx-autobuild>=2025.08.25",
11+
"sphinx>=9.0",
12+
"sphinx-multiversion-scylla>=0.3.1",
13+
"sphinx-sitemap>=2.9.0",
14+
"redirects_cli>=0.1.3",
15+
]
716

8-
[tool.poetry.dependencies]
9-
python = "^3.10"
10-
pygments = "^2.18.0"
11-
sphinx-scylladb-theme = "^1.8.1"
12-
myst-parser = "^3.0.1"
13-
sphinx-autobuild = "^2024.4.19"
14-
Sphinx = "^7.3.7"
15-
sphinx-multiversion-scylla = "^0.3.1"
16-
sphinx-sitemap = "^2.6.0"
17-
redirects_cli ="^0.1.3"
18-
19-
[build-system]
20-
requires = ["poetry>=1.8.0"]
21-
build-backend = "poetry.masonry.api"
17+
[tool.uv]
18+
package = false

0 commit comments

Comments
 (0)