Read the Docs build information Build id: 4224265 Project: icb-scanpy Version: 4199 Commit: 9e6686ae76a05df95de4296180cc4c86dcbf815c Date: 2026-07-17T08:09:10.298890Z State: finished Success: False [rtd-command-info] start-time: 2026-07-17T08:09:11.074305Z, end-time: 2026-07-17T08:09:12.032168Z, duration: 0, exit-code: 0 git clone --depth 1 https://github.com/scverse/scanpy.git . Cloning into '.'... [rtd-command-info] start-time: 2026-07-17T08:09:12.120152Z, end-time: 2026-07-17T08:09:12.602647Z, duration: 0, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/4199/head:external-4199 From https://github.com/scverse/scanpy * [new ref] refs/pull/4199/head -> external-4199 [rtd-command-info] start-time: 2026-07-17T08:09:13.261346Z, end-time: 2026-07-17T08:09:13.333549Z, duration: 0, exit-code: 0 git checkout --force 9e6686ae76a05df95de4296180cc4c86dcbf815c Note: switching to '9e6686ae76a05df95de4296180cc4c86dcbf815c'. 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 9e6686a support obsp/varp [rtd-command-info] start-time: 2026-07-17T08:09:13.417486Z, end-time: 2026-07-17T08:09:13.451399Z, duration: 0, exit-code: 0 cat .readthedocs.yml # https://docs.readthedocs.io/en/stable/config-file/v2.html version: 2 submodules: include: all build: os: ubuntu-24.04 tools: python: '3.13' jobs: post_checkout: # unshallow so version can be derived from tag - git fetch --unshallow || true create_environment: - asdf plugin add uv - asdf install uv latest - asdf global uv latest pre_build: # run towncrier to preview the next version’s release notes - ( find docs/release-notes -regex '[^.]+[.][^.]+.md' | grep -q . ) && uvx hatch run towncrier build --keep || true build: html: - uvx hatch run docs:build -T - mv docs/_build $READTHEDOCS_OUTPUT [rtd-command-info] start-time: 2026-07-17T08:09:13.582717Z, end-time: 2026-07-17T08:09:13.721561Z, duration: 0, exit-code: 0 git submodule sync [rtd-command-info] start-time: 2026-07-17T08:09:13.810236Z, end-time: 2026-07-17T08:09:32.615057Z, duration: 18, exit-code: 0 git submodule update --init --force -- Submodule 'notebooks' (https://github.com/scverse/scanpy-tutorials/) registered for path 'notebooks' Cloning into '/home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4199/notebooks'... Submodule path 'notebooks': checked out 'ac0e94be9f36977400177dc940cbd8eac1d2297c' [rtd-command-info] start-time: 2026-07-17T08:09:32.740463Z, end-time: 2026-07-17T08:09:37.402251Z, duration: 4, exit-code: 0 git fetch --unshallow || true From https://github.com/scverse/scanpy * [new tag] 0.0 -> 0.0 * [new tag] 0.1 -> 0.1 * [new tag] 0.2 -> 0.2 * [new tag] 0.2.1 -> 0.2.1 * [new tag] 0.2.3 -> 0.2.3 * [new tag] 0.2.3.5 -> 0.2.3.5 * [new tag] 0.2.4 -> 0.2.4 * [new tag] 0.2.5 -> 0.2.5 * [new tag] 0.2.6 -> 0.2.6 * [new tag] 0.2.7 -> 0.2.7 * [new tag] 0.2.8 -> 0.2.8 * [new tag] 0.2.9 -> 0.2.9 * [new tag] 0.2.9.1 -> 0.2.9.1 * [new tag] 0.3 -> 0.3 * [new tag] 0.3.1 -> 0.3.1 * [new tag] 0.3.2 -> 0.3.2 * [new tag] 0.4 -> 0.4 * [new tag] 0.4.1 -> 0.4.1 * [new tag] 0.4.2 -> 0.4.2 * [new tag] 0.4.2.post1 -> 0.4.2.post1 * [new tag] 0.4.2.post2 -> 0.4.2.post2 * [new tag] 0.4.3 -> 0.4.3 * [new tag] 0.4.4 -> 0.4.4 * [new tag] 1.0 -> 1.0 * [new tag] 1.0.1 -> 1.0.1 * [new tag] 1.0.2 -> 1.0.2 * [new tag] 1.0.3 -> 1.0.3 * [new tag] 1.0.4 -> 1.0.4 * [new tag] 1.1 -> 1.1 * [new tag] 1.10.0.dev0 -> 1.10.0.dev0 * [new tag] 1.10.0rc1 -> 1.10.0rc1 * [new tag] 1.11.0 -> 1.11.0 * [new tag] 1.11.0rc1 -> 1.11.0rc1 * [new tag] 1.11.0rc2 -> 1.11.0rc2 * [new tag] 1.12.0 -> 1.12.0 * [new tag] 1.12.0rc1 -> 1.12.0rc1 * [new tag] 1.1a1 -> 1.1a1 * [new tag] 1.1a2 -> 1.1a2 * [new tag] 1.2.0 -> 1.2.0 * [new tag] 1.2.1 -> 1.2.1 * [new tag] 1.2.2 -> 1.2.2 * [new tag] 1.3 -> 1.3 * [new tag] 1.3.1 -> 1.3.1 * [new tag] 1.3.2 -> 1.3.2 * [new tag] 1.3.3 -> 1.3.3 * [new tag] 1.3.4 -> 1.3.4 * [new tag] 1.3.5 -> 1.3.5 * [new tag] 1.3.6 -> 1.3.6 * [new tag] 1.3.7 -> 1.3.7 * [new tag] 1.3.8 -> 1.3.8 * [new tag] 1.4 -> 1.4 * [new tag] 1.4.1 -> 1.4.1 * [new tag] 1.4.2 -> 1.4.2 * [new tag] 1.4.3 -> 1.4.3 * [new tag] 1.4.4 -> 1.4.4 * [new tag] 1.4.5 -> 1.4.5 * [new tag] 1.4.5.1 -> 1.4.5.1 * [new tag] 1.4.5.post1 -> 1.4.5.post1 * [new tag] 1.4.5.post2 -> 1.4.5.post2 * [new tag] 1.4.5.post3 -> 1.4.5.post3 * [new tag] 1.4.6 -> 1.4.6 * [new tag] 1.5.0 -> 1.5.0 * [new tag] 1.5.0a1 -> 1.5.0a1 * [new tag] 1.5.1 -> 1.5.1 * [new tag] 1.6.0 -> 1.6.0 * [new tag] 1.7.0rc1 -> 1.7.0rc1 * [new tag] 1.8.0 -> 1.8.0 * [new tag] 1.8.0.dev0 -> 1.8.0.dev0 * [new tag] 1.9.0 -> 1.9.0 * [new tag] 1.9.0.dev0 -> 1.9.0.dev0 Fetching submodule notebooks From https://github.com/scverse/scanpy-tutorials * branch 26e16f83387caef76abdd42afda3c7c13f7139f1 -> FETCH_HEAD [rtd-command-info] start-time: 2026-07-17T08:09:41.096693Z, end-time: 2026-07-17T08:09:41.147242Z, duration: 0, exit-code: 0 asdf global python 3.13.14 [rtd-command-info] start-time: 2026-07-17T08:09:41.453281Z, end-time: 2026-07-17T08:09:42.399942Z, duration: 0, exit-code: 0 asdf plugin add uv updating plugin repository...From https://github.com/asdf-vm/asdf-plugins 8e311ee..c0369a1 master -> origin/master * [new branch] dependabot/github_actions/actions/checkout-6 -> origin/dependabot/github_actions/actions/checkout-6 * [new branch] dependabot/github_actions/amannn/action-semantic-pull-request-6.1.1 -> origin/dependabot/github_actions/amannn/action-semantic-pull-request-6.1.1 * [new branch] dependabot/github_actions/asdf-vm/actions-4 -> origin/dependabot/github_actions/asdf-vm/actions-4 HEAD is now at c0369a1 feat: add yasm plugin (#1087) [rtd-command-info] start-time: 2026-07-17T08:09:42.494517Z, end-time: 2026-07-17T08:09:43.568161Z, duration: 1, exit-code: 0 asdf install uv latest redirect url: https://github.com/astral-sh/uv/releases/tag/0.11.29 * Downloading uv release 0.11.29... uv 0.11.29 installation was successful! [rtd-command-info] start-time: 2026-07-17T08:09:43.644905Z, end-time: 2026-07-17T08:09:43.750813Z, duration: 0, exit-code: 0 asdf global uv latest redirect url: https://github.com/astral-sh/uv/releases/tag/0.11.29 [rtd-command-info] start-time: 2026-07-17T08:09:43.897123Z, end-time: 2026-07-17T08:09:46.198136Z, duration: 2, exit-code: 0 ( find docs/release-notes -regex '[^.]+[.][^.]+.md' | grep -q . ) && uvx hatch run towncrier build --keep || true Downloading virtualenv (5.3MiB) Downloading pygments (1.2MiB) Downloading cryptography (4.5MiB) Downloading uv (25.7MiB) Downloaded virtualenv Downloaded cryptography Downloaded uv Downloaded pygments Installed 43 packages in 15ms Creating environment: default Installing project in development mode × Failed to build `scanpy @ │ file:///home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4199` ├─▶ The build backend returned an error ╰─▶ Call to `hatchling.build.prepare_metadata_for_build_editable` failed (exit status: 1) [stderr] Traceback (most recent call last): File "", line 14, in dirname = prepare_metadata_for_build("/home/docs/.cache/uv/builds-v0/.tmpsAH2Va/metadata_directory", {}) File "/home/docs/.cache/uv/builds-v0/.tmpsAH2Va/lib/python3.13/site-packages/hatchling/build.py", line 142, in prepare_metadata_for_build_editable f.write(builder.config.core_metadata_constructor(builder.metadata, extra_dependencies=extra_dependencies)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.cache/uv/builds-v0/.tmpsAH2Va/lib/python3.13/site-packages/hatchling/metadata/spec.py", line 599, in construct_metadata_file_2_4 if metadata.core.optional_dependencies: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.cache/uv/builds-v0/.tmpsAH2Va/lib/python3.13/site-packages/hatchling/metadata/core.py", line 1337, in optional_dependencies option: list(entries) for option, entries in self.optional_dependencies_complex.items() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.cache/uv/builds-v0/.tmpsAH2Va/lib/python3.13/site-packages/hatchling/metadata/core.py", line 1295, in optional_dependencies_complex raise ValueError(message) from None ValueError: Dependency #1 of option `scanpy2` of field `project.optional-dependencies` is invalid: Expected comma (within version specifier), semicolon (after version specifier) or end anndata>=0.13rc3.2 ~~~~~~~~~^ hint: Build failures usually indicate a problem with the package or the build environment [rtd-command-info] start-time: 2026-07-17T08:09:46.292493Z, end-time: 2026-07-17T08:09:47.181059Z, duration: 0, exit-code: 1 uvx hatch run docs:build -T Creating environment: docs Installing project in development mode × Failed to build `scanpy @ │ file:///home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4199` ├─▶ The build backend returned an error ╰─▶ Call to `hatchling.build.prepare_metadata_for_build_editable` failed (exit status: 1) [stderr] Traceback (most recent call last): File "", line 14, in dirname = prepare_metadata_for_build("/home/docs/.cache/uv/builds-v0/.tmp9c4j6E/metadata_directory", {}) File "/home/docs/.cache/uv/builds-v0/.tmp9c4j6E/lib/python3.13/site-packages/hatchling/build.py", line 142, in prepare_metadata_for_build_editable f.write(builder.config.core_metadata_constructor(builder.metadata, extra_dependencies=extra_dependencies)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.cache/uv/builds-v0/.tmp9c4j6E/lib/python3.13/site-packages/hatchling/metadata/spec.py", line 599, in construct_metadata_file_2_4 if metadata.core.optional_dependencies: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.cache/uv/builds-v0/.tmp9c4j6E/lib/python3.13/site-packages/hatchling/metadata/core.py", line 1337, in optional_dependencies option: list(entries) for option, entries in self.optional_dependencies_complex.items() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.cache/uv/builds-v0/.tmp9c4j6E/lib/python3.13/site-packages/hatchling/metadata/core.py", line 1295, in optional_dependencies_complex raise ValueError(message) from None ValueError: Dependency #1 of option `scanpy2` of field `project.optional-dependencies` is invalid: Expected comma (within version specifier), semicolon (after version specifier) or end anndata>=0.13rc3.2 ~~~~~~~~~^ hint: Build failures usually indicate a problem with the package or the build environment