Read the Docs build information Build id: 4010563 Project: canonical-microovn Version: 335 Commit: 3acd15cdb5f43d7a8974ad5f46cde9bedb79b83d Date: 2026-05-13T10:07:42.161078Z State: finished Success: True [rtd-command-info] start-time: 2026-05-13T10:07:42.997246Z, end-time: 2026-05-13T10:07:43.486856Z, duration: 0, exit-code: 0 git clone --depth 1 https://github.com/canonical/microovn . Cloning into '.'... [rtd-command-info] start-time: 2026-05-13T10:07:43.567320Z, end-time: 2026-05-13T10:07:44.058075Z, duration: 0, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/335/head:external-335 From https://github.com/canonical/microovn * [new ref] refs/pull/335/head -> external-335 [rtd-command-info] start-time: 2026-05-13T10:07:44.712654Z, end-time: 2026-05-13T10:07:44.765071Z, duration: 0, exit-code: 0 git checkout --force 3acd15cdb5f43d7a8974ad5f46cde9bedb79b83d Note: switching to '3acd15cdb5f43d7a8974ad5f46cde9bedb79b83d'. 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 3acd15c Automated release script. [rtd-command-info] start-time: 2026-05-13T10:07:44.850583Z, end-time: 2026-05-13T10:07:44.889274Z, duration: 0, exit-code: 0 cat docs/.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" # 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/.sphinx/requirements.txt [rtd-command-info] start-time: 2026-05-13T10:07:49.795606Z, end-time: 2026-05-13T10:07:49.852032Z, duration: 0, exit-code: 0 asdf global python 3.11.14 [rtd-command-info] start-time: 2026-05-13T10:07:50.251204Z, end-time: 2026-05-13T10:07:50.737529Z, duration: 0, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.11.14.final.0-64 in 263ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335, 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-05-13T10:07:50.941447Z, end-time: 2026-05-13T10:07:53.930530Z, duration: 2, 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-microovn/envs/335/lib/python3.11/site-packages (23.1) Collecting pip Downloading pip-26.1.1-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 22.3 MB/s eta 0:00:00 Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/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 38.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-26.1.1 setuptools-82.0.1 [rtd-command-info] start-time: 2026-05-13T10:07:54.057907Z, end-time: 2026-05-13T10:07:57.984363Z, 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.34.0-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.2-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.15-py3-none-any.whl.metadata (7.7 kB) Collecting urllib3<3,>=1.26 (from requests>=2.30.0->sphinx) Downloading urllib3-2.7.0-py3-none-any.whl.metadata (6.9 kB) Collecting certifi>=2023.5.7 (from requests>=2.30.0->sphinx) Downloading certifi-2026.4.22-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 163.6 MB/s 0:00:00 Downloading docutils-0.22.4-py3-none-any.whl (633 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 633.2/633.2 kB 887.8 MB/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 504.3 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.2-py3-none-any.whl (100 kB) Downloading pygments-2.20.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 934.7 MB/s 0:00:00 Downloading requests-2.34.0-py3-none-any.whl (73 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.15-py3-none-any.whl (72 kB) Downloading urllib3-2.7.0-py3-none-any.whl (131 kB) Downloading certifi-2026.4.22-py3-none-any.whl (135 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.4.22 charset_normalizer-3.4.7 docutils-0.22.4 idna-3.15 imagesize-2.0.0 packaging-26.2 requests-2.34.0 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.7.0 [rtd-command-info] start-time: 2026-05-13T10:07:58.062248Z, end-time: 2026-05-13T10:08:01.860596Z, duration: 3, exit-code: 0 python -m pip install --exists-action=w --no-cache-dir -r docs/.sphinx/requirements.txt Collecting furo (from -r docs/.sphinx/requirements.txt (line 1)) Downloading furo-2025.12.19-py3-none-any.whl.metadata (4.9 kB) Collecting linkify-it-py (from -r docs/.sphinx/requirements.txt (line 2)) Downloading linkify_it_py-2.1.0-py3-none-any.whl.metadata (8.5 kB) Collecting lxd-sphinx-extensions (from -r docs/.sphinx/requirements.txt (line 3)) Downloading lxd_sphinx_extensions-0.0.16-py3-none-any.whl.metadata (544 bytes) Collecting myst-parser (from -r docs/.sphinx/requirements.txt (line 4)) Downloading myst_parser-5.1.0-py3-none-any.whl.metadata (5.6 kB) Collecting pyspelling (from -r docs/.sphinx/requirements.txt (line 5)) Downloading pyspelling-2.12.1-py3-none-any.whl.metadata (3.7 kB) Requirement already satisfied: sphinx in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from -r docs/.sphinx/requirements.txt (line 6)) (9.0.4) Collecting sphinx-autobuild (from -r docs/.sphinx/requirements.txt (line 7)) Downloading sphinx_autobuild-2025.8.25-py3-none-any.whl.metadata (8.5 kB) Collecting sphinx-copybutton (from -r docs/.sphinx/requirements.txt (line 8)) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl.metadata (3.2 kB) Collecting sphinx-design (from -r docs/.sphinx/requirements.txt (line 9)) Downloading sphinx_design-0.7.0-py3-none-any.whl.metadata (5.5 kB) Collecting sphinx-notfound-page (from -r docs/.sphinx/requirements.txt (line 10)) Downloading sphinx_notfound_page-1.1.0-py3-none-any.whl.metadata (2.9 kB) Collecting sphinx-reredirects (from -r docs/.sphinx/requirements.txt (line 11)) Downloading sphinx_reredirects-1.1.0-py3-none-any.whl.metadata (4.7 kB) Collecting sphinx-tabs (from -r docs/.sphinx/requirements.txt (line 12)) Downloading sphinx_tabs-3.5.0-py3-none-any.whl.metadata (6.6 kB) Collecting sphinxcontrib-jquery (from -r docs/.sphinx/requirements.txt (line 13)) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl.metadata (2.6 kB) Collecting sphinxext-opengraph (from -r docs/.sphinx/requirements.txt (line 14)) Downloading sphinxext_opengraph-0.13.0-py3-none-any.whl.metadata (2.7 kB) Collecting beautifulsoup4 (from furo->-r docs/.sphinx/requirements.txt (line 1)) Downloading beautifulsoup4-4.14.3-py3-none-any.whl.metadata (3.8 kB) Collecting sphinx-basic-ng>=1.0.0.beta2 (from furo->-r docs/.sphinx/requirements.txt (line 1)) 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-microovn/envs/335/lib/python3.11/site-packages (from furo->-r docs/.sphinx/requirements.txt (line 1)) (2.20.0) Collecting accessible-pygments>=0.0.5 (from furo->-r docs/.sphinx/requirements.txt (line 1)) Downloading accessible_pygments-0.0.5-py3-none-any.whl.metadata (10 kB) Requirement already satisfied: sphinxcontrib-applehelp>=1.0.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (2.0.0) Requirement already satisfied: sphinxcontrib-devhelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (2.0.0) Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (2.1.0) Requirement already satisfied: sphinxcontrib-jsmath>=1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (1.0.1) Requirement already satisfied: sphinxcontrib-qthelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (2.0.0) Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (2.0.0) Requirement already satisfied: Jinja2>=3.1 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (3.1.6) Requirement already satisfied: docutils<0.23,>=0.20 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (0.22.4) Requirement already satisfied: snowballstemmer>=2.2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (3.0.1) Requirement already satisfied: babel>=2.13 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (2.18.0) Requirement already satisfied: alabaster>=0.7.14 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (1.0.0) Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (2.0.0) Requirement already satisfied: requests>=2.30.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (2.34.0) Requirement already satisfied: roman-numerals>=1.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (4.1.0) Requirement already satisfied: packaging>=23.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from sphinx->-r docs/.sphinx/requirements.txt (line 6)) (26.2) Collecting uc-micro-py (from linkify-it-py->-r docs/.sphinx/requirements.txt (line 2)) Downloading uc_micro_py-2.0.0-py3-none-any.whl.metadata (2.2 kB) Collecting canonical-sphinx-extensions (from lxd-sphinx-extensions->-r docs/.sphinx/requirements.txt (line 3)) Downloading canonical_sphinx_extensions-0.0.34-py3-none-any.whl.metadata (16 kB) Collecting markdown-it-py~=4.2 (from myst-parser->-r docs/.sphinx/requirements.txt (line 4)) Downloading markdown_it_py-4.2.0-py3-none-any.whl.metadata (7.4 kB) Collecting mdit-py-plugins>=0.6.1,~=0.6 (from myst-parser->-r docs/.sphinx/requirements.txt (line 4)) Downloading mdit_py_plugins-0.6.1-py3-none-any.whl.metadata (2.9 kB) Collecting pyyaml (from myst-parser->-r docs/.sphinx/requirements.txt (line 4)) 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 mdurl~=0.1 (from markdown-it-py~=4.2->myst-parser->-r docs/.sphinx/requirements.txt (line 4)) Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB) Collecting html5lib (from pyspelling->-r docs/.sphinx/requirements.txt (line 5)) Downloading html5lib-1.1-py2.py3-none-any.whl.metadata (16 kB) Collecting lxml (from pyspelling->-r docs/.sphinx/requirements.txt (line 5)) Downloading lxml-6.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.metadata (4.0 kB) Collecting markdown (from pyspelling->-r docs/.sphinx/requirements.txt (line 5)) Downloading markdown-3.10.2-py3-none-any.whl.metadata (5.1 kB) Collecting soupsieve>=1.8 (from pyspelling->-r docs/.sphinx/requirements.txt (line 5)) Downloading soupsieve-2.8.3-py3-none-any.whl.metadata (4.6 kB) Collecting wcmatch>=8.5 (from pyspelling->-r docs/.sphinx/requirements.txt (line 5)) Downloading wcmatch-10.1-py3-none-any.whl.metadata (5.1 kB) Collecting colorama>=0.4.6 (from sphinx-autobuild->-r docs/.sphinx/requirements.txt (line 7)) Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB) Collecting starlette>=0.35 (from sphinx-autobuild->-r docs/.sphinx/requirements.txt (line 7)) Downloading starlette-1.0.0-py3-none-any.whl.metadata (6.3 kB) Collecting uvicorn>=0.25 (from sphinx-autobuild->-r docs/.sphinx/requirements.txt (line 7)) Downloading uvicorn-0.46.0-py3-none-any.whl.metadata (6.7 kB) Collecting watchfiles>=0.20 (from sphinx-autobuild->-r docs/.sphinx/requirements.txt (line 7)) 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/.sphinx/requirements.txt (line 7)) Downloading websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (6.8 kB) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from Jinja2>=3.1->sphinx->-r docs/.sphinx/requirements.txt (line 6)) (3.0.3) Requirement already satisfied: charset_normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from requests>=2.30.0->sphinx->-r docs/.sphinx/requirements.txt (line 6)) (3.4.7) Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from requests>=2.30.0->sphinx->-r docs/.sphinx/requirements.txt (line 6)) (3.15) Requirement already satisfied: urllib3<3,>=1.26 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from requests>=2.30.0->sphinx->-r docs/.sphinx/requirements.txt (line 6)) (2.7.0) Requirement already satisfied: certifi>=2023.5.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/envs/335/lib/python3.11/site-packages (from requests>=2.30.0->sphinx->-r docs/.sphinx/requirements.txt (line 6)) (2026.4.22) Collecting anyio<5,>=3.6.2 (from starlette>=0.35->sphinx-autobuild->-r docs/.sphinx/requirements.txt (line 7)) 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/.sphinx/requirements.txt (line 7)) 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/.sphinx/requirements.txt (line 7)) Downloading click-8.3.3-py3-none-any.whl.metadata (2.6 kB) Collecting h11>=0.8 (from uvicorn>=0.25->sphinx-autobuild->-r docs/.sphinx/requirements.txt (line 7)) Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) Collecting bracex>=2.1.1 (from wcmatch>=8.5->pyspelling->-r docs/.sphinx/requirements.txt (line 5)) Downloading bracex-2.6-py3-none-any.whl.metadata (3.6 kB) Collecting gitpython (from canonical-sphinx-extensions->lxd-sphinx-extensions->-r docs/.sphinx/requirements.txt (line 3)) Downloading gitpython-3.1.50-py3-none-any.whl.metadata (14 kB) Collecting gitdb<5,>=4.0.1 (from gitpython->canonical-sphinx-extensions->lxd-sphinx-extensions->-r docs/.sphinx/requirements.txt (line 3)) 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->canonical-sphinx-extensions->lxd-sphinx-extensions->-r docs/.sphinx/requirements.txt (line 3)) Downloading smmap-5.0.3-py3-none-any.whl.metadata (4.6 kB) Collecting six>=1.9 (from html5lib->pyspelling->-r docs/.sphinx/requirements.txt (line 5)) Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) Collecting webencodings (from html5lib->pyspelling->-r docs/.sphinx/requirements.txt (line 5)) Downloading webencodings-0.5.1-py2.py3-none-any.whl.metadata (2.1 kB) Downloading furo-2025.12.19-py3-none-any.whl (339 kB) Downloading linkify_it_py-2.1.0-py3-none-any.whl (19 kB) Downloading lxd_sphinx_extensions-0.0.16-py3-none-any.whl (1.3 kB) Downloading myst_parser-5.1.0-py3-none-any.whl (85 kB) Downloading markdown_it_py-4.2.0-py3-none-any.whl (91 kB) Downloading mdit_py_plugins-0.6.1-py3-none-any.whl (66 kB) Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB) Downloading pyspelling-2.12.1-py3-none-any.whl (45 kB) Downloading sphinx_autobuild-2025.8.25-py3-none-any.whl (12 kB) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl (13 kB) Downloading sphinx_design-0.7.0-py3-none-any.whl (2.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 135.8 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 925.2 MB/s 0:00:00 Downloading accessible_pygments-0.0.5-py3-none-any.whl (1.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 880.9 MB/s 0:00:00 Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB) Downloading soupsieve-2.8.3-py3-none-any.whl (37 kB) Downloading sphinx_basic_ng-1.0.0b2-py3-none-any.whl (22 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.46.0-py3-none-any.whl (70 kB) Downloading click-8.3.3-py3-none-any.whl (110 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 wcmatch-10.1-py3-none-any.whl (39 kB) Downloading bracex-2.6-py3-none-any.whl (11 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 canonical_sphinx_extensions-0.0.34-py3-none-any.whl (67 kB) Downloading gitpython-3.1.50-py3-none-any.whl (212 kB) Downloading gitdb-4.0.12-py3-none-any.whl (62 kB) Downloading smmap-5.0.3-py3-none-any.whl (24 kB) Downloading html5lib-1.1-py2.py3-none-any.whl (112 kB) Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) Downloading lxml-6.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (5.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 183.0 MB/s 0:00:00 Downloading markdown-3.10.2-py3-none-any.whl (108 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 906.5 MB/s 0:00:00 Downloading uc_micro_py-2.0.0-py3-none-any.whl (6.4 kB) Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB) Installing collected packages: webencodings, websockets, uc-micro-py, typing-extensions, soupsieve, smmap, six, pyyaml, mdurl, markdown, lxml, h11, colorama, click, bracex, accessible-pygments, wcmatch, uvicorn, markdown-it-py, linkify-it-py, html5lib, gitdb, beautifulsoup4, anyio, watchfiles, starlette, sphinxext-opengraph, sphinxcontrib-jquery, sphinx-tabs, sphinx-reredirects, sphinx-notfound-page, sphinx-design, sphinx-copybutton, sphinx-basic-ng, pyspelling, mdit-py-plugins, gitpython, sphinx-autobuild, myst-parser, furo, canonical-sphinx-extensions, lxd-sphinx-extensions Successfully installed accessible-pygments-0.0.5 anyio-4.13.0 beautifulsoup4-4.14.3 bracex-2.6 canonical-sphinx-extensions-0.0.34 click-8.3.3 colorama-0.4.6 furo-2025.12.19 gitdb-4.0.12 gitpython-3.1.50 h11-0.16.0 html5lib-1.1 linkify-it-py-2.1.0 lxd-sphinx-extensions-0.0.16 lxml-6.1.0 markdown-3.10.2 markdown-it-py-4.2.0 mdit-py-plugins-0.6.1 mdurl-0.1.2 myst-parser-5.1.0 pyspelling-2.12.1 pyyaml-6.0.3 six-1.17.0 smmap-5.0.3 soupsieve-2.8.3 sphinx-autobuild-2025.8.25 sphinx-basic-ng-1.0.0b2 sphinx-copybutton-0.5.2 sphinx-design-0.7.0 sphinx-notfound-page-1.1.0 sphinx-reredirects-1.1.0 sphinx-tabs-3.5.0 sphinxcontrib-jquery-4.1 sphinxext-opengraph-0.13.0 starlette-1.0.0 typing-extensions-4.15.0 uc-micro-py-2.0.0 uvicorn-0.46.0 watchfiles-1.1.1 wcmatch-10.1 webencodings-0.5.1 websockets-16.0 [rtd-command-info] start-time: 2026-05-13T10:08:02.027069Z, end-time: 2026-05-13T10:08:02.069549Z, duration: 0, exit-code: 0 cat docs/conf.py import sys sys.path.append('./') from custom_conf 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_tabs.tabs', 'sphinx_reredirects', 'youtube-links', 'related-links', 'custom-rst-roles', 'terminal-output', 'sphinx_copybutton', 'sphinxext.opengraph', 'myst_parser', 'sphinxcontrib.jquery', 'notfound.extension' ] extensions.extend(custom_extensions) ### Configuration for extensions # Additional MyST syntax myst_enable_extensions = [ 'substitution', 'deflist', 'linkify' ] myst_enable_extensions.extend(custom_myst_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 default for notfound_urls_prefix usually works, but not for # documentation on documentation.ubuntu.com if slug: notfound_urls_prefix = '/' + slug + '/en/latest/' notfound_context = { 'title': 'Page not found', 'body': '

Page not found

\n\n

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

\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', ] 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) # this cisa.gov pages are so heavily refrenced the github CI for linkchecks is # being seen as a DDos, this is causing our linkcheck tests to fail so we have # to ignore it. linkcheck_ignore = [r'.*cisa\.gov.*'] linkcheck_timeout = 120 linkcheck_retries = 3 # Tags cannot be added directly in custom_conf.py, so add them here for tag in custom_tags: tags.add(tag) ############################################################ ### 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'] # 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' ] html_css_files.extend(custom_html_css_files) html_js_files = ['header-nav.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) [rtd-command-info] start-time: 2026-05-13T10:08:02.198713Z, end-time: 2026-05-13T10:08:04.123258Z, 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 v9.0.4 loading translations [en]... done matplotlib is not installed, social cards will not be generated making output directory... done myst v5.1.0: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions={'substitution', 'deflist', '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={}, 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, strikethrough_single_tilde=False, colon_fence_exact_match=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 32 source files that are out of date updating environment: [new config] 32 added, 0 changed, 0 removed reading sources... [ 3%] contributors/code reading sources... [ 6%] contributors/documentation reading sources... [ 9%] contributors/index reading sources... [ 12%] explanation/bgp-redirect reading sources... [ 16%] explanation/index reading sources... [ 19%] explanation/tracks-and-upgrades reading sources... [ 22%] help-woke reading sources... [ 25%] how-to/bgp reading sources... [ 28%] how-to/datapath-only-mode reading sources... [ 31%] how-to/downscaling reading sources... [ 34%] how-to/index reading sources... [ 38%] how-to/logs reading sources... [ 41%] how-to/major-upgrades reading sources... [ 44%] how-to/ovn-underlay reading sources... [ 47%] how-to/service-control reading sources... [ 50%] how-to/tls reading sources... [ 53%] index reading sources... [ 56%] readme reading sources... [ 59%] reference/aliasing reading sources... [ 62%] reference/config/index reading sources... [ 66%] reference/config/ovn-central-ips reading sources... [ 69%] reference/cryptography reading sources... [ 72%] reference/dpu reading sources... [ 75%] reference/hardening reading sources... [ 78%] reference/index reading sources... [ 81%] reference/release-process reading sources... [ 84%] reference/security reading sources... [ 88%] reference/services reading sources... [ 91%] setup reading sources... [ 94%] tutorial/index reading sources... [ 97%] tutorial/multi-node reading sources... [100%] tutorial/single-node 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-microovn/checkouts/335/_readthedocs/html/_static/language_data.js Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/checkouts/335/_readthedocs/html/_static/basic.css Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/checkouts/335/_readthedocs/html/_static/documentation_options.js Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-microovn/checkouts/335/_readthedocs/html/_static/copybutton.js copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 3%] contributors/code writing output... [ 6%] contributors/documentation writing output... [ 9%] contributors/index writing output... [ 12%] explanation/bgp-redirect writing output... [ 16%] explanation/index writing output... [ 19%] explanation/tracks-and-upgrades writing output... [ 22%] help-woke writing output... [ 25%] how-to/bgp writing output... [ 28%] how-to/datapath-only-mode writing output... [ 31%] how-to/downscaling writing output... [ 34%] how-to/index writing output... [ 38%] how-to/logs writing output... [ 41%] how-to/major-upgrades writing output... [ 44%] how-to/ovn-underlay writing output... [ 47%] how-to/service-control writing output... [ 50%] how-to/tls writing output... [ 53%] index writing output... [ 56%] readme writing output... [ 59%] reference/aliasing writing output... [ 62%] reference/config/index writing output... [ 66%] reference/config/ovn-central-ips writing output... [ 69%] reference/cryptography writing output... [ 72%] reference/dpu writing output... [ 75%] reference/hardening writing output... [ 78%] reference/index writing output... [ 81%] reference/release-process writing output... [ 84%] reference/security writing output... [ 88%] reference/services writing output... [ 91%] setup writing output... [ 94%] tutorial/index writing output... [ 97%] tutorial/multi-node writing output... [100%] tutorial/single-node generating indices... genindex done writing additional pages... search done copying images... [ 50%] static/bgp/bgp-multilink-light.svg copying images... [100%] static/bgp/bgp-multilink-dark.svg dumping search index in English (code: en)... done dumping object inventory... done build succeeded. The HTML pages are in ../_readthedocs/html.