Read the Docs build information Build id: 3928046 Project: canonical-charmed-valkey Version: latest Commit: 74ef7f685485728d9652964364a4c7180c7dfc3b Date: 2026-04-15T06:50:15.439053Z State: finished Success: True [rtd-command-info] start-time: 2026-04-15T06:50:16.176855Z, end-time: 2026-04-15T06:50:16.668644Z, duration: 0, exit-code: 0 git clone --depth 1 https://github.com/canonical/charmed-valkey-operator . Cloning into '.'... [rtd-command-info] start-time: 2026-04-15T06:50:16.743685Z, end-time: 2026-04-15T06:50:17.220561Z, duration: 0, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 HEAD From https://github.com/canonical/charmed-valkey-operator * branch HEAD -> FETCH_HEAD [rtd-command-info] start-time: 2026-04-15T06:50:17.936256Z, end-time: 2026-04-15T06:50:17.965968Z, duration: 0, exit-code: 0 cat .readthedocs.yaml # .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 # Set the version of Python and other tools you might need build: os: ubuntu-22.04 tools: python: "3.11" jobs: post_checkout: - git fetch --unshallow || true # Cancel building pull requests when there aren't changed in the docs directory. # If there are no changes (git diff exits with 0) we force the command to return with 183. # This is a special exit code on Read the Docs that will cancel the build immediately. # https://docs.readthedocs.io/en/stable/build-customization.html#cancel-build-based-on-a-condition - | if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- 'docs/' '.readthedocs.yaml'; then exit 183; fi # Build documentation in the docs/ directory with Sphinx sphinx: builder: dirhtml configuration: docs/conf.py fail_on_warning: true # If using Sphinx, optionally build your docs in additional formats such as PDF # formats: # - pdf # Optionally declare the Python requirements required to build your docs python: install: - requirements: docs/requirements.txt [rtd-command-info] start-time: 2026-04-15T06:50:18.045650Z, end-time: 2026-04-15T06:50:18.081103Z, duration: 0, exit-code: 0 git fetch --unshallow || true fatal: --unshallow on a complete repository does not make sense [rtd-command-info] start-time: 2026-04-15T06:50:18.165507Z, end-time: 2026-04-15T06:50:18.201987Z, duration: 0, exit-code: 0 if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- 'docs/' '.readthedocs.yaml'; then exit 183; fi [rtd-command-info] start-time: 2026-04-15T06:50:22.390413Z, end-time: 2026-04-15T06:50:22.439952Z, duration: 0, exit-code: 0 asdf global python 3.11.12 [rtd-command-info] start-time: 2026-04-15T06:50:22.774886Z, end-time: 2026-04-15T06:50:23.234783Z, duration: 0, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.11.12.final.0-64 in 263ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/docs/.local/share/virtualenv) added seed packages: pip==23.1, setuptools==67.6.1, wheel==0.40.0 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator [rtd-command-info] start-time: 2026-04-15T06:50:23.329088Z, end-time: 2026-04-15T06:50:26.817601Z, duration: 3, exit-code: 0 python -m pip install --upgrade --no-cache-dir pip setuptools Requirement already satisfied: pip in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (23.1) Collecting pip Downloading pip-26.0.1-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 16.1 MB/s eta 0:00:00 Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (67.6.1) Collecting setuptools Downloading setuptools-82.0.1-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 29.6 MB/s eta 0:00:00 Installing collected packages: setuptools, pip Attempting uninstall: setuptools Found existing installation: setuptools 67.6.1 Uninstalling setuptools-67.6.1: Successfully uninstalled setuptools-67.6.1 Attempting uninstall: pip Found existing installation: pip 23.1 Uninstalling pip-23.1: Successfully uninstalled pip-23.1 Successfully installed pip-26.0.1 setuptools-82.0.1 [rtd-command-info] start-time: 2026-04-15T06:50:26.897677Z, end-time: 2026-04-15T06:50:30.763339Z, duration: 3, exit-code: 0 python -m pip install --upgrade --no-cache-dir sphinx Collecting sphinx Downloading sphinx-9.0.4-py3-none-any.whl.metadata (5.8 kB) Collecting sphinxcontrib-applehelp>=1.0.7 (from sphinx) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-devhelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-htmlhelp>=2.0.6 (from sphinx) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-jsmath>=1.0.1 (from sphinx) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl.metadata (1.4 kB) Collecting sphinxcontrib-qthelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-serializinghtml>=1.1.9 (from sphinx) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl.metadata (2.4 kB) Collecting Jinja2>=3.1 (from sphinx) Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB) Collecting Pygments>=2.17 (from sphinx) Downloading pygments-2.20.0-py3-none-any.whl.metadata (2.5 kB) Collecting docutils<0.23,>=0.20 (from sphinx) Downloading docutils-0.22.4-py3-none-any.whl.metadata (15 kB) Collecting snowballstemmer>=2.2 (from sphinx) Downloading snowballstemmer-3.0.1-py3-none-any.whl.metadata (7.9 kB) Collecting babel>=2.13 (from sphinx) Downloading babel-2.18.0-py3-none-any.whl.metadata (2.2 kB) Collecting alabaster>=0.7.14 (from sphinx) Downloading alabaster-1.0.0-py3-none-any.whl.metadata (2.8 kB) Collecting imagesize>=1.3 (from sphinx) Downloading imagesize-2.0.0-py2.py3-none-any.whl.metadata (1.5 kB) Collecting requests>=2.30.0 (from sphinx) Downloading requests-2.33.1-py3-none-any.whl.metadata (4.8 kB) Collecting roman-numerals>=1.0.0 (from sphinx) Downloading roman_numerals-4.1.0-py3-none-any.whl.metadata (3.3 kB) Collecting packaging>=23.0 (from sphinx) Downloading packaging-26.1-py3-none-any.whl.metadata (3.5 kB) Collecting MarkupSafe>=2.0 (from Jinja2>=3.1->sphinx) Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) Collecting charset_normalizer<4,>=2 (from requests>=2.30.0->sphinx) Downloading charset_normalizer-3.4.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB) Collecting idna<4,>=2.5 (from requests>=2.30.0->sphinx) Downloading idna-3.11-py3-none-any.whl.metadata (8.4 kB) Collecting urllib3<3,>=1.26 (from requests>=2.30.0->sphinx) Downloading urllib3-2.6.3-py3-none-any.whl.metadata (6.9 kB) Collecting certifi>=2023.5.7 (from requests>=2.30.0->sphinx) Downloading certifi-2026.2.25-py3-none-any.whl.metadata (2.5 kB) Downloading sphinx-9.0.4-py3-none-any.whl (3.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 49.3 MB/s 0:00:00 Downloading docutils-0.22.4-py3-none-any.whl (633 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 633.2/633.2 kB 1.2 GB/s 0:00:00 Downloading alabaster-1.0.0-py3-none-any.whl (13 kB) Downloading babel-2.18.0-py3-none-any.whl (10.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 247.1 MB/s 0:00:00 Downloading imagesize-2.0.0-py2.py3-none-any.whl (9.4 kB) Downloading jinja2-3.1.6-py3-none-any.whl (134 kB) Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) Downloading packaging-26.1-py3-none-any.whl (95 kB) Downloading pygments-2.20.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 1.2 GB/s 0:00:00 Downloading requests-2.33.1-py3-none-any.whl (64 kB) Downloading charset_normalizer-3.4.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (214 kB) Downloading idna-3.11-py3-none-any.whl (71 kB) Downloading urllib3-2.6.3-py3-none-any.whl (131 kB) Downloading certifi-2026.2.25-py3-none-any.whl (153 kB) Downloading roman_numerals-4.1.0-py3-none-any.whl (7.7 kB) Downloading snowballstemmer-3.0.1-py3-none-any.whl (103 kB) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB) Installing collected packages: urllib3, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, roman-numerals, Pygments, packaging, MarkupSafe, imagesize, idna, docutils, charset_normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 Pygments-2.20.0 alabaster-1.0.0 babel-2.18.0 certifi-2026.2.25 charset_normalizer-3.4.7 docutils-0.22.4 idna-3.11 imagesize-2.0.0 packaging-26.1 requests-2.33.1 roman-numerals-4.1.0 snowballstemmer-3.0.1 sphinx-9.0.4 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 urllib3-2.6.3 [rtd-command-info] start-time: 2026-04-15T06:50:30.849402Z, end-time: 2026-04-15T06:50:37.759691Z, duration: 6, exit-code: 0 python -m pip install --exists-action=w --no-cache-dir -r docs/requirements.txt Collecting canonical-sphinx>=0.5.1 (from -r docs/requirements.txt (line 2)) Downloading canonical_sphinx-0.6.0-py3-none-any.whl.metadata (5.8 kB) Collecting myst-parser (from -r docs/requirements.txt (line 5)) Downloading myst_parser-5.0.0-py3-none-any.whl.metadata (5.6 kB) Collecting sphinx-autobuild (from -r docs/requirements.txt (line 6)) Downloading sphinx_autobuild-2025.8.25-py3-none-any.whl.metadata (8.5 kB) Collecting sphinx-design (from -r docs/requirements.txt (line 7)) Downloading sphinx_design-0.7.0-py3-none-any.whl.metadata (5.5 kB) Collecting sphinx-notfound-page (from -r docs/requirements.txt (line 8)) Downloading sphinx_notfound_page-1.1.0-py3-none-any.whl.metadata (2.9 kB) Collecting sphinx-reredirects (from -r docs/requirements.txt (line 9)) Downloading sphinx_reredirects-1.1.0-py3-none-any.whl.metadata (4.7 kB) Collecting sphinx-tabs (from -r docs/requirements.txt (line 10)) Downloading sphinx_tabs-3.5.0-py3-none-any.whl.metadata (6.6 kB) Collecting sphinxcontrib-jquery (from -r docs/requirements.txt (line 11)) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl.metadata (2.6 kB) Collecting sphinxext-opengraph (from -r docs/requirements.txt (line 12)) Downloading sphinxext_opengraph-0.13.0-py3-none-any.whl.metadata (2.7 kB) Collecting sphinx-config-options>=0.1.0 (from -r docs/requirements.txt (line 15)) Downloading sphinx_config_options-0.1.1-py3-none-any.whl.metadata (3.1 kB) Collecting sphinx-contributor-listing>=0.1.0 (from -r docs/requirements.txt (line 16)) Downloading sphinx_contributor_listing-0.1.0-py3-none-any.whl.metadata (2.7 kB) Collecting sphinx-filtered-toctree>=0.1.0 (from -r docs/requirements.txt (line 17)) Downloading sphinx_filtered_toctree-0.1.0-py3-none-any.whl.metadata (1.8 kB) Collecting sphinx-related-links>=0.1.1 (from -r docs/requirements.txt (line 18)) Downloading sphinx_related_links-0.1.2-py3-none-any.whl.metadata (2.5 kB) Collecting sphinx-roles>=0.1.0 (from -r docs/requirements.txt (line 19)) Downloading sphinx_roles-0.1.0-py3-none-any.whl.metadata (1.5 kB) Collecting sphinx-terminal>=1.0.2 (from -r docs/requirements.txt (line 20)) Downloading sphinx_terminal-1.0.3-py3-none-any.whl.metadata (2.9 kB) Collecting sphinx-ubuntu-images>=0.1.0 (from -r docs/requirements.txt (line 21)) Downloading sphinx_ubuntu_images-0.1.0-py3-none-any.whl.metadata (4.5 kB) Collecting sphinx-youtube-links>=0.1.0 (from -r docs/requirements.txt (line 22)) Downloading sphinx_youtube_links-0.1.0-py3-none-any.whl.metadata (1.5 kB) Requirement already satisfied: packaging in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from -r docs/requirements.txt (line 25)) (26.1) Collecting sphinx-last-updated-by-git (from -r docs/requirements.txt (line 27)) Downloading sphinx_last_updated_by_git-0.3.8-py3-none-any.whl.metadata (7.1 kB) Collecting sphinx-sitemap (from -r docs/requirements.txt (line 28)) Downloading sphinx_sitemap-2.9.0-py3-none-any.whl.metadata (3.4 kB) Collecting rst2html (from -r docs/requirements.txt (line 31)) Downloading rst2html-2020.7.4.tar.gz (1.5 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting vale (from -r docs/requirements.txt (line 32)) Downloading vale-3.13.0.0-py3-none-any.whl.metadata (3.0 kB) Collecting myst-parser (from -r docs/requirements.txt (line 5)) Downloading myst_parser-4.0.1-py3-none-any.whl.metadata (5.5 kB) Collecting sphinxcontrib-svg2pdfconverter[CairoSVG] (from -r docs/requirements.txt (line 26)) Downloading sphinxcontrib_svg2pdfconverter-2.1.0-py3-none-any.whl.metadata (3.3 kB) Collecting docutils<0.22,>=0.19 (from myst-parser->-r docs/requirements.txt (line 5)) Downloading docutils-0.21.2-py3-none-any.whl.metadata (2.8 kB) Requirement already satisfied: jinja2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from myst-parser->-r docs/requirements.txt (line 5)) (3.1.6) Collecting markdown-it-py~=3.0 (from myst-parser->-r docs/requirements.txt (line 5)) Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB) Collecting mdit-py-plugins>=0.4.1,~=0.4 (from myst-parser->-r docs/requirements.txt (line 5)) Downloading mdit_py_plugins-0.5.0-py3-none-any.whl.metadata (2.8 kB) Collecting pyyaml (from myst-parser->-r docs/requirements.txt (line 5)) Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB) Collecting sphinx<9,>=7 (from myst-parser->-r docs/requirements.txt (line 5)) Downloading sphinx-8.2.3-py3-none-any.whl.metadata (7.0 kB) Collecting mdurl~=0.1 (from markdown-it-py~=3.0->myst-parser->-r docs/requirements.txt (line 5)) Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB) Requirement already satisfied: sphinxcontrib-applehelp>=1.0.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (2.0.0) Requirement already satisfied: sphinxcontrib-devhelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (2.0.0) Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (2.1.0) Requirement already satisfied: sphinxcontrib-jsmath>=1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (1.0.1) Requirement already satisfied: sphinxcontrib-qthelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (2.0.0) Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (2.0.0) Requirement already satisfied: Pygments>=2.17 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (2.20.0) Requirement already satisfied: snowballstemmer>=2.2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (3.0.1) Requirement already satisfied: babel>=2.13 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (2.18.0) Requirement already satisfied: alabaster>=0.7.14 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (1.0.0) Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (2.0.0) Requirement already satisfied: requests>=2.30.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (2.33.1) Collecting roman-numerals-py>=1.0.0 (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) Downloading roman_numerals_py-4.1.0-py3-none-any.whl.metadata (561 bytes) Collecting furo (from canonical-sphinx>=0.5.1->-r docs/requirements.txt (line 2)) Downloading furo-2025.12.19-py3-none-any.whl.metadata (4.9 kB) Collecting linkify-it-py (from canonical-sphinx>=0.5.1->-r docs/requirements.txt (line 2)) Downloading linkify_it_py-2.1.0-py3-none-any.whl.metadata (8.5 kB) Collecting colorama>=0.4.6 (from sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB) Collecting starlette>=0.35 (from sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading starlette-1.0.0-py3-none-any.whl.metadata (6.3 kB) Collecting uvicorn>=0.25 (from sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading uvicorn-0.44.0-py3-none-any.whl.metadata (6.7 kB) Collecting watchfiles>=0.20 (from sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB) Collecting websockets>=11 (from sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (6.8 kB) Collecting sphinx<9,>=7 (from myst-parser->-r docs/requirements.txt (line 5)) Downloading sphinx-7.4.7-py3-none-any.whl.metadata (6.1 kB) Collecting alabaster~=0.7.14 (from sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) Downloading alabaster-0.7.16-py3-none-any.whl.metadata (2.9 kB) Collecting GitPython (from sphinx-contributor-listing>=0.1.0->-r docs/requirements.txt (line 16)) Downloading gitpython-3.1.46-py3-none-any.whl.metadata (13 kB) Collecting beautifulsoup4 (from sphinx-related-links>=0.1.1->-r docs/requirements.txt (line 18)) Downloading beautifulsoup4-4.14.3-py3-none-any.whl.metadata (3.8 kB) Collecting sphinx-copybutton>=0.5.2 (from sphinx-terminal>=1.0.2->-r docs/requirements.txt (line 20)) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl.metadata (3.2 kB) Collecting cairosvg>=1.0 (from sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading cairosvg-2.9.0-py3-none-any.whl.metadata (2.7 kB) Collecting cairocffi (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading cairocffi-1.7.1-py3-none-any.whl.metadata (3.3 kB) Collecting cssselect2 (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading cssselect2-0.9.0-py3-none-any.whl.metadata (2.9 kB) Collecting defusedxml (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading defusedxml-0.7.1-py2.py3-none-any.whl.metadata (32 kB) Collecting pillow (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading pillow-12.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.8 kB) Collecting tinycss2 (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading tinycss2-1.5.1-py3-none-any.whl.metadata (3.0 kB) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from jinja2->myst-parser->-r docs/requirements.txt (line 5)) (3.0.3) Requirement already satisfied: charset_normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from requests>=2.30.0->sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (3.4.7) Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from requests>=2.30.0->sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (3.11) Requirement already satisfied: urllib3<3,>=1.26 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from requests>=2.30.0->sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (2.6.3) Requirement already satisfied: certifi>=2023.5.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from requests>=2.30.0->sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (2026.2.25) Collecting anyio<5,>=3.6.2 (from starlette>=0.35->sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading anyio-4.13.0-py3-none-any.whl.metadata (4.5 kB) Collecting typing-extensions>=4.10.0 (from starlette>=0.35->sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB) Collecting click>=7.0 (from uvicorn>=0.25->sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading click-8.3.2-py3-none-any.whl.metadata (2.6 kB) Collecting h11>=0.8 (from uvicorn>=0.25->sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) Collecting soupsieve>=1.6.1 (from beautifulsoup4->sphinx-related-links>=0.1.1->-r docs/requirements.txt (line 18)) Downloading soupsieve-2.8.3-py3-none-any.whl.metadata (4.6 kB) Collecting cffi>=1.1.0 (from cairocffi->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.6 kB) Collecting pycparser (from cffi>=1.1.0->cairocffi->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB) Collecting webencodings (from cssselect2->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading webencodings-0.5.1-py2.py3-none-any.whl.metadata (2.1 kB) Collecting sphinx-basic-ng>=1.0.0.beta2 (from furo->canonical-sphinx>=0.5.1->-r docs/requirements.txt (line 2)) Downloading sphinx_basic_ng-1.0.0b2-py3-none-any.whl.metadata (1.5 kB) Collecting accessible-pygments>=0.0.5 (from furo->canonical-sphinx>=0.5.1->-r docs/requirements.txt (line 2)) Downloading accessible_pygments-0.0.5-py3-none-any.whl.metadata (10 kB) Collecting gitdb<5,>=4.0.1 (from GitPython->sphinx-contributor-listing>=0.1.0->-r docs/requirements.txt (line 16)) Downloading gitdb-4.0.12-py3-none-any.whl.metadata (1.2 kB) Collecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->GitPython->sphinx-contributor-listing>=0.1.0->-r docs/requirements.txt (line 16)) Downloading smmap-5.0.3-py3-none-any.whl.metadata (4.6 kB) Collecting uc-micro-py (from linkify-it-py->canonical-sphinx>=0.5.1->-r docs/requirements.txt (line 2)) Downloading uc_micro_py-2.0.0-py3-none-any.whl.metadata (2.2 kB) Requirement already satisfied: roman-numerals==4.1.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/envs/latest/lib/python3.11/site-packages (from roman-numerals-py>=1.0.0->sphinx<9,>=7->myst-parser->-r docs/requirements.txt (line 5)) (4.1.0) Downloading myst_parser-4.0.1-py3-none-any.whl (84 kB) Downloading docutils-0.21.2-py3-none-any.whl (587 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 587.4/587.4 kB 26.0 MB/s 0:00:00 Downloading markdown_it_py-3.0.0-py3-none-any.whl (87 kB) Downloading mdit_py_plugins-0.5.0-py3-none-any.whl (57 kB) Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB) Downloading canonical_sphinx-0.6.0-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 37.8 MB/s 0:00:00 Downloading sphinx_autobuild-2025.8.25-py3-none-any.whl (12 kB) Downloading sphinx_design-0.7.0-py3-none-any.whl (2.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 90.7 MB/s 0:00:00 Downloading sphinx_notfound_page-1.1.0-py3-none-any.whl (8.2 kB) Downloading sphinx_reredirects-1.1.0-py3-none-any.whl (6.4 kB) Downloading sphinx_tabs-3.5.0-py3-none-any.whl (9.9 kB) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB) Downloading sphinxext_opengraph-0.13.0-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 1.1 GB/s 0:00:00 Downloading sphinx_config_options-0.1.1-py3-none-any.whl (23 kB) Downloading sphinx-7.4.7-py3-none-any.whl (3.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4/3.4 MB 255.2 MB/s 0:00:00 Downloading alabaster-0.7.16-py3-none-any.whl (13 kB) Downloading sphinx_contributor_listing-0.1.0-py3-none-any.whl (19 kB) Downloading sphinx_filtered_toctree-0.1.0-py3-none-any.whl (16 kB) Downloading sphinx_related_links-0.1.2-py3-none-any.whl (19 kB) Downloading sphinx_roles-0.1.0-py3-none-any.whl (17 kB) Downloading sphinx_terminal-1.0.3-py3-none-any.whl (20 kB) Downloading sphinx_ubuntu_images-0.1.0-py3-none-any.whl (28 kB) Downloading sphinx_youtube_links-0.1.0-py3-none-any.whl (17 kB) Downloading sphinxcontrib_svg2pdfconverter-2.1.0-py3-none-any.whl (9.3 kB) Downloading sphinx_last_updated_by_git-0.3.8-py3-none-any.whl (8.6 kB) Downloading sphinx_sitemap-2.9.0-py3-none-any.whl (6.2 kB) Downloading vale-3.13.0.0-py3-none-any.whl (5.9 kB) Downloading cairosvg-2.9.0-py3-none-any.whl (45 kB) Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl (13 kB) Downloading starlette-1.0.0-py3-none-any.whl (72 kB) Downloading anyio-4.13.0-py3-none-any.whl (114 kB) Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB) Downloading uvicorn-0.44.0-py3-none-any.whl (69 kB) Downloading click-8.3.2-py3-none-any.whl (108 kB) Downloading h11-0.16.0-py3-none-any.whl (37 kB) Downloading watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (456 kB) Downloading websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (184 kB) Downloading beautifulsoup4-4.14.3-py3-none-any.whl (107 kB) Downloading soupsieve-2.8.3-py3-none-any.whl (37 kB) Downloading cairocffi-1.7.1-py3-none-any.whl (75 kB) Downloading cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (215 kB) Downloading cssselect2-0.9.0-py3-none-any.whl (15 kB) Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB) Downloading furo-2025.12.19-py3-none-any.whl (339 kB) Downloading accessible_pygments-0.0.5-py3-none-any.whl (1.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 174.8 MB/s 0:00:00 Downloading sphinx_basic_ng-1.0.0b2-py3-none-any.whl (22 kB) Downloading gitpython-3.1.46-py3-none-any.whl (208 kB) Downloading gitdb-4.0.12-py3-none-any.whl (62 kB) Downloading smmap-5.0.3-py3-none-any.whl (24 kB) Downloading linkify_it_py-2.1.0-py3-none-any.whl (19 kB) Downloading pillow-12.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.1/7.1 MB 170.4 MB/s 0:00:00 Downloading pycparser-3.0-py3-none-any.whl (48 kB) Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 806.6/806.6 kB 1.3 GB/s 0:00:00 Downloading tinycss2-1.5.1-py3-none-any.whl (28 kB) Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB) Downloading uc_micro_py-2.0.0-py3-none-any.whl (6.4 kB) Building wheels for collected packages: rst2html Building wheel for rst2html (pyproject.toml): started Building wheel for rst2html (pyproject.toml): finished with status 'done' Created wheel for rst2html: filename=rst2html-2020.7.4-py3-none-any.whl size=1472 sha256=2e7e65db7ccf04d94dd604e24fce8ff857e7f1454ed71c0b86e0effeff8cfd36 Stored in directory: /tmp/pip-ephem-wheel-cache-enrjpiqk/wheels/39/db/0e/0697082eb1b53bdad9f5019b5a590c54e0ec7aac2ec19c6360 Successfully built rst2html Installing collected packages: webencodings, websockets, vale, uc-micro-py, typing-extensions, tinycss2, soupsieve, smmap, pyyaml, pycparser, pillow, mdurl, h11, docutils, defusedxml, colorama, click, alabaster, accessible-pygments, uvicorn, sphinx, rst2html, markdown-it-py, linkify-it-py, gitdb, cssselect2, cffi, beautifulsoup4, anyio, watchfiles, starlette, sphinxext-opengraph, sphinxcontrib-svg2pdfconverter, sphinxcontrib-jquery, sphinx-youtube-links, sphinx-ubuntu-images, sphinx-tabs, sphinx-roles, sphinx-reredirects, sphinx-related-links, sphinx-notfound-page, sphinx-last-updated-by-git, sphinx-filtered-toctree, sphinx-design, sphinx-copybutton, sphinx-config-options, sphinx-basic-ng, mdit-py-plugins, GitPython, cairocffi, sphinx-terminal, sphinx-sitemap, sphinx-contributor-listing, sphinx-autobuild, myst-parser, furo, cairosvg, canonical-sphinx Attempting uninstall: docutils Found existing installation: docutils 0.22.4 Uninstalling docutils-0.22.4: Successfully uninstalled docutils-0.22.4 Attempting uninstall: alabaster Found existing installation: alabaster 1.0.0 Uninstalling alabaster-1.0.0: Successfully uninstalled alabaster-1.0.0 Attempting uninstall: sphinx Found existing installation: Sphinx 9.0.4 Uninstalling Sphinx-9.0.4: Successfully uninstalled Sphinx-9.0.4 Successfully installed GitPython-3.1.46 accessible-pygments-0.0.5 alabaster-0.7.16 anyio-4.13.0 beautifulsoup4-4.14.3 cairocffi-1.7.1 cairosvg-2.9.0 canonical-sphinx-0.6.0 cffi-2.0.0 click-8.3.2 colorama-0.4.6 cssselect2-0.9.0 defusedxml-0.7.1 docutils-0.21.2 furo-2025.12.19 gitdb-4.0.12 h11-0.16.0 linkify-it-py-2.1.0 markdown-it-py-3.0.0 mdit-py-plugins-0.5.0 mdurl-0.1.2 myst-parser-4.0.1 pillow-12.2.0 pycparser-3.0 pyyaml-6.0.3 rst2html-2020.7.4 smmap-5.0.3 soupsieve-2.8.3 sphinx-7.4.7 sphinx-autobuild-2025.8.25 sphinx-basic-ng-1.0.0b2 sphinx-config-options-0.1.1 sphinx-contributor-listing-0.1.0 sphinx-copybutton-0.5.2 sphinx-design-0.7.0 sphinx-filtered-toctree-0.1.0 sphinx-last-updated-by-git-0.3.8 sphinx-notfound-page-1.1.0 sphinx-related-links-0.1.2 sphinx-reredirects-1.1.0 sphinx-roles-0.1.0 sphinx-sitemap-2.9.0 sphinx-tabs-3.5.0 sphinx-terminal-1.0.3 sphinx-ubuntu-images-0.1.0 sphinx-youtube-links-0.1.0 sphinxcontrib-jquery-4.1 sphinxcontrib-svg2pdfconverter-2.1.0 sphinxext-opengraph-0.13.0 starlette-1.0.0 tinycss2-1.5.1 typing-extensions-4.15.0 uc-micro-py-2.0.0 uvicorn-0.44.0 vale-3.13.0.0 watchfiles-1.1.1 webencodings-0.5.1 websockets-16.0 [rtd-command-info] start-time: 2026-04-15T06:50:37.905987Z, end-time: 2026-04-15T06:50:37.941560Z, duration: 0, exit-code: 0 cat docs/conf.py import datetime import os import yaml # Configuration for the Sphinx documentation builder. # All configuration specific to your project should be done in this file. # # If you're new to Sphinx and don't want any advanced or custom features, # just go through the items marked 'TODO'. # # A complete list of built-in Sphinx configuration values: # https://www.sphinx-doc.org/en/master/usage/configuration.html # # Our starter pack uses the custom Canonical Sphinx extension # to keep all documentation based on it consistent and on brand: # https://github.com/canonical/canonical-sphinx ####################### # Project information # ####################### # Project name # # TODO: Update with the official name of your project or product project = "Charmed Valkey" author = "Canonical Ltd." # Sidebar documentation title; best kept reasonably short # # TODO: To include a version number, add it here (hardcoded or automated). # # TODO: To disable the title, set to an empty string. html_title = project + " documentation" # Copyright string; shown at the bottom of the page # # Now, the starter pack uses CC-BY-SA as the license # and the current year as the copyright year. # # TODO: If your docs need another license, specify it instead of 'CC-BY-SA'. # # TODO: If your documentation is a part of the code repository of your project, # it inherits the code license instead; specify it instead of 'CC-BY-SA'. # # NOTE: For static works, it is common to provide the first publication year. # Another option is to provide both the first year of publication # and the current year, especially for docs that frequently change, # e.g. 2022–2023 (note the en-dash). # # A way to check a repo's creation date is to get a classic GitHub token # with 'repo' permissions; see https://github.com/settings/tokens # Next, use 'curl' and 'jq' to extract the date from the API's output: # # curl -H 'Authorization: token ' \ # -H 'Accept: application/vnd.github.v3.raw' \ # https://api.github.com/repos/canonical/ | jq '.created_at' copyright = "%s CC-BY-SA, %s" % (datetime.date.today().year, author) # Documentation website URL # # TODO: Update with the official URL of your docs or leave empty if unsure. # # NOTE: The Open Graph Protocol (OGP) enhances page display in a social graph # and is used by social media platforms; see https://ogp.me/ ogp_site_url = "https://canonical-charmed-valkey.readthedocs-hosted.com/" # Preview name of the documentation website # # TODO: To use a different name for the project in previews, update as needed. ogp_site_name = project # Preview image URL # # TODO: To customise the preview image, update as needed. ogp_image = "https://assets.ubuntu.com/v1/cc828679-docs_illustration.svg" # Product favicon; shown in bookmarks, browser tabs, etc. # TODO: To customise the favicon, uncomment and update as needed. # html_favicon = '.sphinx/_static/favicon.png' # Dictionary of values to pass into the Sphinx context for all pages: # https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-html_context html_context = { # Product page URL; can be different from product docs URL # # TODO: Change to your product website URL, # dropping the 'https://' prefix, e.g. 'ubuntu.com/lxd'. # # TODO: If there's no such website, # remove the {{ product_page }} link from the page header template # (usually .sphinx/_templates/header.html; also, see README.rst). "product_page": "https://canonical.com/data/valkey", # Product tag image; the orange part of your logo, shown in the page header # # TODO: To add a tag image, uncomment and update as needed. # 'product_tag': '_static/tag.png', # Your Discourse instance URL # # TODO: Change to your Discourse instance URL or leave empty. # # NOTE: If set, adding ':discourse: 123' to an .rst file # will add a link to Discourse topic 123 at the bottom of the page. "discourse": "https://discourse.ubuntu.com", # Your Mattermost channel URL # # TODO: Change to your Mattermost channel URL or leave empty. "mattermost": "https://chat.canonical.com/canonical/channels/documentation", # Your Matrix channel URL # # TODO: Change to your Matrix channel URL or leave empty. "matrix": "https://matrix.to/#/#documentation:ubuntu.com", # Your documentation GitHub repository URL # # TODO: Change to your documentation GitHub repository URL or leave empty. # # NOTE: If set, links for viewing the documentation source files # and creating GitHub issues are added at the bottom of each page. "github_url": "https://github.com/canonical/charmed-valkey-operator/", # Docs branch in the repo; used in links for viewing the source files # # TODO: To customise the branch, uncomment and update as needed. 'repo_default_branch': 'main', # Docs location in the repo; used in links for viewing the source files # # TODO: To customise the directory, uncomment and update as needed. "repo_folder": "/docs/", # TODO: To enable or disable the Previous / Next buttons at the bottom of pages # Valid options: none, prev, next, both # "sequential_nav": "both", # TODO: To enable listing contributors on individual pages, set to True "display_contributors": False, # Required for feedback button 'github_issues': 'enabled', } html_extra_path = [] # Allow opt-in build of the OpenAPI "Hello" example so docs stay clean by default. if os.getenv("OPENAPI", ""): tags.add("openapi") html_extra_path.append("how-to/assets/openapi.yaml") # TODO: To enable the edit button on pages, uncomment and change the link to a # public repository on GitHub or Launchpad. Any of the following link domains # are accepted: # - https://github.com/example-org/example" # - https://launchpad.net/example # - https://git.launchpad.net/example # # html_theme_options = { # 'source_edit_link': 'https://github.com/canonical/sphinx-docs-starter-pack', # } # Project slug; see https://meta.discourse.org/t/what-is-category-slug/87897 # # TODO: If your documentation is hosted on https://docs.ubuntu.com/, # uncomment and update as needed. # slug = '' ####################### # Sitemap configuration: https://sphinx-sitemap.readthedocs.io/ ####################### # Use RTD canonical URL to ensure duplicate pages have a specific canonical URL html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "/") # URL scheme. Add language and version scheme elements. # When configured with RTD variables, check for RTD environment so manual runs succeed: if 'READTHEDOCS_VERSION' in os.environ: version = os.environ["READTHEDOCS_VERSION"] sitemap_url_scheme = '{version}{link}' else: sitemap_url_scheme = 'MANUAL/{link}' # Include `lastmod` dates in the sitemap: sitemap_show_lastmod = True # Exclude generated pages from the sitemap: sitemap_excludes = [ '404/', 'genindex/', 'search/', ] # TODO: Add more pages to sitemap_excludes if needed. Wildcards are supported. # For example, to exclude module pages generated by autodoc, add '_modules/*'. ####################### # Template and asset locations ####################### #html_static_path = ["_static"] #templates_path = ["_templates"] ############# # Redirects # ############# # To set up redirects: https://documatt.gitlab.io/sphinx-reredirects/usage.html # For example: 'explanation/old-name.html': '../how-to/prettify.html', # To set up redirects in the Read the Docs project dashboard: # https://docs.readthedocs.io/en/stable/guides/redirects.html # NOTE: If undefined, set to None, or empty, # the sphinx_reredirects extension will be disabled. redirects = { 'reference/doc-cheat-sheet-myst/': '../myst-syntax-reference', 'reference/doc-cheat-sheet/': '../rst-syntax-reference', 'reference/style-guide-myst/': '../myst-syntax-reference', 'reference/style-guide/': '../rst-syntax-reference', } ########################### # Link checker exceptions # ########################### # A regex list of URLs that are ignored by 'make linkcheck' # # TODO: Remove or adjust the ACME entry after you update the contributing guide linkcheck_ignore = [ "http://127.0.0.1:8000", "https://github.com/canonical/ACME/*", "https://matrix.to/#/#charmhub-data-platform:ubuntu.com", ] # A regex list of URLs where anchors are ignored by 'make linkcheck' linkcheck_anchors_ignore_for_url = [r"https://github\.com/.*"] # give linkcheck multiple tries on failure # linkcheck_timeout = 30 linkcheck_retries = 3 ######################## # Configuration extras # ######################## # Custom MyST syntax extensions; see # https://myst-parser.readthedocs.io/en/latest/syntax/optional.html # # NOTE: By default, the following MyST extensions are enabled: # substitution, deflist, linkify # myst_enable_extensions = set() # Custom Sphinx extensions; see # https://www.sphinx-doc.org/en/master/usage/extensions/index.html # NOTE: The canonical_sphinx extension is required for the starter pack. extensions = [ "canonical_sphinx", "notfound.extension", "sphinx_design", "sphinx_reredirects", "sphinx_tabs.tabs", "sphinxcontrib.jquery", "sphinxext.opengraph", "sphinx_config_options", "sphinx_contributor_listing", "sphinx_filtered_toctree", "sphinx_related_links", "sphinx_roles", "sphinx_terminal", "sphinx_ubuntu_images", "sphinx_youtube_links", "sphinxcontrib.cairosvgconverter", "sphinx_last_updated_by_git", "sphinx.ext.intersphinx", "sphinx_sitemap", ] # Excludes files or directories from processing exclude_patterns = [ "doc-cheat-sheet*", ] # Adds custom CSS files, located under 'html_static_path' # html_css_files = [] # Adds custom JavaScript files, located under 'html_static_path' # html_js_files = [] # Specifies a reST snippet to be appended to each .rst file rst_epilog = """ .. include:: /reuse/links.txt .. include:: /reuse/substitutions.txt """ # Feedback button at the top; enabled by default # # TODO: To disable the button, uncomment this. # disable_feedback_button = True # Your manpage URL # # TODO: To enable manpage links, uncomment and replace {codename} with required # release, preferably an LTS release (e.g. noble). Do *not* substitute # {section} or {page}; these will be replaced by sphinx at build time # # NOTE: If set, adding ':manpage:' to an .rst file # adds a link to the corresponding man section at the bottom of the page. # manpages_url = 'https://manpages.ubuntu.com/manpages/{codename}/en/' + \ # 'man{section}/{page}.{section}.html' # Specifies a reST snippet to be prepended to each .rst file # This defines a :center: role that centers table cell content. # This defines a :h2: role that styles content for use with PDF generation. rst_prolog = """ .. role:: center :class: align-center .. role:: h2 :class: hclass2 .. role:: woke-ignore :class: woke-ignore .. role:: vale-ignore :class: vale-ignore """ # Workaround for https://github.com/canonical/canonical-sphinx/issues/34 if "discourse_prefix" not in html_context and "discourse" in html_context: html_context["discourse_prefix"] = html_context["discourse"] + "/t/" # Workaround for substitutions.yaml if os.path.exists('./reuse/substitutions.yaml'): with open('./reuse/substitutions.yaml', 'r') as fd: myst_substitutions = yaml.safe_load(fd.read()) # Add configuration for intersphinx mapping intersphinx_mapping = { 'starter-pack': ('https://canonical-example-product-documentation.readthedocs-hosted.com/en/latest', None), 'sphinxcontrib-mermaid': ('https://sphinxcontrib-mermaid-demo.readthedocs.io/en/latest', None) } [rtd-command-info] start-time: 2026-04-15T06:50:38.029455Z, end-time: 2026-04-15T06:50:39.176020Z, duration: 1, exit-code: 0 python -m sphinx -T -W --keep-going -b dirhtml -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/html Running Sphinx v7.4.7 loading translations [en]... done sphinx_design found. sphinx_design is now configured. sphinx_tabs.tabs found. sphinx_tabs.tabs is now configured. sphinx_reredirects found. sphinx_reredirects is now configured. canonical.youtube-links not found. canonical.youtube-links will not be configured. canonical.related-links not found. canonical.related-links will not be configured. canonical.custom-rst-roles not found. canonical.custom-rst-roles will not be configured. canonical.terminal-output not found. canonical.terminal-output will not be configured. canonical.contributor-listing not found. canonical.contributor-listing will not be configured. sphinx_copybutton found. sphinx_copybutton is now configured. sphinxext.opengraph found. sphinxext.opengraph is now configured. sphinxcontrib.jquery found. sphinxcontrib.jquery is now configured. notfound.extension found. notfound.extension is now configured. sphinxcontrib.cairosvgconverter found. sphinxcontrib.cairosvgconverter is now configured. sphinx_last_updated_by_git found. sphinx_last_updated_by_git is now configured. matplotlib is not installed, social cards will not be generated making output directory... done myst v4.0.1: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions={'deflist', 'linkify', 'substitution'}, disable_syntax=[], all_links_external=False, links_external_new_tab=False, url_schemes=('http', 'https', 'mailto', 'ftp'), ref_domains=None, fence_as_directive=set(), number_code_blocks=[], title_to_header=False, heading_anchors=0, heading_slug_func=None, html_meta={}, footnote_sort=True, footnote_transition=True, words_per_minute=200, substitutions={version_number: ..., formatted_text: ..., site_link: ...}, linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, dmath_double_inline=False, update_mathjax=True, mathjax_classes='tex2jax_process|mathjax_process|math|output_area', enable_checkboxes=False, suppress_warnings=[], highlight_code_blocks=True) loading intersphinx inventory 'starter-pack' from https://canonical-example-product-documentation.readthedocs-hosted.com/en/latest/objects.inv... loading intersphinx inventory 'sphinxcontrib-mermaid' from https://sphinxcontrib-mermaid-demo.readthedocs.io/en/latest/objects.inv... building [mo]: targets for 0 po files that are out of date writing output... building [dirhtml]: targets for 8 source files that are out of date updating environment: [new config] 8 added, 0 changed, 0 removed reading sources... [ 12%] how-to/deploy reading sources... [ 25%] how-to/index reading sources... [ 38%] how-to/manage-passwords reading sources... [ 50%] how-to/scale-horizontally reading sources... [ 62%] how-to/tls reading sources... [ 75%] index reading sources... [ 88%] reference/contact reading sources... [100%] tutorial getting Git timestamps for source files... [ 33%] how-to getting Git timestamps for source files... [ 67%] . getting Git timestamps for source files... [100%] reference getting Git timestamps for dependencies... looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... done copying extra files... done copying assets: done writing output... [ 12%] how-to/deploy writing output... [ 25%] how-to/index writing output... [ 38%] how-to/manage-passwords writing output... [ 50%] how-to/scale-horizontally writing output... [ 62%] how-to/tls writing output... [ 75%] index writing output... [ 88%] reference/contact writing output... [100%] tutorial generating indices... genindex done Creating redirect 'reference/doc-cheat-sheet-myst/index.html' to '../myst-syntax-reference'. Creating redirect 'reference/doc-cheat-sheet/index.html' to '../rst-syntax-reference'. Creating redirect 'reference/style-guide-myst/index.html' to '../myst-syntax-reference'. Creating redirect 'reference/style-guide/index.html' to '../rst-syntax-reference'. writing additional pages... search done dumping search index in English (code: en)... done dumping object inventory... done sphinx-sitemap: sitemap.xml was generated for URL https://canonical-charmed-valkey.readthedocs-hosted.com/latest/ in /home/docs/checkouts/readthedocs.org/user_builds/canonical-charmed-valkey/checkouts/latest/_readthedocs/html/sitemap.xml build succeeded. The HTML pages are in ../_readthedocs/html.