Read the Docs build information Build id: 2556087 Project: canonical-k8s-snap Version: latest Commit: 95fe5331de079d87e78a4f400263d86a402b75f2 Date: 2024-10-18T14:44:16.970841Z State: finished Success: False [rtd-command-info] start-time: 2024-10-18T14:50:00.216700Z, end-time: 2024-10-18T14:50:00.886271Z, duration: 0, exit-code: 0 git clone --depth 1 https://github.com/canonical/k8s-snap.git . Cloning into '.'... [rtd-command-info] start-time: 2024-10-18T14:50:00.973484Z, end-time: 2024-10-18T14:50:01.587309Z, duration: 0, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 refs/heads/main:refs/remotes/origin/main [rtd-command-info] start-time: 2024-10-18T14:50:01.747281Z, end-time: 2024-10-18T14:50:01.887403Z, duration: 0, exit-code: 0 git checkout --force origin/main Note: switching to 'origin/main'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 95fe533 Enable forbidigo linter (#734) [rtd-command-info] start-time: 2024-10-18T14:50:01.973154Z, end-time: 2024-10-18T14:50:02.032675Z, duration: 0, exit-code: 0 cat docs/tools/.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.12" jobs: post_checkout: # Cancel building pull requests when there aren't changed in the docs directory or YAML file. # # https://docs.readthedocs.io/en/latest/build-customization.html#cancel-build-based-on-a-condition # 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. - | if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- docs/ .readthedocs.yaml; then exit 183; fi pre_build: - cp -r docs/src/* docs/tools/ # Build documentation in the docs/ directory with Sphinx sphinx: builder: dirhtml configuration: docs/tools/conf.py # 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/tools/.sphinx/requirements.txt [rtd-command-info] start-time: 2024-10-18T14:50:02.111789Z, end-time: 2024-10-18T14:50:02.183518Z, 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: 2024-10-18T14:50:08.458502Z, end-time: 2024-10-18T14:50:08.532215Z, duration: 0, exit-code: 0 asdf global python 3.12.3 [rtd-command-info] start-time: 2024-10-18T14:50:08.981404Z, end-time: 2024-10-18T14:50:10.156824Z, duration: 1, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.12.3.final.0-64 in 827ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/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: 2024-10-18T14:50:10.235961Z, end-time: 2024-10-18T14:50:22.651889Z, duration: 12, 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-k8s-snap/envs/latest/lib/python3.12/site-packages (23.1) Collecting pip Downloading pip-24.2-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 14.9 MB/s eta 0:00:00 Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (67.6.1) Collecting setuptools Downloading setuptools-75.2.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 34.0 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-24.2 setuptools-75.2.0 [rtd-command-info] start-time: 2024-10-18T14:50:22.738154Z, end-time: 2024-10-18T14:50:28.936411Z, duration: 6, exit-code: 0 python -m pip install --upgrade --no-cache-dir sphinx Collecting sphinx Downloading sphinx-8.1.3-py3-none-any.whl.metadata (6.4 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.4-py3-none-any.whl.metadata (2.6 kB) Collecting Pygments>=2.17 (from sphinx) Downloading pygments-2.18.0-py3-none-any.whl.metadata (2.5 kB) Collecting docutils<0.22,>=0.20 (from sphinx) Downloading docutils-0.21.2-py3-none-any.whl.metadata (2.8 kB) Collecting snowballstemmer>=2.2 (from sphinx) Downloading snowballstemmer-2.2.0-py2.py3-none-any.whl.metadata (6.5 kB) Collecting babel>=2.13 (from sphinx) Downloading babel-2.16.0-py3-none-any.whl.metadata (1.5 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-1.4.1-py2.py3-none-any.whl.metadata (1.5 kB) Collecting requests>=2.30.0 (from sphinx) Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB) Collecting packaging>=23.0 (from sphinx) Downloading packaging-24.1-py3-none-any.whl.metadata (3.2 kB) Collecting MarkupSafe>=2.0 (from Jinja2>=3.1->sphinx) Downloading MarkupSafe-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB) Collecting charset-normalizer<4,>=2 (from requests>=2.30.0->sphinx) Downloading charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (34 kB) Collecting idna<4,>=2.5 (from requests>=2.30.0->sphinx) Downloading idna-3.10-py3-none-any.whl.metadata (10 kB) Collecting urllib3<3,>=1.21.1 (from requests>=2.30.0->sphinx) Downloading urllib3-2.2.3-py3-none-any.whl.metadata (6.5 kB) Collecting certifi>=2017.4.17 (from requests>=2.30.0->sphinx) Downloading certifi-2024.8.30-py3-none-any.whl.metadata (2.2 kB) Downloading sphinx-8.1.3-py3-none-any.whl (3.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5/3.5 MB 142.2 MB/s eta 0:00:00 Downloading alabaster-1.0.0-py3-none-any.whl (13 kB) Downloading babel-2.16.0-py3-none-any.whl (9.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.6/9.6 MB 255.2 MB/s eta 0:00:00 Downloading docutils-0.21.2-py3-none-any.whl (587 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 587.4/587.4 kB 477.5 MB/s eta 0:00:00 Downloading imagesize-1.4.1-py2.py3-none-any.whl (8.8 kB) Downloading jinja2-3.1.4-py3-none-any.whl (133 kB) Downloading packaging-24.1-py3-none-any.whl (53 kB) Downloading pygments-2.18.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 553.3 MB/s eta 0:00:00 Downloading requests-2.32.3-py3-none-any.whl (64 kB) Downloading snowballstemmer-2.2.0-py2.py3-none-any.whl (93 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) Downloading certifi-2024.8.30-py3-none-any.whl (167 kB) Downloading charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (143 kB) Downloading idna-3.10-py3-none-any.whl (70 kB) Downloading MarkupSafe-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23 kB) Downloading urllib3-2.2.3-py3-none-any.whl (126 kB) Installing collected packages: snowballstemmer, urllib3, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, Pygments, packaging, MarkupSafe, imagesize, idna, docutils, charset-normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx Successfully installed Jinja2-3.1.4 MarkupSafe-3.0.1 Pygments-2.18.0 alabaster-1.0.0 babel-2.16.0 certifi-2024.8.30 charset-normalizer-3.4.0 docutils-0.21.2 idna-3.10 imagesize-1.4.1 packaging-24.1 requests-2.32.3 snowballstemmer-2.2.0 sphinx-8.1.3 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.2.3 [rtd-command-info] start-time: 2024-10-18T14:50:29.018515Z, end-time: 2024-10-18T14:50:36.614430Z, duration: 7, exit-code: 0 python -m pip install --exists-action=w --no-cache-dir -r docs/tools/.sphinx/requirements.txt Collecting GitPython (from -r docs/tools/.sphinx/requirements.txt (line 7)) Downloading GitPython-3.1.43-py3-none-any.whl.metadata (13 kB) Collecting canonical-sphinx-extensions (from -r docs/tools/.sphinx/requirements.txt (line 8)) Downloading canonical_sphinx_extensions-0.0.23-py3-none-any.whl.metadata (15 kB) Collecting furo (from -r docs/tools/.sphinx/requirements.txt (line 9)) Downloading furo-2024.8.6-py3-none-any.whl.metadata (5.9 kB) Collecting linkify-it-py (from -r docs/tools/.sphinx/requirements.txt (line 10)) Downloading linkify_it_py-2.0.3-py3-none-any.whl.metadata (8.5 kB) Collecting myst-parser (from -r docs/tools/.sphinx/requirements.txt (line 11)) Downloading myst_parser-4.0.0-py3-none-any.whl.metadata (5.4 kB) Collecting pyspelling (from -r docs/tools/.sphinx/requirements.txt (line 12)) Downloading pyspelling-2.10-py3-none-any.whl.metadata (3.8 kB) Requirement already satisfied: sphinx in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from -r docs/tools/.sphinx/requirements.txt (line 13)) (8.1.3) Collecting sphinx-autobuild (from -r docs/tools/.sphinx/requirements.txt (line 14)) Downloading sphinx_autobuild-2024.10.3-py3-none-any.whl.metadata (7.7 kB) Collecting sphinx-copybutton (from -r docs/tools/.sphinx/requirements.txt (line 15)) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl.metadata (3.2 kB) Collecting sphinx-design (from -r docs/tools/.sphinx/requirements.txt (line 16)) Downloading sphinx_design-0.6.1-py3-none-any.whl.metadata (5.5 kB) Collecting sphinx-notfound-page (from -r docs/tools/.sphinx/requirements.txt (line 17)) Downloading sphinx_notfound_page-1.0.4-py3-none-any.whl.metadata (2.9 kB) Collecting sphinx-tabs (from -r docs/tools/.sphinx/requirements.txt (line 18)) Downloading sphinx_tabs-3.4.7-py3-none-any.whl.metadata (6.3 kB) Collecting sphinxcontrib-jquery (from -r docs/tools/.sphinx/requirements.txt (line 19)) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl.metadata (2.6 kB) Collecting sphinxext-opengraph (from -r docs/tools/.sphinx/requirements.txt (line 21)) Downloading sphinxext_opengraph-0.9.1-py3-none-any.whl.metadata (6.5 kB) Collecting watchfiles (from -r docs/tools/.sphinx/requirements.txt (line 22)) Downloading watchfiles-0.24.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB) Collecting sphinxcontrib-svg2pdfconverter[CairoSVG] (from -r docs/tools/.sphinx/requirements.txt (line 20)) Downloading sphinxcontrib_svg2pdfconverter-1.2.3-py3-none-any.whl.metadata (3.3 kB) Collecting gitdb<5,>=4.0.1 (from GitPython->-r docs/tools/.sphinx/requirements.txt (line 7)) Downloading gitdb-4.0.11-py3-none-any.whl.metadata (1.2 kB) Requirement already satisfied: requests in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from canonical-sphinx-extensions->-r docs/tools/.sphinx/requirements.txt (line 8)) (2.32.3) Collecting beautifulsoup4 (from canonical-sphinx-extensions->-r docs/tools/.sphinx/requirements.txt (line 8)) Downloading beautifulsoup4-4.12.3-py3-none-any.whl.metadata (3.8 kB) Requirement already satisfied: docutils in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from canonical-sphinx-extensions->-r docs/tools/.sphinx/requirements.txt (line 8)) (0.21.2) Collecting sphinx-basic-ng>=1.0.0.beta2 (from furo->-r docs/tools/.sphinx/requirements.txt (line 9)) Downloading sphinx_basic_ng-1.0.0b2-py3-none-any.whl.metadata (1.5 kB) Requirement already satisfied: pygments>=2.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from furo->-r docs/tools/.sphinx/requirements.txt (line 9)) (2.18.0) Collecting uc-micro-py (from linkify-it-py->-r docs/tools/.sphinx/requirements.txt (line 10)) Downloading uc_micro_py-1.0.3-py3-none-any.whl.metadata (2.0 kB) Requirement already satisfied: jinja2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from myst-parser->-r docs/tools/.sphinx/requirements.txt (line 11)) (3.1.4) Collecting markdown-it-py~=3.0 (from myst-parser->-r docs/tools/.sphinx/requirements.txt (line 11)) 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/tools/.sphinx/requirements.txt (line 11)) Downloading mdit_py_plugins-0.4.2-py3-none-any.whl.metadata (2.8 kB) Collecting pyyaml (from myst-parser->-r docs/tools/.sphinx/requirements.txt (line 11)) Downloading PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB) Collecting html5lib (from pyspelling->-r docs/tools/.sphinx/requirements.txt (line 12)) Downloading html5lib-1.1-py2.py3-none-any.whl.metadata (16 kB) Collecting lxml (from pyspelling->-r docs/tools/.sphinx/requirements.txt (line 12)) Downloading lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl.metadata (3.8 kB) Collecting markdown (from pyspelling->-r docs/tools/.sphinx/requirements.txt (line 12)) Downloading Markdown-3.7-py3-none-any.whl.metadata (7.0 kB) Collecting soupsieve>=1.8 (from pyspelling->-r docs/tools/.sphinx/requirements.txt (line 12)) Downloading soupsieve-2.6-py3-none-any.whl.metadata (4.6 kB) Collecting wcmatch>=8.5 (from pyspelling->-r docs/tools/.sphinx/requirements.txt (line 12)) Downloading wcmatch-10.0-py3-none-any.whl.metadata (5.0 kB) Requirement already satisfied: sphinxcontrib-applehelp>=1.0.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from sphinx->-r docs/tools/.sphinx/requirements.txt (line 13)) (2.0.0) Requirement already satisfied: sphinxcontrib-devhelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from sphinx->-r docs/tools/.sphinx/requirements.txt (line 13)) (2.0.0) Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from sphinx->-r docs/tools/.sphinx/requirements.txt (line 13)) (2.1.0) Requirement already satisfied: sphinxcontrib-jsmath>=1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from sphinx->-r docs/tools/.sphinx/requirements.txt (line 13)) (1.0.1) Requirement already satisfied: sphinxcontrib-qthelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from sphinx->-r docs/tools/.sphinx/requirements.txt (line 13)) (2.0.0) Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from sphinx->-r docs/tools/.sphinx/requirements.txt (line 13)) (2.0.0) Requirement already satisfied: snowballstemmer>=2.2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from sphinx->-r docs/tools/.sphinx/requirements.txt (line 13)) (2.2.0) Requirement already satisfied: babel>=2.13 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from sphinx->-r docs/tools/.sphinx/requirements.txt (line 13)) (2.16.0) Requirement already satisfied: alabaster>=0.7.14 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from sphinx->-r docs/tools/.sphinx/requirements.txt (line 13)) (1.0.0) Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from sphinx->-r docs/tools/.sphinx/requirements.txt (line 13)) (1.4.1) Requirement already satisfied: packaging>=23.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from sphinx->-r docs/tools/.sphinx/requirements.txt (line 13)) (24.1) Collecting colorama>=0.4.6 (from sphinx-autobuild->-r docs/tools/.sphinx/requirements.txt (line 14)) Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB) Collecting starlette>=0.35 (from sphinx-autobuild->-r docs/tools/.sphinx/requirements.txt (line 14)) Downloading starlette-0.41.0-py3-none-any.whl.metadata (6.0 kB) Collecting uvicorn>=0.25 (from sphinx-autobuild->-r docs/tools/.sphinx/requirements.txt (line 14)) Downloading uvicorn-0.32.0-py3-none-any.whl.metadata (6.6 kB) Collecting websockets>=11 (from sphinx-autobuild->-r docs/tools/.sphinx/requirements.txt (line 14)) Downloading websockets-13.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.8 kB) Collecting cairosvg>=1.0 (from sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/tools/.sphinx/requirements.txt (line 20)) Downloading CairoSVG-2.7.1-py3-none-any.whl.metadata (2.7 kB) Collecting anyio>=3.0.0 (from watchfiles->-r docs/tools/.sphinx/requirements.txt (line 22)) Downloading anyio-4.6.2.post1-py3-none-any.whl.metadata (4.7 kB) Requirement already satisfied: idna>=2.8 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from anyio>=3.0.0->watchfiles->-r docs/tools/.sphinx/requirements.txt (line 22)) (3.10) Collecting sniffio>=1.1 (from anyio>=3.0.0->watchfiles->-r docs/tools/.sphinx/requirements.txt (line 22)) Downloading sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB) Collecting cairocffi (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/tools/.sphinx/requirements.txt (line 20)) Downloading cairocffi-1.7.1-py3-none-any.whl.metadata (3.3 kB) Collecting cssselect2 (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/tools/.sphinx/requirements.txt (line 20)) Downloading cssselect2-0.7.0-py3-none-any.whl.metadata (2.9 kB) Collecting defusedxml (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/tools/.sphinx/requirements.txt (line 20)) Downloading defusedxml-0.7.1-py2.py3-none-any.whl.metadata (32 kB) Collecting pillow (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/tools/.sphinx/requirements.txt (line 20)) Downloading pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl.metadata (9.1 kB) Collecting tinycss2 (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/tools/.sphinx/requirements.txt (line 20)) Downloading tinycss2-1.3.0-py3-none-any.whl.metadata (3.0 kB) Collecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->GitPython->-r docs/tools/.sphinx/requirements.txt (line 7)) Downloading smmap-5.0.1-py3-none-any.whl.metadata (4.3 kB) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from jinja2->myst-parser->-r docs/tools/.sphinx/requirements.txt (line 11)) (3.0.1) Collecting mdurl~=0.1 (from markdown-it-py~=3.0->myst-parser->-r docs/tools/.sphinx/requirements.txt (line 11)) Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB) Requirement already satisfied: charset-normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from requests->canonical-sphinx-extensions->-r docs/tools/.sphinx/requirements.txt (line 8)) (3.4.0) Requirement already satisfied: urllib3<3,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from requests->canonical-sphinx-extensions->-r docs/tools/.sphinx/requirements.txt (line 8)) (2.2.3) Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages (from requests->canonical-sphinx-extensions->-r docs/tools/.sphinx/requirements.txt (line 8)) (2024.8.30) Collecting click>=7.0 (from uvicorn>=0.25->sphinx-autobuild->-r docs/tools/.sphinx/requirements.txt (line 14)) Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB) Collecting h11>=0.8 (from uvicorn>=0.25->sphinx-autobuild->-r docs/tools/.sphinx/requirements.txt (line 14)) Downloading h11-0.14.0-py3-none-any.whl.metadata (8.2 kB) Collecting bracex>=2.1.1 (from wcmatch>=8.5->pyspelling->-r docs/tools/.sphinx/requirements.txt (line 12)) Downloading bracex-2.5.post1-py3-none-any.whl.metadata (3.5 kB) Collecting six>=1.9 (from html5lib->pyspelling->-r docs/tools/.sphinx/requirements.txt (line 12)) Downloading six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB) Collecting webencodings (from html5lib->pyspelling->-r docs/tools/.sphinx/requirements.txt (line 12)) Downloading webencodings-0.5.1-py2.py3-none-any.whl.metadata (2.1 kB) Collecting cffi>=1.1.0 (from cairocffi->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/tools/.sphinx/requirements.txt (line 20)) Downloading cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB) Collecting pycparser (from cffi>=1.1.0->cairocffi->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/tools/.sphinx/requirements.txt (line 20)) Downloading pycparser-2.22-py3-none-any.whl.metadata (943 bytes) Downloading GitPython-3.1.43-py3-none-any.whl (207 kB) Downloading canonical_sphinx_extensions-0.0.23-py3-none-any.whl (38 kB) Downloading furo-2024.8.6-py3-none-any.whl (341 kB) Downloading linkify_it_py-2.0.3-py3-none-any.whl (19 kB) Downloading myst_parser-4.0.0-py3-none-any.whl (84 kB) Downloading pyspelling-2.10-py3-none-any.whl (45 kB) Downloading sphinx_autobuild-2024.10.3-py3-none-any.whl (11 kB) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl (13 kB) Downloading sphinx_design-0.6.1-py3-none-any.whl (2.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 183.8 MB/s eta 0:00:00 Downloading sphinx_notfound_page-1.0.4-py3-none-any.whl (8.2 kB) Downloading sphinx_tabs-3.4.7-py3-none-any.whl (9.7 kB) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB) Downloading sphinxext_opengraph-0.9.1-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 519.0 MB/s eta 0:00:00 Downloading watchfiles-0.24.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (425 kB) Downloading anyio-4.6.2.post1-py3-none-any.whl (90 kB) Downloading CairoSVG-2.7.1-py3-none-any.whl (43 kB) Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB) Downloading gitdb-4.0.11-py3-none-any.whl (62 kB) Downloading markdown_it_py-3.0.0-py3-none-any.whl (87 kB) Downloading mdit_py_plugins-0.4.2-py3-none-any.whl (55 kB) Downloading soupsieve-2.6-py3-none-any.whl (36 kB) Downloading sphinx_basic_ng-1.0.0b2-py3-none-any.whl (22 kB) Downloading starlette-0.41.0-py3-none-any.whl (73 kB) Downloading uvicorn-0.32.0-py3-none-any.whl (63 kB) Downloading wcmatch-10.0-py3-none-any.whl (39 kB) Downloading websockets-13.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (165 kB) Downloading beautifulsoup4-4.12.3-py3-none-any.whl (147 kB) Downloading html5lib-1.1-py2.py3-none-any.whl (112 kB) Downloading lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl (4.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.9/4.9 MB 279.4 MB/s eta 0:00:00 Downloading Markdown-3.7-py3-none-any.whl (106 kB) Downloading PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (767 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 767.5/767.5 kB 537.0 MB/s eta 0:00:00 Downloading sphinxcontrib_svg2pdfconverter-1.2.3-py3-none-any.whl (8.2 kB) Downloading uc_micro_py-1.0.3-py3-none-any.whl (6.2 kB) Downloading bracex-2.5.post1-py3-none-any.whl (11 kB) Downloading click-8.1.7-py3-none-any.whl (97 kB) Downloading h11-0.14.0-py3-none-any.whl (58 kB) Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB) Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) Downloading smmap-5.0.1-py3-none-any.whl (24 kB) Downloading sniffio-1.3.1-py3-none-any.whl (10 kB) Downloading cairocffi-1.7.1-py3-none-any.whl (75 kB) Downloading cssselect2-0.7.0-py3-none-any.whl (15 kB) Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB) Downloading pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl (4.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 185.4 MB/s eta 0:00:00 Downloading tinycss2-1.3.0-py3-none-any.whl (22 kB) Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB) Downloading cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479 kB) Downloading pycparser-2.22-py3-none-any.whl (117 kB) Installing collected packages: webencodings, websockets, uc-micro-py, tinycss2, soupsieve, sniffio, smmap, six, pyyaml, pycparser, pillow, mdurl, markdown, lxml, h11, defusedxml, colorama, click, bracex, wcmatch, uvicorn, markdown-it-py, linkify-it-py, html5lib, gitdb, cssselect2, cffi, beautifulsoup4, anyio, watchfiles, starlette, sphinxext-opengraph, sphinxcontrib-svg2pdfconverter, sphinxcontrib-jquery, sphinx-tabs, sphinx-notfound-page, sphinx-design, sphinx-copybutton, sphinx-basic-ng, pyspelling, mdit-py-plugins, GitPython, cairocffi, sphinx-autobuild, myst-parser, furo, canonical-sphinx-extensions, cairosvg Successfully installed GitPython-3.1.43 anyio-4.6.2.post1 beautifulsoup4-4.12.3 bracex-2.5.post1 cairocffi-1.7.1 cairosvg-2.7.1 canonical-sphinx-extensions-0.0.23 cffi-1.17.1 click-8.1.7 colorama-0.4.6 cssselect2-0.7.0 defusedxml-0.7.1 furo-2024.8.6 gitdb-4.0.11 h11-0.14.0 html5lib-1.1 linkify-it-py-2.0.3 lxml-5.3.0 markdown-3.7 markdown-it-py-3.0.0 mdit-py-plugins-0.4.2 mdurl-0.1.2 myst-parser-4.0.0 pillow-11.0.0 pycparser-2.22 pyspelling-2.10 pyyaml-6.0.2 six-1.16.0 smmap-5.0.1 sniffio-1.3.1 soupsieve-2.6 sphinx-autobuild-2024.10.3 sphinx-basic-ng-1.0.0b2 sphinx-copybutton-0.5.2 sphinx-design-0.6.1 sphinx-notfound-page-1.0.4 sphinx-tabs-3.4.7 sphinxcontrib-jquery-4.1 sphinxcontrib-svg2pdfconverter-1.2.3 sphinxext-opengraph-0.9.1 starlette-0.41.0 tinycss2-1.3.0 uc-micro-py-1.0.3 uvicorn-0.32.0 watchfiles-0.24.0 wcmatch-10.0 webencodings-0.5.1 websockets-13.1 [rtd-command-info] start-time: 2024-10-18T14:50:36.919612Z, end-time: 2024-10-18T14:50:36.978864Z, duration: 0, exit-code: 0 cp -r docs/src/* docs/tools/ [rtd-command-info] start-time: 2024-10-18T14:50:37.062881Z, end-time: 2024-10-18T14:50:37.119088Z, duration: 0, exit-code: 0 cat docs/tools/conf.py import sys import os import requests from urllib.parse import urlparse from git import Repo, InvalidGitRepositoryError import time import ast import yaml sys.path.append('./') from custom_conf import * sys.path.append('.sphinx/') from build_requirements import * # Configuration file for the Sphinx documentation builder. # You should not do any modifications to this file. Put your custom # configuration into the custom_conf.py file. # If you need to change this file, contribute the changes upstream. # # For the full list of built-in configuration values, see the documentation: # https://www.sphinx-doc.org/en/master/usage/configuration.html ############################################################ ### Extensions ############################################################ extensions = [ 'sphinx_design', 'sphinx_copybutton', 'sphinxcontrib.jquery', ] # Only add redirects extension if any redirects are specified. if AreRedirectsDefined(): extensions.append('sphinx_reredirects') # Only add myst extensions if any configuration is present. if IsMyStParserUsed(): extensions.append('myst_parser') # Additional MyST syntax myst_enable_extensions = [ 'substitution', 'deflist', 'linkify' ] myst_enable_extensions.extend(custom_myst_extensions) # Only add Open Graph extension if any configuration is present. if IsOpenGraphConfigured(): extensions.append('sphinxext.opengraph') extensions.extend(custom_extensions) extensions = DeduplicateExtensions(extensions) ### Configuration for extensions # Used for related links if not 'discourse_prefix' in html_context and 'discourse' in html_context: html_context['discourse_prefix'] = html_context['discourse'] + '/t/' # The URL prefix for the notfound extension depends on whether the documentation uses versions. # For documentation on documentation.ubuntu.com, we also must add the slug. url_version = '' url_lang = '' # Determine if the URL uses versions and language if 'READTHEDOCS_CANONICAL_URL' in os.environ and os.environ['READTHEDOCS_CANONICAL_URL']: url_parts = os.environ['READTHEDOCS_CANONICAL_URL'].split('/') if len(url_parts) >= 2 and 'READTHEDOCS_VERSION' in os.environ and os.environ['READTHEDOCS_VERSION'] == url_parts[-2]: url_version = url_parts[-2] + '/' if len(url_parts) >= 3 and 'READTHEDOCS_LANGUAGE' in os.environ and os.environ['READTHEDOCS_LANGUAGE'] == url_parts[-3]: url_lang = url_parts[-3] + '/' # Set notfound_urls_prefix to the slug (if defined) and the version/language affix if slug: notfound_urls_prefix = '/' + slug + '/' + url_lang + url_version elif len(url_lang + url_version) > 0: notfound_urls_prefix = '/' + url_lang + url_version else: notfound_urls_prefix = '' notfound_context = { 'title': 'Page not found', 'body': '

Sorry, but the documentation page that you are looking for was not found.

\n\n

Documentation changes over time, and pages are moved around. We try to redirect you to the updated content where possible, but unfortunately, that didn\'t work this time (maybe because the content you were looking for does not exist in this version of the documentation).

\n

You can try to use the navigation to locate the content you\'re looking for, or search for a similar page.

\n', } # Default image for OGP (to prevent font errors, see # https://github.com/canonical/sphinx-docs-starter-pack/pull/54 ) if not 'ogp_image' in locals(): ogp_image = 'https://assets.ubuntu.com/v1/253da317-image-document-ubuntudocs.svg' ############################################################ ### General configuration ############################################################ exclude_patterns = [ '_build', 'Thumbs.db', '.DS_Store', '.sphinx', '_parts' ] exclude_patterns.extend(custom_excludes) rst_epilog = ''' .. include:: /reuse/links.txt ''' if 'custom_rst_epilog' in locals(): rst_epilog = custom_rst_epilog source_suffix = { '.rst': 'restructuredtext', '.md': 'markdown', } if not 'conf_py_path' in html_context and 'github_folder' in html_context: html_context['conf_py_path'] = html_context['github_folder'] # For ignoring specific links linkcheck_anchors_ignore_for_url = [ r'https://github\.com/.*' ] linkcheck_anchors_ignore_for_url.extend(custom_linkcheck_anchors_ignore_for_url) # Tags cannot be added directly in custom_conf.py, so add them here for tag in custom_tags: tags.add(tag) # html_context['get_contribs'] is a function and cannot be # cached (see https://github.com/sphinx-doc/sphinx/issues/12300) suppress_warnings = ["config.cache"] ############################################################ ### Styling ############################################################ # Find the current builder builder = 'dirhtml' if '-b' in sys.argv: builder = sys.argv[sys.argv.index('-b')+1] # Setting templates_path for epub makes the build fail if builder == 'dirhtml' or builder == 'html': templates_path = ['.sphinx/_templates'] notfound_template = '404.html' # Theme configuration html_theme = 'furo' html_last_updated_fmt = '' html_permalinks_icon = '¶' if html_title == '': html_theme_options = { 'sidebar_hide_name': True } ############################################################ ### Additional files ############################################################ html_static_path = ['.sphinx/_static'] html_css_files = [ 'custom.css', 'header.css', 'github_issue_links.css', 'furo_colors.css', 'footer.css' ] html_css_files.extend(custom_html_css_files) html_js_files = ['header-nav.js', 'footer.js'] if 'github_issues' in html_context and html_context['github_issues'] and not disable_feedback_button: html_js_files.append('github_issue_links.js') html_js_files.extend(custom_html_js_files) ############################################################# # Display the contributors def get_contributors_for_file(github_url, github_folder, pagename, page_source_suffix, display_contributors_since=None): filename = f"{pagename}{page_source_suffix}" paths=html_context['github_folder'][1:] + filename try: repo = Repo(".") except InvalidGitRepositoryError: cwd = os.getcwd() ghfolder = html_context['github_folder'][:-1] if ghfolder and cwd.endswith(ghfolder): repo = Repo(cwd.rpartition(ghfolder)[0]) else: print("The local Git repository could not be found.") return since = display_contributors_since if display_contributors_since and display_contributors_since.strip() else None commits = repo.iter_commits(paths=paths, since=since) contributors_dict = {} for commit in commits: contributor = commit.author.name if contributor not in contributors_dict or commit.committed_date > contributors_dict[contributor]['date']: contributors_dict[contributor] = { 'date': commit.committed_date, 'sha': commit.hexsha } # The github_page contains the link to the contributor's latest commit. contributors_list = [{'name': name, 'github_page': f"{github_url}/commit/{data['sha']}"} for name, data in contributors_dict.items()] sorted_contributors_list = sorted(contributors_list, key=lambda x: x['name']) return sorted_contributors_list html_context['get_contribs'] = get_contributors_for_file ############################################################ ### Myst configuration ############################################################ if os.path.exists('./reuse/substitutions.yaml'): with open('./reuse/substitutions.yaml', 'r') as fd: myst_substitutions = yaml.safe_load(fd.read()) ############################################################ ### PDF configuration ############################################################ latex_additional_files = [ "./.sphinx/fonts/Ubuntu-B.ttf", "./.sphinx/fonts/Ubuntu-R.ttf", "./.sphinx/fonts/Ubuntu-RI.ttf", "./.sphinx/fonts/UbuntuMono-R.ttf", "./.sphinx/fonts/UbuntuMono-RI.ttf", "./.sphinx/fonts/UbuntuMono-B.ttf", "./.sphinx/images/Canonical-logo-4x.png", "./.sphinx/images/front-page-light.pdf", "./.sphinx/images/normal-page-footer.pdf", ] latex_engine = 'xelatex' latex_show_pagerefs = True latex_show_urls = 'footnote' with open(".sphinx/latex_elements_template.txt", "rt") as file: latex_config = file.read() latex_elements = ast.literal_eval(latex_config.replace("$PROJECT", project)) [rtd-command-info] start-time: 2024-10-18T14:50:37.214282Z, end-time: 2024-10-18T14:50:50.151770Z, duration: 12, exit-code: 0 python -m sphinx -T -b dirhtml -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/html Running Sphinx v8.1.3 loading translations [en]... done matplotlib is not installed, social cards will not be generated making output directory... done myst v4.0.0: 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={product: ..., version: ..., channel: ..., multi_line_example: ...}, 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) building [mo]: targets for 0 po files that are out of date writing output... building [dirhtml]: targets for 92 source files that are out of date updating environment: [new config] 92 added, 0 changed, 0 removed reading sources... [ 1%] capi/explanation/about reading sources... [ 2%] capi/explanation/capi-ck8s reading sources... [ 3%] capi/explanation/index reading sources... [ 4%] capi/explanation/security reading sources... [ 5%] capi/howto/custom-ck8s reading sources... [ 7%] capi/howto/external-etcd reading sources... [ 8%] capi/howto/in-place-upgrades reading sources... [ 9%] capi/howto/index reading sources... [ 10%] capi/howto/migrate-management reading sources... [ 11%] capi/howto/rollout-upgrades reading sources... [ 12%] capi/howto/upgrade-providers reading sources... [ 13%] capi/index reading sources... [ 14%] capi/reference/annotations reading sources... [ 15%] capi/reference/community reading sources... [ 16%] capi/reference/configs reading sources... [ 17%] capi/reference/index reading sources... [ 18%] capi/reference/releases reading sources... [ 20%] capi/tutorial/getting-started reading sources... [ 21%] capi/tutorial/index reading sources... [ 22%] charm/explanation/about reading sources... [ 23%] charm/explanation/channels reading sources... [ 24%] charm/explanation/index reading sources... [ 25%] charm/explanation/security reading sources... [ 26%] charm/howto/charm reading sources... [ 27%] charm/howto/contribute reading sources... [ 28%] charm/howto/cos-lite reading sources... [ 29%] charm/howto/custom-registry reading sources... [ 30%] charm/howto/etcd reading sources... [ 32%] charm/howto/index reading sources... [ 33%] charm/howto/install-lxd reading sources... [ 34%] charm/howto/proxy reading sources... [ 35%] charm/index reading sources... [ 36%] charm/reference/architecture reading sources... [ 37%] charm/reference/charms reading sources... [ 38%] charm/reference/community reading sources... [ 39%] charm/reference/index reading sources... [ 40%] charm/reference/proxy reading sources... [ 41%] charm/reference/releases reading sources... [ 42%] charm/tutorial/getting-started reading sources... [ 43%] charm/tutorial/index reading sources... [ 45%] index reading sources... [ 46%] snap/explanation/about reading sources... [ 47%] snap/explanation/certificates reading sources... [ 48%] snap/explanation/channels reading sources... [ 49%] snap/explanation/clustering reading sources... [ 50%] snap/explanation/epa reading sources... [ 51%] snap/explanation/index reading sources... [ 52%] snap/explanation/ingress reading sources... [ 53%] snap/explanation/security reading sources... [ 54%] snap/howto/backup-restore reading sources... [ 55%] snap/howto/cis-hardening reading sources... [ 57%] snap/howto/contribute reading sources... [ 58%] snap/howto/epa reading sources... [ 59%] snap/howto/external-datastore reading sources... [ 60%] snap/howto/index reading sources... [ 61%] snap/howto/install/index reading sources... [ 62%] snap/howto/install/lxd reading sources... [ 63%] snap/howto/install/multipass reading sources... [ 64%] snap/howto/install/offline reading sources... [ 65%] snap/howto/install/snap reading sources... [ 66%] snap/howto/networking/default-dns reading sources... [ 67%] snap/howto/networking/default-ingress reading sources... [ 68%] snap/howto/networking/default-loadbalancer reading sources... [ 70%] snap/howto/networking/default-network reading sources... [ 71%] snap/howto/networking/dualstack reading sources... [ 72%] snap/howto/networking/index reading sources... [ 73%] snap/howto/proxy reading sources... [ 74%] snap/howto/refresh-certs reading sources... [ 75%] snap/howto/restore-quorum reading sources... [ 76%] snap/howto/storage/ceph reading sources... [ 77%] snap/howto/storage/index reading sources... [ 78%] snap/howto/storage/storage reading sources... [ 79%] snap/howto/support reading sources... [ 80%] snap/howto/two-node-ha reading sources... [ 82%] snap/index reading sources... [ 83%] snap/reference/annotations reading sources... [ 84%] snap/reference/architecture reading sources... [ 85%] snap/reference/bootstrap-config-reference reading sources... [ 86%] snap/reference/certificates reading sources... [ 87%] snap/reference/commands reading sources... [ 88%] snap/reference/community reading sources... [ 89%] snap/reference/control-plane-join-config-reference reading sources... [ 90%] snap/reference/index reading sources... [ 91%] snap/reference/proxy reading sources... [ 92%] snap/reference/releases reading sources... [ 93%] snap/reference/roadmap reading sources... [ 95%] snap/reference/troubleshooting reading sources... [ 96%] snap/reference/worker-join-config-reference reading sources... [ 97%] snap/tutorial/add-remove-nodes reading sources... [ 98%] snap/tutorial/getting-started reading sources... [ 99%] snap/tutorial/index reading sources... [100%] snap/tutorial/kubectl /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/docs/tools/snap/reference/architecture.md.rst:4318: WARNING: Unknown directive type: 'kroki' [myst.directive_unknown] /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/docs/tools/snap/explanation/clustering.md.rst:21: WARNING: Unknown directive type: 'kroki' [myst.directive_unknown] /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/docs/tools/snap/explanation/ingress.md.rst:57: WARNING: Unknown directive type: 'kroki' [myst.directive_unknown] /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/docs/tools/snap/reference/architecture.md.rst:13: WARNING: Unknown directive type: 'kroki' [myst.directive_unknown] /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/docs/tools/snap/reference/architecture.md.rst:55: WARNING: Unknown directive type: 'kroki' [myst.directive_unknown] /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/docs/tools/snap/reference/architecture.md.rst:77: WARNING: Unknown directive type: 'kroki' [myst.directive_unknown] /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/docs/tools/snap/reference/architecture.md.rst:110: WARNING: Unknown directive type: 'kroki' [myst.directive_unknown] looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/_readthedocs/html/_static/basic.css Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/_readthedocs/html/_static/language_data.js Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/_readthedocs/html/_static/documentation_options.js Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/_readthedocs/html/_static/copybutton.js copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 1%] capi/explanation/about The local Git repository could not be found. writing output... [ 2%] capi/explanation/capi-ck8s The local Git repository could not be found. writing output... [ 3%] capi/explanation/index The local Git repository could not be found. writing output... [ 4%] capi/explanation/security The local Git repository could not be found. writing output... [ 5%] capi/howto/custom-ck8s The local Git repository could not be found. writing output... [ 7%] capi/howto/external-etcd The local Git repository could not be found. writing output... [ 8%] capi/howto/in-place-upgrades The local Git repository could not be found. writing output... [ 9%] capi/howto/index The local Git repository could not be found. writing output... [ 10%] capi/howto/migrate-management The local Git repository could not be found. writing output... [ 11%] capi/howto/rollout-upgrades The local Git repository could not be found. writing output... [ 12%] capi/howto/upgrade-providers The local Git repository could not be found. writing output... [ 13%] capi/index The local Git repository could not be found. writing output... [ 14%] capi/reference/annotations The local Git repository could not be found. writing output... [ 15%] capi/reference/community The local Git repository could not be found. writing output... [ 16%] capi/reference/configs The local Git repository could not be found. writing output... [ 17%] capi/reference/index The local Git repository could not be found. writing output... [ 18%] capi/reference/releases The local Git repository could not be found. writing output... [ 20%] capi/tutorial/getting-started The local Git repository could not be found. writing output... [ 21%] capi/tutorial/index The local Git repository could not be found. writing output... [ 22%] charm/explanation/about The local Git repository could not be found. writing output... [ 23%] charm/explanation/channels The local Git repository could not be found. writing output... [ 24%] charm/explanation/index The local Git repository could not be found. writing output... [ 25%] charm/explanation/security The local Git repository could not be found. writing output... [ 26%] charm/howto/charm The local Git repository could not be found. writing output... [ 27%] charm/howto/contribute The local Git repository could not be found. writing output... [ 28%] charm/howto/cos-lite The local Git repository could not be found. writing output... [ 29%] charm/howto/custom-registry The local Git repository could not be found. writing output... [ 30%] charm/howto/etcd The local Git repository could not be found. writing output... [ 32%] charm/howto/index The local Git repository could not be found. writing output... [ 33%] charm/howto/install-lxd The local Git repository could not be found. writing output... [ 34%] charm/howto/proxy The local Git repository could not be found. writing output... [ 35%] charm/index The local Git repository could not be found. writing output... [ 36%] charm/reference/architecture The local Git repository could not be found. writing output... [ 37%] charm/reference/charms The local Git repository could not be found. writing output... [ 38%] charm/reference/community The local Git repository could not be found. writing output... [ 39%] charm/reference/index The local Git repository could not be found. writing output... [ 40%] charm/reference/proxy The local Git repository could not be found. writing output... [ 41%] charm/reference/releases The local Git repository could not be found. writing output... [ 42%] charm/tutorial/getting-started The local Git repository could not be found. writing output... [ 43%] charm/tutorial/index The local Git repository could not be found. writing output... [ 45%] index The local Git repository could not be found. writing output... [ 46%] snap/explanation/about The local Git repository could not be found. writing output... [ 47%] snap/explanation/certificates The local Git repository could not be found. writing output... [ 48%] snap/explanation/channels The local Git repository could not be found. writing output... [ 49%] snap/explanation/clustering The local Git repository could not be found. writing output... [ 50%] snap/explanation/epa The local Git repository could not be found. writing output... [ 51%] snap/explanation/index The local Git repository could not be found. writing output... [ 52%] snap/explanation/ingress The local Git repository could not be found. writing output... [ 53%] snap/explanation/security The local Git repository could not be found. writing output... [ 54%] snap/howto/backup-restore The local Git repository could not be found. writing output... [ 55%] snap/howto/cis-hardening The local Git repository could not be found. writing output... [ 57%] snap/howto/contribute The local Git repository could not be found. writing output... [ 58%] snap/howto/epa The local Git repository could not be found. writing output... [ 59%] snap/howto/external-datastore The local Git repository could not be found. writing output... [ 60%] snap/howto/index The local Git repository could not be found. writing output... [ 61%] snap/howto/install/index The local Git repository could not be found. writing output... [ 62%] snap/howto/install/lxd The local Git repository could not be found. writing output... [ 63%] snap/howto/install/multipass The local Git repository could not be found. writing output... [ 64%] snap/howto/install/offline The local Git repository could not be found. writing output... [ 65%] snap/howto/install/snap The local Git repository could not be found. writing output... [ 66%] snap/howto/networking/default-dns The local Git repository could not be found. writing output... [ 67%] snap/howto/networking/default-ingress The local Git repository could not be found. writing output... [ 68%] snap/howto/networking/default-loadbalancer The local Git repository could not be found. writing output... [ 70%] snap/howto/networking/default-network The local Git repository could not be found. writing output... [ 71%] snap/howto/networking/dualstack The local Git repository could not be found. writing output... [ 72%] snap/howto/networking/index The local Git repository could not be found. writing output... [ 73%] snap/howto/proxy The local Git repository could not be found. writing output... [ 74%] snap/howto/refresh-certs The local Git repository could not be found. writing output... [ 75%] snap/howto/restore-quorum The local Git repository could not be found. writing output... [ 76%] snap/howto/storage/ceph The local Git repository could not be found. writing output... [ 77%] snap/howto/storage/index The local Git repository could not be found. writing output... [ 78%] snap/howto/storage/storage The local Git repository could not be found. writing output... [ 79%] snap/howto/support The local Git repository could not be found. writing output... [ 80%] snap/howto/two-node-ha The local Git repository could not be found. writing output... [ 82%] snap/index The local Git repository could not be found. writing output... [ 83%] snap/reference/annotations The local Git repository could not be found. writing output... [ 84%] snap/reference/architecture The local Git repository could not be found. writing output... [ 85%] snap/reference/bootstrap-config-reference The local Git repository could not be found. writing output... [ 86%] snap/reference/certificates The local Git repository could not be found. writing output... [ 87%] snap/reference/commands The local Git repository could not be found. writing output... [ 88%] snap/reference/community The local Git repository could not be found. writing output... [ 89%] snap/reference/control-plane-join-config-reference The local Git repository could not be found. writing output... [ 90%] snap/reference/index The local Git repository could not be found. writing output... [ 91%] snap/reference/proxy The local Git repository could not be found. writing output... [ 92%] snap/reference/releases The local Git repository could not be found. writing output... [ 93%] snap/reference/roadmap The local Git repository could not be found. writing output... [ 95%] snap/reference/troubleshooting The local Git repository could not be found. writing output... [ 96%] snap/reference/worker-join-config-reference The local Git repository could not be found. writing output... [ 97%] snap/tutorial/add-remove-nodes The local Git repository could not be found. writing output... [ 98%] snap/tutorial/getting-started The local Git repository could not be found. writing output... [ 99%] snap/tutorial/index The local Git repository could not be found. writing output... [100%] snap/tutorial/kubectl The local Git repository could not be found. generating indices... genindex done writing additional pages... search done copying images... [100%] assets/capi-ck8s.svg dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 7 warnings. The HTML pages are in ../../_readthedocs/html. [rtd-command-info] start-time: 2024-10-18T14:50:50.247075Z, end-time: 2024-10-18T14:55:15.979547Z, duration: 265, exit-code: 2 python -m sphinx -T -b latex -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/pdf Running Sphinx v8.1.3 loading translations [en]... done matplotlib is not installed, social cards will not be generated making output directory... done loading pickled environment... The configuration has changed (7 options: 'html_context', 'html_css_files', 'html_js_files', 'html_static_path', 'notfound_template', ...) done myst v4.0.0: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions={'deflist', 'substitution', 'linkify'}, 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={product: ..., version: ..., channel: ..., multi_line_example: ...}, 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) building [mo]: targets for 0 po files that are out of date writing output... building [latex]: all documents updating environment: 0 added, 0 changed, 0 removed reading sources... looking for now-outdated files... none found preparing documents... done copying assets... copying TeX support files... Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/_readthedocs/pdf/make.bat Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/_readthedocs/pdf/latexmkrc Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/_readthedocs/pdf/latexmkjarc Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/checkouts/latest/_readthedocs/pdf/Makefile done copying additional files... ./.sphinx/fonts/Ubuntu-B.ttf ./.sphinx/fonts/Ubuntu-R.ttf ./.sphinx/fonts/Ubuntu-RI.ttf ./.sphinx/fonts/UbuntuMono-R.ttf ./.sphinx/fonts/UbuntuMono-RI.ttf ./.sphinx/fonts/UbuntuMono-B.ttf ./.sphinx/images/Canonical-logo-4x.png ./.sphinx/images/front-page-light.pdf ./.sphinx/images/normal-page-footer.pdfdone copying assets: done processing canonicalkubernetes.tex... index snap/index snap/tutorial/index snap/tutorial/getting-started snap/tutorial/kubectl snap/tutorial/add-remove-nodes snap/howto/index snap/howto/install/index snap/howto/install/snap snap/howto/install/multipass snap/howto/install/lxd snap/howto/install/offline snap/howto/networking/index snap/howto/networking/default-dns snap/howto/networking/default-network snap/howto/networking/default-ingress snap/howto/networking/default-loadbalancer snap/howto/networking/dualstack snap/howto/storage/index snap/howto/storage/storage snap/howto/storage/ceph snap/howto/external-datastore snap/howto/proxy snap/howto/backup-restore snap/howto/refresh-certs snap/howto/restore-quorum snap/howto/two-node-ha snap/howto/epa snap/howto/cis-hardening snap/howto/contribute snap/howto/support snap/explanation/index snap/explanation/about snap/explanation/certificates snap/explanation/channels snap/explanation/clustering snap/explanation/ingress snap/explanation/epa snap/explanation/security snap/reference/index snap/reference/releases snap/reference/commands snap/reference/annotations snap/reference/certificates snap/reference/bootstrap-config-reference snap/reference/control-plane-join-config-reference snap/reference/worker-join-config-reference snap/reference/proxy snap/reference/troubleshooting snap/reference/architecture snap/reference/community snap/reference/roadmap charm/index charm/tutorial/index charm/tutorial/getting-started charm/howto/index charm/howto/charm charm/howto/install-lxd charm/howto/etcd charm/howto/proxy charm/howto/cos-lite charm/howto/contribute charm/howto/custom-registry charm/explanation/index charm/explanation/about charm/explanation/channels charm/explanation/security charm/reference/index charm/reference/releases charm/reference/charms charm/reference/proxy charm/reference/architecture charm/reference/community capi/index capi/tutorial/index capi/tutorial/getting-started capi/howto/index capi/howto/external-etcd capi/howto/rollout-upgrades capi/howto/in-place-upgrades capi/howto/upgrade-providers capi/howto/migrate-management capi/howto/custom-ck8s capi/explanation/index capi/explanation/about capi/explanation/security capi/explanation/capi-ck8s capi/reference/index capi/reference/releases capi/reference/annotations capi/reference/community capi/reference/configs resolving references... processing canonicalkubernetes.tex: failed Traceback (most recent call last): File "/home/docs/.asdf/installs/python/3.12.3/lib/python3.12/xml/etree/ElementTree.py", line 1706, in feed self.parser.Parse(data, False) xml.parsers.expat.ExpatError: not well-formed (invalid token): line 1, column 1 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinx/cmd/build.py", line 514, in build_main app.build(args.force_all, args.filenames) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinx/application.py", line 381, in build self.builder.build_update() File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 355, in build_update self.build(['__all__'], to_build) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 437, in build self.write(docnames, list(updated_docnames), method) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 711, in write self.write_documents(docnames) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinx/builders/latex/__init__.py", line 335, in write_documents doctree = self.assemble_doctree( ^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinx/builders/latex/__init__.py", line 408, in assemble_doctree self.env.resolve_references(largetree, indexfile, self) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinx/environment/__init__.py", line 717, in resolve_references self.apply_post_transforms(doctree, fromdocname) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinx/environment/__init__.py", line 729, in apply_post_transforms transformer.apply_transforms() File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinx/transforms/__init__.py", line 94, in apply_transforms super().apply_transforms() # type: ignore[misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/docutils/transforms/__init__.py", line 182, in apply_transforms transform.apply(**kwargs) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinx/transforms/post_transforms/images.py", line 36, in apply self.handle(node) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinx/transforms/post_transforms/images.py", line 271, in handle if self.convert(abs_srcpath, destpath): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/sphinxcontrib/cairosvgconverter.py", line 54, in convert cairosvg.svg2pdf(file_obj=open(_from, 'rb'), write_to=_to) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/cairosvg/__init__.py", line 67, in svg2pdf return surface.PDFSurface.convert( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/cairosvg/surface.py", line 129, in convert tree = Tree( ^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/cairosvg/parser.py", line 390, in __init__ tree = ElementTree.fromstring( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-k8s-snap/envs/latest/lib/python3.12/site-packages/defusedxml/common.py", line 126, in fromstring parser.feed(text) File "/home/docs/.asdf/installs/python/3.12.3/lib/python3.12/xml/etree/ElementTree.py", line 1708, in feed self._raiseerror(v) File "/home/docs/.asdf/installs/python/3.12.3/lib/python3.12/xml/etree/ElementTree.py", line 1615, in _raiseerror raise err xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 1 Exception occurred: File "/home/docs/.asdf/installs/python/3.12.3/lib/python3.12/xml/etree/ElementTree.py", line 1615, in _raiseerror raise err xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 1 The full traceback has been saved in /tmp/sphinx-err-kt0o69rd.log, if you want to report the issue to the developers. Please also report this if it was a user error, so that a better error message can be provided next time. A bug report can be filed in the tracker at . Thanks!