Read the Docs build information Build id: 3963210 Project: canonical-checkbox Version: 2424 Commit: 730fe3eb92ab1c2cd632bbfc547baaf305706e7a Date: 2026-04-27T02:12:39.787306Z State: finished Success: True [rtd-command-info] start-time: 2026-04-27T02:12:40.652176Z, end-time: 2026-04-27T02:12:41.921824Z, duration: 1, exit-code: 0 git clone --depth 1 https://github.com/canonical/checkbox.git . Cloning into '.'... [rtd-command-info] start-time: 2026-04-27T02:12:42.013491Z, end-time: 2026-04-27T02:12:43.096116Z, duration: 1, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/2424/head:external-2424 From https://github.com/canonical/checkbox * [new ref] refs/pull/2424/head -> external-2424 * [new tag] v7.1.0 -> v7.1.0 [rtd-command-info] start-time: 2026-04-27T02:12:43.773533Z, end-time: 2026-04-27T02:12:44.084101Z, duration: 0, exit-code: 0 git checkout --force 730fe3eb92ab1c2cd632bbfc547baaf305706e7a Note: switching to '730fe3eb92ab1c2cd632bbfc547baaf305706e7a'. 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 730fe3e Remove redundant overrides from top-level 26.04 plan [rtd-command-info] start-time: 2026-04-27T02:12:44.169715Z, end-time: 2026-04-27T02:12:44.209729Z, duration: 0, exit-code: 0 cat .readthedocs.yaml # .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 # Set the version of Python and other tools you might need build: os: ubuntu-22.04 tools: python: "3.11" jobs: post_checkout: - git fetch --unshallow || true # Cancel building pull requests when there aren't changed in the docs directory. # If there are no changes (git diff exits with 0) we force the command to return with 183. # This is a special exit code on Read the Docs that will cancel the build immediately. # https://docs.readthedocs.io/en/stable/build-customization.html#cancel-build-based-on-a-condition - | if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- 'docs/' '.readthedocs.yaml'; then exit 183; fi post_create_environment: - pip install --upgrade pip - pip install checkbox-ng/ # Build documentation in the docs/ directory with Sphinx sphinx: builder: dirhtml configuration: docs/conf.py fail_on_warning: true # Fail on all warnings to avoid broken references # Optionally declare the Python requirements required to build your docs python: install: - requirements: docs/.sphinx/requirements.txt [rtd-command-info] start-time: 2026-04-27T02:12:44.296728Z, end-time: 2026-04-27T02:12:48.321919Z, duration: 4, exit-code: 0 git fetch --unshallow || true From https://github.com/canonical/checkbox * [new tag] checkbox-core-snap-v1.30 -> checkbox-core-snap-v1.30 * [new tag] checkbox-core-snap-v1.31 -> checkbox-core-snap-v1.31 * [new tag] checkbox-core-snap-v2.1 -> checkbox-core-snap-v2.1 * [new tag] checkbox-core-snap-v2.2 -> checkbox-core-snap-v2.2 * [new tag] checkbox-core-snap-v2.3 -> checkbox-core-snap-v2.3 * [new tag] checkbox-ng-v1.19.0 -> checkbox-ng-v1.19.0 * [new tag] checkbox-ng-v2.0.0 -> checkbox-ng-v2.0.0 * [new tag] checkbox-ng-v2.0.0rc1 -> checkbox-ng-v2.0.0rc1 * [new tag] checkbox-ng-v2.1.0 -> checkbox-ng-v2.1.0 * [new tag] checkbox-ng-v2.1.0rc1 -> checkbox-ng-v2.1.0rc1 * [new tag] checkbox-ng-v2.2.0 -> checkbox-ng-v2.2.0 * [new tag] checkbox-ng-v2.2.0rc1 -> checkbox-ng-v2.2.0rc1 * [new tag] checkbox-snap-v2.2 -> checkbox-snap-v2.2 * [new tag] checkbox-snap-v2.3 -> checkbox-snap-v2.3 * [new tag] checkbox-snap-v2.4 -> checkbox-snap-v2.4 * [new tag] checkbox-support-v0.55.0 -> checkbox-support-v0.55.0 * [new tag] checkbox-support-v2.0.0 -> checkbox-support-v2.0.0 * [new tag] checkbox-support-v2.0.0rc1 -> checkbox-support-v2.0.0rc1 * [new tag] checkbox-support-v2.1.0 -> checkbox-support-v2.1.0 * [new tag] checkbox-support-v2.1.0rc1 -> checkbox-support-v2.1.0rc1 * [new tag] checkbox-support-v2.2.0 -> checkbox-support-v2.2.0 * [new tag] checkbox-support-v2.2.0rc1 -> checkbox-support-v2.2.0rc1 * [new tag] provider-base-v0.65.0 -> provider-base-v0.65.0 * [new tag] provider-base-v2.0.0 -> provider-base-v2.0.0 * [new tag] provider-base-v2.0.0rc1 -> provider-base-v2.0.0rc1 * [new tag] provider-base-v2.0.0rc2 -> provider-base-v2.0.0rc2 * [new tag] provider-base-v2.0.0rc3 -> provider-base-v2.0.0rc3 * [new tag] provider-base-v2.1.0 -> provider-base-v2.1.0 * [new tag] provider-base-v2.1.0rc1 -> provider-base-v2.1.0rc1 * [new tag] provider-base-v2.2.0 -> provider-base-v2.2.0 * [new tag] provider-base-v2.2.0rc1 -> provider-base-v2.2.0rc1 * [new tag] provider-base-v2.3.0 -> provider-base-v2.3.0 * [new tag] provider-base-v2.3.0rc1 -> provider-base-v2.3.0rc1 * [new tag] provider-certification-client-v0.50.0 -> provider-certification-client-v0.50.0 * [new tag] provider-certification-client-v2.0.0 -> provider-certification-client-v2.0.0 * [new tag] provider-certification-client-v2.0.0rc1 -> provider-certification-client-v2.0.0rc1 * [new tag] provider-certification-client-v2.1.0 -> provider-certification-client-v2.1.0 * [new tag] provider-certification-client-v2.1.0rc1 -> provider-certification-client-v2.1.0rc1 * [new tag] provider-certification-client-v2.2.0 -> provider-certification-client-v2.2.0 * [new tag] provider-certification-client-v2.2.0rc1 -> provider-certification-client-v2.2.0rc1 * [new tag] provider-certification-client-v2.3.0 -> provider-certification-client-v2.3.0 * [new tag] provider-certification-client-v2.3.0rc1 -> provider-certification-client-v2.3.0rc1 * [new tag] provider-certification-server-v0.58.0 -> provider-certification-server-v0.58.0 * [new tag] provider-certification-server-v2.0.0 -> provider-certification-server-v2.0.0 * [new tag] provider-certification-server-v2.0.0rc1 -> provider-certification-server-v2.0.0rc1 * [new tag] provider-certification-server-v2.1.0 -> provider-certification-server-v2.1.0 * [new tag] provider-certification-server-v2.1.0rc1 -> provider-certification-server-v2.1.0rc1 * [new tag] provider-gpgpu-v0.3.0 -> provider-gpgpu-v0.3.0 * [new tag] provider-gpgpu-v2.0.0 -> provider-gpgpu-v2.0.0 * [new tag] provider-gpgpu-v2.0.0rc1 -> provider-gpgpu-v2.0.0rc1 * [new tag] provider-gpgpu-v2.1.0 -> provider-gpgpu-v2.1.0 * [new tag] provider-gpgpu-v2.1.0rc1 -> provider-gpgpu-v2.1.0rc1 * [new tag] provider-ipdt-v2.0.0 -> provider-ipdt-v2.0.0 * [new tag] provider-ipdt-v2.0.0rc1 -> provider-ipdt-v2.0.0rc1 * [new tag] provider-ipdt-v2.1.0 -> provider-ipdt-v2.1.0 * [new tag] provider-ipdt-v2.1.0rc1 -> provider-ipdt-v2.1.0rc1 * [new tag] provider-phoronix-v2.0.0 -> provider-phoronix-v2.0.0 * [new tag] provider-phoronix-v2.0.0rc1 -> provider-phoronix-v2.0.0rc1 * [new tag] provider-phoronix-v2.1.0 -> provider-phoronix-v2.1.0 * [new tag] provider-phoronix-v2.1.0rc1 -> provider-phoronix-v2.1.0rc1 * [new tag] provider-resource-v0.51.0 -> provider-resource-v0.51.0 * [new tag] provider-resource-v2.0.0 -> provider-resource-v2.0.0 * [new tag] provider-resource-v2.0.0rc1 -> provider-resource-v2.0.0rc1 * [new tag] provider-resource-v2.1.0 -> provider-resource-v2.1.0 * [new tag] provider-resource-v2.1.0rc1 -> provider-resource-v2.1.0rc1 * [new tag] provider-sru-v1.23.0 -> provider-sru-v1.23.0 * [new tag] provider-sru-v2.0.0 -> provider-sru-v2.0.0 * [new tag] provider-sru-v2.0.0rc1 -> provider-sru-v2.0.0rc1 * [new tag] provider-sru-v2.1.0 -> provider-sru-v2.1.0 * [new tag] provider-sru-v2.1.0rc1 -> provider-sru-v2.1.0rc1 * [new tag] provider-tpm2-v1.19.0 -> provider-tpm2-v1.19.0 * [new tag] provider-tpm2-v2.0.0 -> provider-tpm2-v2.0.0 * [new tag] provider-tpm2-v2.0.0rc1 -> provider-tpm2-v2.0.0rc1 * [new tag] provider-tpm2-v2.1.0 -> provider-tpm2-v2.1.0 * [new tag] provider-tpm2-v2.1.0rc1 -> provider-tpm2-v2.1.0rc1 * [new tag] v2.10.0 -> v2.10.0 * [new tag] v2.10.1 -> v2.10.1 * [new tag] v2.3 -> v2.3 * [new tag] v2.4 -> v2.4 * [new tag] v2.5 -> v2.5 * [new tag] v2.6 -> v2.6 * [new tag] v2.7 -> v2.7 * [new tag] v2.8 -> v2.8 * [new tag] v2.9.0 -> v2.9.0 * [new tag] v2.9.1 -> v2.9.1 * [new tag] v3.0.0 -> v3.0.0 * [new tag] v3.1.0 -> v3.1.0 * [new tag] v3.2.0 -> v3.2.0 * [new tag] v3.3.0 -> v3.3.0 * [new tag] v4.0.0 -> v4.0.0 * [new tag] v4.1.0 -> v4.1.0 * [new tag] v4.2.0 -> v4.2.0 * [new tag] v4.3.0 -> v4.3.0 * [new tag] v4.4.0 -> v4.4.0 * [new tag] v4.5.0 -> v4.5.0 * [new tag] v4.6.0 -> v4.6.0 * [new tag] v5.0.0 -> v5.0.0 * [new tag] v6.0.0 -> v6.0.0 * [new tag] v7.0.0 -> v7.0.0 [rtd-command-info] start-time: 2026-04-27T02:12:48.416769Z, end-time: 2026-04-27T02:12:48.458471Z, duration: 0, exit-code: 0 if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- 'docs/' '.readthedocs.yaml'; then exit 183; fi [rtd-command-info] start-time: 2026-04-27T02:12:53.671425Z, end-time: 2026-04-27T02:12:53.728173Z, duration: 0, exit-code: 0 asdf global python 3.11.12 [rtd-command-info] start-time: 2026-04-27T02:12:54.130150Z, end-time: 2026-04-27T02:12:54.770789Z, duration: 0, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.11.12.final.0-64 in 389ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/docs/.local/share/virtualenv) added seed packages: pip==23.1, setuptools==67.6.1, wheel==0.40.0 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator [rtd-command-info] start-time: 2026-04-27T02:12:54.860410Z, end-time: 2026-04-27T02:12:59.164938Z, duration: 4, exit-code: 0 pip install --upgrade pip Requirement already satisfied: pip in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (23.1) Collecting pip Downloading pip-26.1-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 12.8 MB/s eta 0:00:00 Installing collected packages: pip Attempting uninstall: pip Found existing installation: pip 23.1 Uninstalling pip-23.1: Successfully uninstalled pip-23.1 Successfully installed pip-26.1 [rtd-command-info] start-time: 2026-04-27T02:12:59.270034Z, end-time: 2026-04-27T02:13:06.893260Z, duration: 7, exit-code: 0 pip install checkbox-ng/ Processing ./checkbox-ng Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting packaging (from checkbox-ng==7.1.1.dev2+g730fe3eb9) Using cached packaging-26.2-py3-none-any.whl.metadata (3.5 kB) Collecting psutil (from checkbox-ng==7.1.1.dev2+g730fe3eb9) Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl.metadata (22 kB) Collecting pyparsing>=2.2.0 (from checkbox-ng==7.1.1.dev2+g730fe3eb9) Downloading pyparsing-3.3.2-py3-none-any.whl.metadata (5.8 kB) Collecting requests>=1.0 (from checkbox-ng==7.1.1.dev2+g730fe3eb9) Downloading requests-2.33.1-py3-none-any.whl.metadata (4.8 kB) Collecting urwid>=1.1.1 (from checkbox-ng==7.1.1.dev2+g730fe3eb9) Downloading urwid-4.0.0-py3-none-any.whl.metadata (11 kB) Collecting Jinja2>=2.7 (from checkbox-ng==7.1.1.dev2+g730fe3eb9) Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB) Collecting xlsxwriter (from checkbox-ng==7.1.1.dev2+g730fe3eb9) Downloading xlsxwriter-3.2.9-py3-none-any.whl.metadata (2.7 kB) Collecting tqdm (from checkbox-ng==7.1.1.dev2+g730fe3eb9) Downloading tqdm-4.67.3-py3-none-any.whl.metadata (57 kB) Collecting pyyaml (from checkbox-ng==7.1.1.dev2+g730fe3eb9) 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 MarkupSafe>=2.0 (from Jinja2>=2.7->checkbox-ng==7.1.1.dev2+g730fe3eb9) 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>=1.0->checkbox-ng==7.1.1.dev2+g730fe3eb9) 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>=1.0->checkbox-ng==7.1.1.dev2+g730fe3eb9) Downloading idna-3.13-py3-none-any.whl.metadata (8.0 kB) Collecting urllib3<3,>=1.26 (from requests>=1.0->checkbox-ng==7.1.1.dev2+g730fe3eb9) Downloading urllib3-2.6.3-py3-none-any.whl.metadata (6.9 kB) Collecting certifi>=2023.5.7 (from requests>=1.0->checkbox-ng==7.1.1.dev2+g730fe3eb9) Downloading certifi-2026.4.22-py3-none-any.whl.metadata (2.5 kB) Collecting wcwidth>=0.4 (from urwid>=1.1.1->checkbox-ng==7.1.1.dev2+g730fe3eb9) Downloading wcwidth-0.6.0-py3-none-any.whl.metadata (30 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 pyparsing-3.3.2-py3-none-any.whl (122 kB) Downloading requests-2.33.1-py3-none-any.whl (64 kB) Downloading charset_normalizer-3.4.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (214 kB) Downloading idna-3.13-py3-none-any.whl (68 kB) Downloading urllib3-2.6.3-py3-none-any.whl (131 kB) Downloading certifi-2026.4.22-py3-none-any.whl (135 kB) Downloading urwid-4.0.0-py3-none-any.whl (293 kB) Downloading wcwidth-0.6.0-py3-none-any.whl (94 kB) Using cached packaging-26.2-py3-none-any.whl (100 kB) Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl (155 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 32.6 MB/s 0:00:00 Downloading tqdm-4.67.3-py3-none-any.whl (78 kB) Downloading xlsxwriter-3.2.9-py3-none-any.whl (175 kB) Building wheels for collected packages: checkbox-ng Building wheel for checkbox-ng (pyproject.toml): started Building wheel for checkbox-ng (pyproject.toml): finished with status 'done' Created wheel for checkbox-ng: filename=checkbox_ng-7.1.1.dev2+g730fe3eb9-py3-none-any.whl size=3999865 sha256=bd5d180a23424e405c69c4cacfd3eb10bb95d7a865f3e6e49a1db98e6a5cc508 Stored in directory: /home/docs/.cache/pip/wheels/11/7d/c3/3e491f1e728d2f5c773f912f1a3140834d891ee239506c9e10 Successfully built checkbox-ng Installing collected packages: xlsxwriter, wcwidth, urllib3, tqdm, pyyaml, pyparsing, psutil, packaging, MarkupSafe, idna, charset_normalizer, certifi, urwid, requests, Jinja2, checkbox-ng Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 certifi-2026.4.22 charset_normalizer-3.4.7 checkbox-ng-7.1.1.dev2+g730fe3eb9 idna-3.13 packaging-26.2 psutil-7.2.2 pyparsing-3.3.2 pyyaml-6.0.3 requests-2.33.1 tqdm-4.67.3 urllib3-2.6.3 urwid-4.0.0 wcwidth-0.6.0 xlsxwriter-3.2.9 [rtd-command-info] start-time: 2026-04-27T02:13:06.976028Z, end-time: 2026-04-27T02:13:08.488133Z, duration: 1, 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-checkbox/envs/2424/lib/python3.11/site-packages (26.1) Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (67.6.1) Collecting setuptools Downloading setuptools-82.0.1-py3-none-any.whl.metadata (6.5 kB) Downloading setuptools-82.0.1-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 14.7 MB/s 0:00:00 Installing collected packages: setuptools Attempting uninstall: setuptools Found existing installation: setuptools 67.6.1 Uninstalling setuptools-67.6.1: Successfully uninstalled setuptools-67.6.1 Successfully installed setuptools-82.0.1 [rtd-command-info] start-time: 2026-04-27T02:13:08.584978Z, end-time: 2026-04-27T02:13:12.475244Z, 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) Requirement already satisfied: Jinja2>=3.1 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from sphinx) (3.1.6) 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) Requirement already satisfied: requests>=2.30.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from sphinx) (2.33.1) Collecting roman-numerals>=1.0.0 (from sphinx) Downloading roman_numerals-4.1.0-py3-none-any.whl.metadata (3.3 kB) Requirement already satisfied: packaging>=23.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from sphinx) (26.2) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Jinja2>=3.1->sphinx) (3.0.3) Requirement already satisfied: charset_normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from requests>=2.30.0->sphinx) (3.4.7) Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from requests>=2.30.0->sphinx) (3.13) Requirement already satisfied: urllib3<3,>=1.26 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from requests>=2.30.0->sphinx) (2.6.3) Requirement already satisfied: certifi>=2023.5.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from requests>=2.30.0->sphinx) (2026.4.22) Downloading sphinx-9.0.4-py3-none-any.whl (3.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 65.0 MB/s 0:00:00 Downloading docutils-0.22.4-py3-none-any.whl (633 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 633.2/633.2 kB 153.3 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 381.4 MB/s 0:00:00 Downloading imagesize-2.0.0-py2.py3-none-any.whl (9.4 kB) Downloading pygments-2.20.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 883.2 MB/s 0:00:00 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: sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, roman-numerals, Pygments, imagesize, docutils, babel, alabaster, sphinx Successfully installed Pygments-2.20.0 alabaster-1.0.0 babel-2.18.0 docutils-0.22.4 imagesize-2.0.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 [rtd-command-info] start-time: 2026-04-27T02:13:12.563980Z, end-time: 2026-04-27T02:13:20.178844Z, duration: 7, exit-code: 0 python -m pip install --exists-action=w --no-cache-dir -r docs/.sphinx/requirements.txt Collecting canonical-sphinx==0.5.1 (from canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading canonical_sphinx-0.5.1-py3-none-any.whl.metadata (5.8 kB) Requirement already satisfied: packaging in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from -r docs/.sphinx/requirements.txt (line 2)) (26.2) Collecting sphinx-last-updated-by-git (from -r docs/.sphinx/requirements.txt (line 4)) Downloading sphinx_last_updated_by_git-0.3.8-py3-none-any.whl.metadata (7.1 kB) Collecting sphinx-sitemap (from -r docs/.sphinx/requirements.txt (line 5)) Downloading sphinx_sitemap-2.9.0-py3-none-any.whl.metadata (3.4 kB) Collecting sphinx-jsonschema (from -r docs/.sphinx/requirements.txt (line 6)) Downloading sphinx_jsonschema-1.19.2.tar.gz (30 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting sphinxcontrib-mermaid (from -r docs/.sphinx/requirements.txt (line 7)) Downloading sphinxcontrib_mermaid-2.0.1-py3-none-any.whl.metadata (2.4 kB) Collecting sphinxcontrib-svg2pdfconverter[CairoSVG] (from -r docs/.sphinx/requirements.txt (line 3)) Downloading sphinxcontrib_svg2pdfconverter-2.1.0-py3-none-any.whl.metadata (3.3 kB) Requirement already satisfied: Sphinx>=7.1.2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (9.0.4) Collecting furo (from canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading furo-2025.12.19-py3-none-any.whl.metadata (4.9 kB) Collecting myst-parser (from canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading myst_parser-5.0.0-py3-none-any.whl.metadata (5.6 kB) Collecting linkify-it-py (from canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading linkify_it_py-2.1.0-py3-none-any.whl.metadata (8.5 kB) Collecting canonical-sphinx-extensions (from canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading canonical_sphinx_extensions-0.0.34-py3-none-any.whl.metadata (16 kB) Collecting sphinx-copybutton (from canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl.metadata (3.2 kB) Collecting sphinx-design (from canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading sphinx_design-0.7.0-py3-none-any.whl.metadata (5.5 kB) Collecting sphinx-notfound-page (from canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading sphinx_notfound_page-1.1.0-py3-none-any.whl.metadata (2.9 kB) Collecting sphinx-reredirects (from canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading sphinx_reredirects-1.1.0-py3-none-any.whl.metadata (4.7 kB) Collecting sphinx-tabs (from canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading sphinx_tabs-3.5.0-py3-none-any.whl.metadata (6.6 kB) Collecting sphinxcontrib-jquery (from canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl.metadata (2.6 kB) Collecting sphinxext-opengraph (from canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading sphinxext_opengraph-0.13.0-py3-none-any.whl.metadata (2.7 kB) Collecting pyspelling (from canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading pyspelling-2.12.1-py3-none-any.whl.metadata (3.7 kB) Collecting sphinx-autobuild (from canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading sphinx_autobuild-2025.8.25-py3-none-any.whl.metadata (8.5 kB) Collecting cairosvg>=1.0 (from sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/.sphinx/requirements.txt (line 3)) Downloading cairosvg-2.9.0-py3-none-any.whl.metadata (2.7 kB) Requirement already satisfied: docutils in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from sphinx-jsonschema->-r docs/.sphinx/requirements.txt (line 6)) (0.22.4) Requirement already satisfied: requests in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from sphinx-jsonschema->-r docs/.sphinx/requirements.txt (line 6)) (2.33.1) Collecting jsonpointer (from sphinx-jsonschema->-r docs/.sphinx/requirements.txt (line 6)) Downloading jsonpointer-3.1.1-py3-none-any.whl.metadata (2.4 kB) Requirement already satisfied: pyyaml in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from sphinx-jsonschema->-r docs/.sphinx/requirements.txt (line 6)) (6.0.3) Requirement already satisfied: jinja2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from sphinxcontrib-mermaid->-r docs/.sphinx/requirements.txt (line 7)) (3.1.6) Collecting cairocffi (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/.sphinx/requirements.txt (line 3)) Downloading cairocffi-1.7.1-py3-none-any.whl.metadata (3.3 kB) Collecting cssselect2 (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/.sphinx/requirements.txt (line 3)) Downloading cssselect2-0.9.0-py3-none-any.whl.metadata (2.9 kB) Collecting defusedxml (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/.sphinx/requirements.txt (line 3)) Downloading defusedxml-0.7.1-py2.py3-none-any.whl.metadata (32 kB) Collecting pillow (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/.sphinx/requirements.txt (line 3)) Downloading pillow-12.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.8 kB) Collecting tinycss2 (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/.sphinx/requirements.txt (line 3)) Downloading tinycss2-1.5.1-py3-none-any.whl.metadata (3.0 kB) Requirement already satisfied: sphinxcontrib-applehelp>=1.0.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Sphinx>=7.1.2->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (2.0.0) Requirement already satisfied: sphinxcontrib-devhelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Sphinx>=7.1.2->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (2.0.0) Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Sphinx>=7.1.2->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (2.1.0) Requirement already satisfied: sphinxcontrib-jsmath>=1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Sphinx>=7.1.2->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (1.0.1) Requirement already satisfied: sphinxcontrib-qthelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Sphinx>=7.1.2->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (2.0.0) Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Sphinx>=7.1.2->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (2.0.0) Requirement already satisfied: Pygments>=2.17 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Sphinx>=7.1.2->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (2.20.0) Requirement already satisfied: snowballstemmer>=2.2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Sphinx>=7.1.2->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (3.0.1) Requirement already satisfied: babel>=2.13 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Sphinx>=7.1.2->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (2.18.0) Requirement already satisfied: alabaster>=0.7.14 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Sphinx>=7.1.2->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (1.0.0) Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Sphinx>=7.1.2->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (2.0.0) Requirement already satisfied: roman-numerals>=1.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from Sphinx>=7.1.2->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) (4.1.0) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from jinja2->sphinxcontrib-mermaid->-r docs/.sphinx/requirements.txt (line 7)) (3.0.3) Requirement already satisfied: charset_normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from requests->sphinx-jsonschema->-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-checkbox/envs/2424/lib/python3.11/site-packages (from requests->sphinx-jsonschema->-r docs/.sphinx/requirements.txt (line 6)) (3.13) Requirement already satisfied: urllib3<3,>=1.26 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from requests->sphinx-jsonschema->-r docs/.sphinx/requirements.txt (line 6)) (2.6.3) Requirement already satisfied: certifi>=2023.5.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/envs/2424/lib/python3.11/site-packages (from requests->sphinx-jsonschema->-r docs/.sphinx/requirements.txt (line 6)) (2026.4.22) Collecting cffi>=1.1.0 (from cairocffi->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/.sphinx/requirements.txt (line 3)) Downloading cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.6 kB) Collecting pycparser (from cffi>=1.1.0->cairocffi->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/.sphinx/requirements.txt (line 3)) Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB) Collecting beautifulsoup4 (from canonical-sphinx-extensions->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading beautifulsoup4-4.14.3-py3-none-any.whl.metadata (3.8 kB) Collecting gitpython (from canonical-sphinx-extensions->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading gitpython-3.1.47-py3-none-any.whl.metadata (14 kB) Collecting soupsieve>=1.6.1 (from beautifulsoup4->canonical-sphinx-extensions->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading soupsieve-2.8.3-py3-none-any.whl.metadata (4.6 kB) Collecting typing-extensions>=4.0.0 (from beautifulsoup4->canonical-sphinx-extensions->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB) Collecting webencodings (from cssselect2->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/.sphinx/requirements.txt (line 3)) Downloading webencodings-0.5.1-py2.py3-none-any.whl.metadata (2.1 kB) Collecting sphinx-basic-ng>=1.0.0.beta2 (from furo->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading sphinx_basic_ng-1.0.0b2-py3-none-any.whl.metadata (1.5 kB) Collecting accessible-pygments>=0.0.5 (from furo->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading accessible_pygments-0.0.5-py3-none-any.whl.metadata (10 kB) Collecting gitdb<5,>=4.0.1 (from gitpython->canonical-sphinx-extensions->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) 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->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading smmap-5.0.3-py3-none-any.whl.metadata (4.6 kB) Collecting uc-micro-py (from linkify-it-py->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading uc_micro_py-2.0.0-py3-none-any.whl.metadata (2.2 kB) Collecting markdown-it-py~=4.0 (from myst-parser->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading markdown_it_py-4.0.0-py3-none-any.whl.metadata (7.3 kB) Collecting mdit-py-plugins~=0.5 (from myst-parser->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading mdit_py_plugins-0.5.0-py3-none-any.whl.metadata (2.8 kB) Collecting mdurl~=0.1 (from markdown-it-py~=4.0->myst-parser->canonical-sphinx==0.5.1->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB) Collecting html5lib (from pyspelling->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading html5lib-1.1-py2.py3-none-any.whl.metadata (16 kB) Collecting lxml (from pyspelling->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) 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->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading markdown-3.10.2-py3-none-any.whl.metadata (5.1 kB) Collecting wcmatch>=8.5 (from pyspelling->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading wcmatch-10.1-py3-none-any.whl.metadata (5.1 kB) Collecting bracex>=2.1.1 (from wcmatch>=8.5->pyspelling->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading bracex-2.6-py3-none-any.whl.metadata (3.6 kB) Collecting six>=1.9 (from html5lib->pyspelling->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) Collecting colorama>=0.4.6 (from sphinx-autobuild->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB) Collecting starlette>=0.35 (from sphinx-autobuild->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading starlette-1.0.0-py3-none-any.whl.metadata (6.3 kB) Collecting uvicorn>=0.25 (from sphinx-autobuild->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading uvicorn-0.46.0-py3-none-any.whl.metadata (6.7 kB) Collecting watchfiles>=0.20 (from sphinx-autobuild->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) 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->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (6.8 kB) Collecting anyio<5,>=3.6.2 (from starlette>=0.35->sphinx-autobuild->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading anyio-4.13.0-py3-none-any.whl.metadata (4.5 kB) Collecting click>=7.0 (from uvicorn>=0.25->sphinx-autobuild->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading click-8.3.3-py3-none-any.whl.metadata (2.6 kB) Collecting h11>=0.8 (from uvicorn>=0.25->sphinx-autobuild->canonical-sphinx[full]==0.5.1->-r docs/.sphinx/requirements.txt (line 1)) Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) Downloading canonical_sphinx-0.5.1-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 49.1 MB/s 0:00:00 Downloading sphinxcontrib_svg2pdfconverter-2.1.0-py3-none-any.whl (9.3 kB) Downloading sphinx_last_updated_by_git-0.3.8-py3-none-any.whl (8.6 kB) Downloading sphinx_sitemap-2.9.0-py3-none-any.whl (6.2 kB) Downloading sphinxcontrib_mermaid-2.0.1-py3-none-any.whl (14 kB) Downloading cairosvg-2.9.0-py3-none-any.whl (45 kB) Downloading cairocffi-1.7.1-py3-none-any.whl (75 kB) Downloading cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (215 kB) Downloading canonical_sphinx_extensions-0.0.34-py3-none-any.whl (67 kB) Downloading beautifulsoup4-4.14.3-py3-none-any.whl (107 kB) Downloading soupsieve-2.8.3-py3-none-any.whl (37 kB) Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB) Downloading cssselect2-0.9.0-py3-none-any.whl (15 kB) Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB) Downloading furo-2025.12.19-py3-none-any.whl (339 kB) Downloading accessible_pygments-0.0.5-py3-none-any.whl (1.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 89.5 MB/s 0:00:00 Downloading sphinx_basic_ng-1.0.0b2-py3-none-any.whl (22 kB) Downloading gitpython-3.1.47-py3-none-any.whl (209 kB) Downloading gitdb-4.0.12-py3-none-any.whl (62 kB) Downloading smmap-5.0.3-py3-none-any.whl (24 kB) Downloading jsonpointer-3.1.1-py3-none-any.whl (7.7 kB) Downloading linkify_it_py-2.1.0-py3-none-any.whl (19 kB) Downloading myst_parser-5.0.0-py3-none-any.whl (84 kB) Downloading markdown_it_py-4.0.0-py3-none-any.whl (87 kB) Downloading mdit_py_plugins-0.5.0-py3-none-any.whl (57 kB) Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB) Downloading pillow-12.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.1/7.1 MB 249.8 MB/s 0:00:00 Downloading pycparser-3.0-py3-none-any.whl (48 kB) Downloading pyspelling-2.12.1-py3-none-any.whl (45 kB) Downloading wcmatch-10.1-py3-none-any.whl (39 kB) Downloading bracex-2.6-py3-none-any.whl (11 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 340.7 MB/s 0:00:00 Downloading markdown-3.10.2-py3-none-any.whl (108 kB) Downloading sphinx_autobuild-2025.8.25-py3-none-any.whl (12 kB) Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB) Downloading starlette-1.0.0-py3-none-any.whl (72 kB) Downloading anyio-4.13.0-py3-none-any.whl (114 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 websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (184 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 810.7 MB/s 0:00:00 Downloading sphinx_notfound_page-1.1.0-py3-none-any.whl (8.2 kB) Downloading sphinx_reredirects-1.1.0-py3-none-any.whl (6.4 kB) Downloading sphinx_tabs-3.5.0-py3-none-any.whl (9.9 kB) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB) Downloading sphinxext_opengraph-0.13.0-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 851.1 MB/s 0:00:00 Downloading tinycss2-1.5.1-py3-none-any.whl (28 kB) Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB) Downloading uc_micro_py-2.0.0-py3-none-any.whl (6.4 kB) Building wheels for collected packages: sphinx-jsonschema Building wheel for sphinx-jsonschema (pyproject.toml): started Building wheel for sphinx-jsonschema (pyproject.toml): finished with status 'done' Created wheel for sphinx-jsonschema: filename=sphinx_jsonschema-1.19.2-py3-none-any.whl size=27877 sha256=753c31f15b2ec2f8da1835f3f16aa10127e177746ec0bcc914935511e861d11a Stored in directory: /tmp/pip-ephem-wheel-cache-l96bc0gt/wheels/ba/c0/f7/4c4fe0e65cd03c0887c1d7bef4c7ed0036c8e102ed6f757a18 Successfully built sphinx-jsonschema Installing collected packages: webencodings, websockets, uc-micro-py, typing-extensions, tinycss2, soupsieve, smmap, six, pycparser, pillow, mdurl, markdown, lxml, jsonpointer, h11, defusedxml, colorama, click, bracex, accessible-pygments, wcmatch, uvicorn, sphinx-jsonschema, markdown-it-py, linkify-it-py, html5lib, gitdb, cssselect2, cffi, beautifulsoup4, anyio, watchfiles, starlette, sphinxext-opengraph, sphinxcontrib-svg2pdfconverter, sphinxcontrib-mermaid, sphinxcontrib-jquery, sphinx-tabs, sphinx-reredirects, sphinx-notfound-page, sphinx-last-updated-by-git, sphinx-design, sphinx-copybutton, sphinx-basic-ng, pyspelling, mdit-py-plugins, gitpython, cairocffi, sphinx-sitemap, sphinx-autobuild, myst-parser, furo, canonical-sphinx-extensions, cairosvg, canonical-sphinx Successfully installed accessible-pygments-0.0.5 anyio-4.13.0 beautifulsoup4-4.14.3 bracex-2.6 cairocffi-1.7.1 cairosvg-2.9.0 canonical-sphinx-0.5.1 canonical-sphinx-extensions-0.0.34 cffi-2.0.0 click-8.3.3 colorama-0.4.6 cssselect2-0.9.0 defusedxml-0.7.1 furo-2025.12.19 gitdb-4.0.12 gitpython-3.1.47 h11-0.16.0 html5lib-1.1 jsonpointer-3.1.1 linkify-it-py-2.1.0 lxml-6.1.0 markdown-3.10.2 markdown-it-py-4.0.0 mdit-py-plugins-0.5.0 mdurl-0.1.2 myst-parser-5.0.0 pillow-12.2.0 pycparser-3.0 pyspelling-2.12.1 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-jsonschema-1.19.2 sphinx-last-updated-by-git-0.3.8 sphinx-notfound-page-1.1.0 sphinx-reredirects-1.1.0 sphinx-sitemap-2.9.0 sphinx-tabs-3.5.0 sphinxcontrib-jquery-4.1 sphinxcontrib-mermaid-2.0.1 sphinxcontrib-svg2pdfconverter-2.1.0 sphinxext-opengraph-0.13.0 starlette-1.0.0 tinycss2-1.5.1 typing-extensions-4.15.0 uc-micro-py-2.0.0 uvicorn-0.46.0 watchfiles-1.1.1 wcmatch-10.1 webencodings-0.5.1 websockets-16.0 [rtd-command-info] start-time: 2026-04-27T02:13:20.332076Z, end-time: 2026-04-27T02:13:20.373048Z, duration: 0, exit-code: 0 cat docs/conf.py import datetime import os import re import yaml import checkbox_ng # Configuration for the Sphinx documentation builder. # All configuration specific to your project should be done in this file. # # If you're new to Sphinx and don't want any advanced or custom features, # just go through the items marked 'TODO'. # # A complete list of built-in Sphinx configuration values: # https://www.sphinx-doc.org/en/master/usage/configuration.html # # Our starter pack uses the custom Canonical Sphinx extension # to keep all documentation based on it consistent and on brand: # https://github.com/canonical/canonical-sphinx ####################### # Project information # ####################### # Project name project = "Checkbox" author = "Canonical Ltd." # Here we just keep the version number and not any .devhash because that would # make the CI/CD spellcheck fail mistaking any .devhash occurence for an # unknown word release = ( re.match(r"(\d+\.{0,1})+", checkbox_ng.__version__).group(0).rstrip(".") ) # Sidebar documentation title; best kept reasonably short html_title = project + " " + release + " documentation" # Copyright string; shown at the bottom of the page # # Now, the starter pack uses CC-BY-SA as the license # and the current year as the copyright year. # # TODO: If your docs need another license, specify it instead of 'CC-BY-SA'. # # TODO: If your documentation is a part of the code repository of your project, # it inherits the code license instead; specify it instead of 'CC-BY-SA'. # # NOTE: For static works, it is common to provide the first publication year. # Another option is to provide both the first year of publication # and the current year, especially for docs that frequently change, # e.g. 2022–2023 (note the en-dash). # # A way to check a repo's creation date is to get a classic GitHub token # with 'repo' permissions; see https://github.com/settings/tokens # Next, use 'curl' and 'jq' to extract the date from the API's output: # # curl -H 'Authorization: token ' \ # -H 'Accept: application/vnd.github.v3.raw' \ # https://api.github.com/repos/canonical/ | jq '.created_at' copyright = "%s GPL-3.0, %s" % (datetime.date.today().year, author) # Documentation website URL # NOTE: The Open Graph Protocol (OGP) enhances page display in a social graph # and is used by social media platforms; see https://ogp.me/ ogp_site_url = "https://canonical-checkbox.readthedocs-hosted.com/latest/" # Preview name of the documentation website ogp_site_name = project # Preview image URL ogp_image = ( "https://assets.ubuntu.com/v1/253da317-image-document-ubuntudocs.svg" ) # Product favicon; shown in bookmarks, browser tabs, etc. # TODO: To customise the favicon, uncomment and update as needed. # html_favicon = '.sphinx/_static/favicon.png' # Dictionary of values to pass into the Sphinx context for all pages: # https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-html_context html_context = { # Product page URL; can be different from product docs URL # # TODO: Change to your product website URL, # dropping the 'https://' prefix, e.g. 'ubuntu.com/lxd'. # # TODO: If there's no such website, # remove the {{ product_page }} link from the page header template # (usually .sphinx/_templates/header.html; also, see README.rst). "product_page": "ubuntu.com/certified", # Product tag image; the orange part of your logo, shown in the page header # # TODO: To add a tag image, uncomment and update as needed. # 'product_tag': '_static/tag.png', # Your Discourse instance URL # # TODO: Change to your Discourse instance URL or leave empty. # # NOTE: If set, adding ':discourse: 123' to an .rst file # will add a link to Discourse topic 123 at the bottom of the page. "discourse": "https://discourse.ubuntu.com/c/project/certification/165", # Your Mattermost channel URL # # TODO: Change to your Mattermost channel URL or leave empty. "mattermost": "", # Your Matrix channel URL # # TODO: Change to your Matrix channel URL or leave empty. "matrix": "", # Your documentation GitHub repository URL # # TODO: Change to your documentation GitHub repository URL or leave empty. # # NOTE: If set, links for viewing the documentation source files # and creating GitHub issues are added at the bottom of each page. "github_url": "https://github.com/canonical/checkbox", # Docs branch in the repo; used in links for viewing the source files # # TODO: To customise the branch, uncomment and update as needed. "repo_default_branch": "main", # Docs location in the repo; used in links for viewing the source files # # TODO: To customise the directory, uncomment and update as needed. "repo_folder": "/docs/", # TODO: To enable or disable the Previous / Next buttons at the bottom of pages # Valid options: none, prev, next, both # "sequential_nav": "both", # TODO: To enable listing contributors on individual pages, set to True "display_contributors": False, # Required for feedback button "github_issues": "enabled", } # TODO: To enable the edit button on pages, uncomment and change the link to a # public repository on GitHub or Launchpad. Any of the following link domains # are accepted: # - https://github.com/example-org/example" # - https://launchpad.net/example # - https://git.launchpad.net/example # # html_theme_options = { # 'source_edit_link': 'https://github.com/canonical/sphinx-docs-starter-pack', # } # Project slug; see https://meta.discourse.org/t/what-is-category-slug/87897 # # TODO: If your documentation is hosted on https://docs.ubuntu.com/, # uncomment and update as needed. # slug = '' ####################### # Sitemap configuration: https://sphinx-sitemap.readthedocs.io/ ####################### # Use RTD canonical URL to ensure duplicate pages have a specific canonical URL html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "/") # sphinx-sitemap uses html_baseurl to generate the full URL for each page: sitemap_url_scheme = "{link}" # Include `lastmod` dates in the sitemap: sitemap_show_lastmod = True ####################### # Template and asset locations ####################### html_static_path = [".sphinx/_static"] # templates_path = ["_templates"] # Adds custom CSS files, located under 'html_static_path' html_css_files = [ "checkbox-doc.css", ] # Adds custom JavaScript files, located under 'html_static_path' # html_js_files = [] ############# # Redirects # ############# # To set up redirects: https://documatt.gitlab.io/sphinx-reredirects/usage.html # For example: 'explanation/old-name.html': '../how-to/prettify.html', # To set up redirects in the Read the Docs project dashboard: # https://docs.readthedocs.io/en/stable/guides/redirects.html # NOTE: If undefined, set to None, or empty, # the sphinx_reredirects extension will be disabled. redirects = {} ########################### # Link checker exceptions # ########################### # A regex list of URLs that are ignored by 'make linkcheck' # # TODO: Remove or adjust the ACME entry after you update the contributing guide linkcheck_ignore = [ "http://127.0.0.1:8000", "https://github.com/canonical/hwcert-jenkins-jobs", "https://www.gnu.org/licenses", ] # A regex list of URLs where anchors are ignored by 'make linkcheck' linkcheck_anchors_ignore_for_url = [r"https://github\.com/.*"] # give linkcheck multiple tries on failure linkcheck_timeout = 300 # in seconds, to reduce false positives linkcheck_retries = 3 ######################## # Configuration extras # ######################## # Custom MyST syntax extensions; see # https://myst-parser.readthedocs.io/en/latest/syntax/optional.html # # NOTE: By default, the following MyST extensions are enabled: # substitution, deflist, linkify # myst_enable_extensions = set() # Custom Sphinx extensions; see # https://www.sphinx-doc.org/en/master/usage/extensions/index.html # NOTE: The canonical_sphinx extension is required for the starter pack. # It automatically enables the following extensions: # - custom-rst-roles # - myst_parser # - notfound.extension # - related-links # - sphinx_copybutton # - sphinx_design # - sphinx_reredirects # - sphinx_tabs.tabs # - sphinxcontrib.jquery # - sphinxext.opengraph # - terminal-output # - youtube-links extensions = [ "canonical_sphinx", "sphinxcontrib.cairosvgconverter", "sphinx_last_updated_by_git", "sphinx_sitemap", "sphinx-jsonschema", "sphinxcontrib.mermaid", ] # Excludes files or directories from processing exclude_patterns = [ "README*", ] # Specifies a reST snippet to be appended to each .rst file rst_epilog = """ .. include:: /reuse/links.txt .. include:: /reuse/substitutions.txt """ # Feedback button at the top; enabled by default # # TODO: To disable the button, uncomment this. # disable_feedback_button = True # Your manpage URL # # TODO: To enable manpage links, uncomment and replace {codename} with required # release, preferably an LTS release (e.g. noble). Do *not* substitute # {section} or {page}; these will be replaced by sphinx at build time # # NOTE: If set, adding ':manpage:' to an .rst file # adds a link to the corresponding man section at the bottom of the page. # manpages_url = 'https://manpages.ubuntu.com/manpages/{codename}/en/' + \ # 'man{section}/{page}.{section}.html' # Specifies a reST snippet to be prepended to each .rst file # This defines a :center: role that centers table cell content. # This defines a :h2: role that styles content for use with PDF generation. rst_prolog = """ .. role:: center :class: align-center .. role:: h2 :class: hclass2 .. role:: woke-ignore :class: woke-ignore .. role:: vale-ignore :class: vale-ignore """ # Workaround for https://github.com/canonical/canonical-sphinx/issues/34 if "discourse_prefix" not in html_context and "discourse" in html_context: html_context["discourse_prefix"] = html_context["discourse"] + "/t/" # Workaround for substitutions.yaml if os.path.exists("./reuse/substitutions.yaml"): with open("./reuse/substitutions.yaml", "r") as fd: myst_substitutions = yaml.safe_load(fd.read()) # Add configuration for intersphinx mapping intersphinx_mapping = { "starter-pack": ( "https://canonical-example-product-documentation.readthedocs-hosted.com/en/latest", None, ) } [rtd-command-info] start-time: 2026-04-27T02:13:20.466667Z, end-time: 2026-04-27T02:13:26.591309Z, duration: 6, 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 sphinx_design found. sphinx_design is now configured. sphinx_tabs.tabs found. sphinx_tabs.tabs is now configured. sphinx_reredirects found. sphinx_reredirects is now configured. canonical.youtube-links found. canonical.youtube-links is now configured. canonical.related-links found. canonical.related-links is now configured. canonical.custom-rst-roles found. canonical.custom-rst-roles is now configured. canonical.terminal-output found. canonical.terminal-output is now configured. canonical.contributor-listing found. canonical.contributor-listing is now configured. sphinx_copybutton found. sphinx_copybutton is now configured. sphinxext.opengraph found. sphinxext.opengraph is now configured. sphinxcontrib.jquery found. sphinxcontrib.jquery is now configured. notfound.extension found. notfound.extension is now configured. sphinxcontrib.cairosvgconverter found. sphinxcontrib.cairosvgconverter is now configured. sphinx_last_updated_by_git found. sphinx_last_updated_by_git is now configured. matplotlib is not installed, social cards will not be generated making output directory... done myst v5.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={version_number: ..., formatted_text: ..., site_link: ...}, linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, dmath_double_inline=False, update_mathjax=True, mathjax_classes='tex2jax_process|mathjax_process|math|output_area', enable_checkboxes=False, suppress_warnings=[], highlight_code_blocks=True) building [mo]: targets for 0 po files that are out of date writing output... building [dirhtml]: targets for 55 source files that are out of date updating environment: [new config] 55 added, 0 changed, 0 removed reading sources... [ 2%] community/bugs reading sources... [ 4%] community/contributing reading sources... [ 5%] community/support reading sources... [ 7%] explanation/configs reading sources... [ 9%] explanation/index reading sources... [ 11%] explanation/release_process/canary reading sources... [ 13%] explanation/release_process/canary_pipeline reading sources... [ 15%] explanation/release_process/validation_job_example reading sources... [ 16%] explanation/release_process/validation_pipeline_execution reading sources... [ 18%] explanation/remote reading sources... [ 20%] explanation/understanding reading sources... [ 22%] how-to/agent-service reading sources... [ 24%] how-to/ancient-python reading sources... [ 25%] how-to/custom-frontend-envvars reading sources... [ 27%] how-to/freeze-checkbox-version reading sources... [ 29%] how-to/index reading sources... [ 31%] how-to/launcher/auto-retry reading sources... [ 33%] how-to/launcher/output-verbosity reading sources... [ 35%] how-to/migrate-away-jinja2 reading sources... [ 36%] how-to/nested-test-plan reading sources... [ 38%] how-to/side-loading reading sources... [ 40%] how-to/using-groups reading sources... [ 42%] how-to/using-match reading sources... [ 44%] index reading sources... [ 45%] reference/changelog reading sources... [ 47%] reference/envvar reading sources... [ 49%] reference/glossary reading sources... [ 51%] reference/index reading sources... [ 53%] reference/job-status reading sources... [ 55%] reference/launcher reading sources... [ 56%] reference/snaps reading sources... [ 58%] reference/stack reading sources... [ 60%] reference/submission-schema reading sources... [ 62%] reference/units/category reading sources... [ 64%] reference/units/exporter reading sources... [ 65%] reference/units/index reading sources... [ 67%] reference/units/job reading sources... [ 69%] reference/units/manifest-entry reading sources... [ 71%] reference/units/packaging-meta-data reading sources... [ 73%] reference/units/resource reading sources... [ 75%] reference/units/rfc822 reading sources... [ 76%] reference/units/template reading sources... [ 78%] reference/units/test-plan reading sources... [ 80%] tutorial/custom_frontend reading sources... [ 82%] tutorial/index reading sources... [ 84%] tutorial/using-checkbox/advanced-commands reading sources... [ 85%] tutorial/using-checkbox/generate-report reading sources... [ 87%] tutorial/using-checkbox/installing-checkbox reading sources... [ 89%] tutorial/using-checkbox/launcher reading sources... [ 91%] tutorial/using-checkbox/manifest reading sources... [ 93%] tutorial/using-checkbox/remote reading sources... [ 95%] tutorial/using-checkbox/running-checkbox reading sources... [ 96%] tutorial/using-checkbox/test-report reading sources... [ 98%] tutorial/writing-tests/test-case reading sources... [100%] tutorial/writing-tests/test-plan getting Git timestamps for source files... [ 9%] community getting Git timestamps for source files... [ 18%] explanation getting Git timestamps for source files... [ 27%] explanation/release_process getting Git timestamps for source files... [ 36%] how-to getting Git timestamps for source files... [ 45%] how-to/launcher getting Git timestamps for source files... [ 55%] . getting Git timestamps for source files... [ 64%] reference getting Git timestamps for source files... [ 73%] reference/units getting Git timestamps for source files... [ 82%] tutorial getting Git timestamps for source files... [ 91%] tutorial/using-checkbox getting Git timestamps for source files... [100%] tutorial/writing-tests getting Git timestamps for dependencies... [ 33%] reuse getting Git timestamps for dependencies... [ 67%] /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/checkouts/2424/submission-schema getting Git timestamps for dependencies... [100%] _images 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-checkbox/checkouts/2424/_readthedocs/html/_static/basic.css Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/checkouts/2424/_readthedocs/html/_static/language_data.js Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/checkouts/2424/_readthedocs/html/_static/documentation_options.js Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/checkouts/2424/_readthedocs/html/_static/copybutton.js copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 2%] community/bugs writing output... [ 4%] community/contributing writing output... [ 5%] community/support writing output... [ 7%] explanation/configs writing output... [ 9%] explanation/index writing output... [ 11%] explanation/release_process/canary writing output... [ 13%] explanation/release_process/canary_pipeline writing output... [ 15%] explanation/release_process/validation_job_example writing output... [ 16%] explanation/release_process/validation_pipeline_execution writing output... [ 18%] explanation/remote writing output... [ 20%] explanation/understanding writing output... [ 22%] how-to/agent-service writing output... [ 24%] how-to/ancient-python writing output... [ 25%] how-to/custom-frontend-envvars writing output... [ 27%] how-to/freeze-checkbox-version writing output... [ 29%] how-to/index writing output... [ 31%] how-to/launcher/auto-retry writing output... [ 33%] how-to/launcher/output-verbosity writing output... [ 35%] how-to/migrate-away-jinja2 writing output... [ 36%] how-to/nested-test-plan writing output... [ 38%] how-to/side-loading writing output... [ 40%] how-to/using-groups writing output... [ 42%] how-to/using-match writing output... [ 44%] index writing output... [ 45%] reference/changelog writing output... [ 47%] reference/envvar writing output... [ 49%] reference/glossary writing output... [ 51%] reference/index writing output... [ 53%] reference/job-status writing output... [ 55%] reference/launcher writing output... [ 56%] reference/snaps writing output... [ 58%] reference/stack writing output... [ 60%] reference/submission-schema writing output... [ 62%] reference/units/category writing output... [ 64%] reference/units/exporter writing output... [ 65%] reference/units/index writing output... [ 67%] reference/units/job writing output... [ 69%] reference/units/manifest-entry writing output... [ 71%] reference/units/packaging-meta-data writing output... [ 73%] reference/units/resource writing output... [ 75%] reference/units/rfc822 writing output... [ 76%] reference/units/template writing output... [ 78%] reference/units/test-plan writing output... [ 80%] tutorial/custom_frontend writing output... [ 82%] tutorial/index writing output... [ 84%] tutorial/using-checkbox/advanced-commands writing output... [ 85%] tutorial/using-checkbox/generate-report writing output... [ 87%] tutorial/using-checkbox/installing-checkbox writing output... [ 89%] tutorial/using-checkbox/launcher writing output... [ 91%] tutorial/using-checkbox/manifest writing output... [ 93%] tutorial/using-checkbox/remote writing output... [ 95%] tutorial/using-checkbox/running-checkbox writing output... [ 96%] tutorial/using-checkbox/test-report writing output... [ 98%] tutorial/writing-tests/test-case writing output... [100%] tutorial/writing-tests/test-plan generating indices... genindex done writing additional pages... search done copying images... [ 50%] _images/checkbox-tutorial-test-report.png copying images... [100%] _images/checkbox-test-report.png dumping search index in English (code: en)... done dumping object inventory... done sphinx-sitemap: sitemap.xml was generated for URL https://canonical-checkbox--2424.com.readthedocs.build/2424/ in /home/docs/checkouts/readthedocs.org/user_builds/canonical-checkbox/checkouts/2424/_readthedocs/html/sitemap.xml build succeeded. The HTML pages are in ../_readthedocs/html.