From 2d15392c4ada66a505ec8531d2246a5fca30e548 Mon Sep 17 00:00:00 2001 From: Tim Treis Date: Mon, 11 May 2026 16:46:05 +0200 Subject: [PATCH 1/4] Add docs gallery as submodule from spatialdata-plot-notebooks Mounts scverse/spatialdata-plot-notebooks at docs/notebooks/ and renders it into the docs as a Gallery section, following the scverse convention used by anndata, spatialdata, scvi-tools, and squidpy. Notebooks are pre-executed by humans and committed with outputs in the notebooks repo; this docs build performs no execution. RTD pulls the submodule on each build (submodules.include = all). A new `docs` job in build.yaml runs the docs build on every PR with submodules checked out, gating sphinx warnings (-W) before merge. conf.py exclude_patterns: drop stale `tutorials/notebooks/...` entries (directory was never created), exclude submodule meta-files (README, CONTRIBUTING, LICENSE, .github, pyproject.toml) so they don't trigger toctree warnings. Closes the gallery scope from #463; supersedes the sphinx-gallery approach proposed in #590. --- .github/workflows/build.yaml | 12 ++++++++++++ .gitmodules | 4 ++++ .readthedocs.yaml | 4 ++++ docs/conf.py | 11 +++++++---- docs/gallery.md | 17 +++++++++++++++++ docs/index.md | 3 ++- docs/notebooks | 1 + 7 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 .gitmodules create mode 100644 docs/gallery.md create mode 160000 docs/notebooks diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c6ecc2f2..480dff50 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,3 +24,15 @@ jobs: run: uv build - name: Check package run: uvx twine check --strict dist/*.whl + + docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + with: + submodules: true + fetch-depth: 0 + - name: Install uv + uses: astral-sh/setup-uv@v7 + - name: Build docs + run: uvx --with="virtualenv<21" hatch run docs:build diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..a7d91b87 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "docs/notebooks"] + path = docs/notebooks + url = https://github.com/scverse/spatialdata-plot-notebooks.git + branch = main diff --git a/.readthedocs.yaml b/.readthedocs.yaml index cfd291d3..203c8a2a 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -15,3 +15,7 @@ build: # TODO: remove "--with=virtualenv<21" once hatch is compatible with virtualenv 21+ (pypa/hatch#2193) - uvx "--with=virtualenv<21" hatch run docs:build - mv docs/_build $READTHEDOCS_OUTPUT + +submodules: + include: all + recursive: false diff --git a/docs/conf.py b/docs/conf.py index 3e7591a8..393f82c0 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -114,10 +114,13 @@ "Thumbs.db", ".DS_Store", "**.ipynb_checkpoints", - "tutorials/notebooks/index.md", - "tutorials/notebooks/README.md", - "tutorials/notebooks/references.md", - "tutorials/notebooks/notebooks/paper_reproducibility/*", + # Submodule meta-files: these document the notebooks repo itself, not + # spatialdata-plot, and should not be rendered into our docs. + "notebooks/README.md", + "notebooks/CONTRIBUTING.md", + "notebooks/LICENSE", + "notebooks/.github/**", + "notebooks/pyproject.toml", ] diff --git a/docs/gallery.md b/docs/gallery.md new file mode 100644 index 00000000..8dd4809a --- /dev/null +++ b/docs/gallery.md @@ -0,0 +1,17 @@ +# Gallery + +Curated, runnable examples demonstrating `spatialdata-plot` on real +spatial-omics datasets (Visium, Xenium, MERFISH) and on the lightweight +`blobs` dataset for first-time users. + +Sources live in +[`scverse/spatialdata-plot-notebooks`](https://github.com/scverse/spatialdata-plot-notebooks); +every notebook is executable end-to-end and re-executed on a weekly schedule +against the latest `spatialdata-plot` release. + +```{toctree} +:maxdepth: 2 + +notebooks/tutorials/index +notebooks/examples/index +``` diff --git a/docs/index.md b/docs/index.md index 53ff8f2a..4aafabc5 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,8 +4,9 @@ ```{toctree} :hidden: true -:maxdepth: 1 +:maxdepth: 2 +gallery.md api.md changelog.md contributing.md diff --git a/docs/notebooks b/docs/notebooks new file mode 160000 index 00000000..cdfefba1 --- /dev/null +++ b/docs/notebooks @@ -0,0 +1 @@ +Subproject commit cdfefba1fa92b3c250f4d414eedde68a99c16120 From e24d7a238cd5a0d0a2c26250dce588776a9b4ef3 Mon Sep 17 00:00:00 2001 From: Tim Treis Date: Mon, 11 May 2026 17:06:53 +0200 Subject: [PATCH 2/4] Bump notebooks submodule (lint fix in spatialdata-plot-notebooks) --- docs/notebooks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/notebooks b/docs/notebooks index cdfefba1..e0ac82ac 160000 --- a/docs/notebooks +++ b/docs/notebooks @@ -1 +1 @@ -Subproject commit cdfefba1fa92b3c250f4d414eedde68a99c16120 +Subproject commit e0ac82ace2e4a754a71682e6ee57ab24ec3ec353 From 62a919457dea92ac9a96bc3447168bec915ab257 Mon Sep 17 00:00:00 2001 From: Tim Treis Date: Mon, 11 May 2026 17:11:30 +0200 Subject: [PATCH 3/4] Document gallery submodule workflow in contributing guide Replaces the now-stale "Tutorials with myst-nb" section with concrete instructions for the submodule-based gallery: how to clone with submodules, how to bump the pin, and where to send notebook PRs (the notebooks repo). Adds a heads-up admonition to the "Building the docs locally" section so contributors who cloned without --recurse-submodules know to run `git submodule update --init --recursive` before sphinx-build. --- docs/contributing.md | 59 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 8 deletions(-) diff --git a/docs/contributing.md b/docs/contributing.md index d8b8f1e5..76e42673 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -251,7 +251,7 @@ This project uses [sphinx][] with the following features: - The [myst][] extension allows to write documentation in markdown/Markedly Structured Text - [Numpy-style docstrings][numpydoc] (through the [napoleon][numpydoc-napoleon] extension). -- Jupyter notebooks as tutorials through [myst-nb][] (See [Tutorials with myst-nb](#tutorials-with-myst-nb-and-jupyter-notebooks)) +- Jupyter notebooks as tutorials through [myst-nb][] (See [Gallery notebooks (submodule)](#gallery-notebooks-submodule)) - [sphinx-autodoc-typehints][], to automatically reference annotated input and output types - Citations (like {cite:p}`Virshup_2023`) can be included with [sphinxcontrib-bibtex](https://sphinxcontrib-bibtex.readthedocs.io/) @@ -264,16 +264,48 @@ See scanpy's {doc}`scanpy:dev/documentation` for more information on how to writ [numpydoc]: https://numpydoc.readthedocs.io/en/latest/format.html [sphinx-autodoc-typehints]: https://github.com/tox-dev/sphinx-autodoc-typehints -### Tutorials with myst-nb and jupyter notebooks +### Gallery notebooks (submodule) -The documentation is set-up to render jupyter notebooks stored in the `docs/notebooks` directory using [myst-nb][]. -Currently, only notebooks in `.ipynb` format are supported that will be included with both their input and output cells. -It is your responsibility to update and re-run the notebook whenever necessary. +The gallery rendered into the docs lives in a separate repository, +[`scverse/spatialdata-plot-notebooks`][notebooks-repo], mounted here as a git +submodule at `docs/notebooks/`. This follows the scverse convention used by +`anndata`, `spatialdata`, `scvi-tools`, and `squidpy`. -If you are interested in automatically running notebooks as part of the continuous integration, -please check out [this feature request][issue-render-notebooks] in the `cookiecutter-scverse` repository. +Notebooks are pre-executed by humans and committed with their outputs; the +docs build performs no execution and pulls no data. A scheduled CI job in the +notebooks repo re-executes every notebook against the latest +`spatialdata-plot` release and fails on output drift. -[issue-render-notebooks]: https://github.com/scverse/cookiecutter-scverse/issues/40 +#### Working with the gallery locally + +```bash +# First-time clone — pull this repo with submodules +git clone --recurse-submodules https://github.com/scverse/spatialdata-plot.git + +# Already cloned without submodules — initialise after the fact +git submodule update --init --recursive + +# Pull the latest gallery content from the notebooks repo's main branch +git submodule update --remote docs/notebooks +``` + +ReadTheDocs is configured (`submodules: include: all` in `.readthedocs.yaml`) +to fetch the submodule on every build, so PR previews always render the +current pinned gallery content. + +#### Adding or editing a notebook + +Notebook changes are made in the [notebooks repo][notebooks-repo], not here. +See its `CONTRIBUTING.md` for the workflow. After your notebook PR merges +there, open a small follow-up PR in this repo bumping the submodule pin: + +```bash +git submodule update --remote docs/notebooks +git add docs/notebooks +git commit -m "Bump notebooks submodule" +``` + +[notebooks-repo]: https://github.com/scverse/spatialdata-plot-notebooks #### Hints @@ -286,6 +318,17 @@ please check out [this feature request][issue-render-notebooks] in the `cookiecu ### Building the docs locally +:::{important} +The docs include a git submodule (`docs/notebooks` → `spatialdata-plot-notebooks`). +If you cloned this repo without `--recurse-submodules`, initialise it once before building: + +```bash +git submodule update --init --recursive +``` + +Without the submodule, the gallery pages will be missing and sphinx will warn about broken toctree entries. +::: + :::::{tabs} ::::{group-tab} Hatch From 75de4cc448e061b3cec1f5efcd4f31caccd57ddb Mon Sep 17 00:00:00 2001 From: Tim Treis Date: Mon, 11 May 2026 17:35:38 +0200 Subject: [PATCH 4/4] Auto-pull notebooks main, add card gallery, link from README MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit C2 — Render notebooks-repo main, not the pinned SHA .readthedocs.yaml gains a `post_checkout` job that runs `git submodule update --init --remote --recursive` so RTD always renders the latest gallery without requiring a submodule-bump PR here. Mirrored in the docs CI job in build.yaml. Trade-off: docs at older lib tags are no longer bit-for-bit reproducible for the gallery. N1 — Card gallery with thumbnails (matches scverse/spatialdata) Add sphinx-design to doc deps and to the extension list. Rewrite gallery.md to use {grid}/{grid-item-card} with an :img-top: thumbnail. Thumbnail PNG (getting_started.png) committed under docs/_static/gallery. N6 — README points at the gallery New `link-gallery` link target alongside the existing API reference; existing spatialdata-notebooks link reframed as a "broader analyses" pointer. Fixes the "Visiualizations" typo while there. --- .github/workflows/build.yaml | 3 +++ .readthedocs.yaml | 6 +++++ README.md | 4 ++- docs/_static/gallery/getting_started.png | Bin 0 -> 85984 bytes docs/conf.py | 1 + docs/gallery.md | 30 +++++++++++++++++++++-- pyproject.toml | 1 + 7 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 docs/_static/gallery/getting_started.png diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 480dff50..9f3eafb7 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -32,6 +32,9 @@ jobs: with: submodules: true fetch-depth: 0 + - name: Pull latest notebooks + # Match RTD: render whatever is on notebooks-repo main, not the pinned SHA. + run: git submodule update --init --remote --recursive - name: Install uv uses: astral-sh/setup-uv@v7 - name: Build docs diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 203c8a2a..c5deab19 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -6,6 +6,12 @@ build: python: "3.13" nodejs: latest jobs: + post_checkout: + # Always render the latest notebooks-repo main, not the SHA pinned in + # this repo's index. Trade-off: docs at older lib tags are not bit-for-bit + # reproducible for the gallery — a re-build shows whatever the notebooks + # repo's main looked like at build time. + - git submodule update --init --remote --recursive create_environment: - asdf plugin add uv - asdf install uv latest diff --git a/README.md b/README.md index caa93e82..416fb521 100644 --- a/README.md +++ b/README.md @@ -30,8 +30,9 @@ In concordance with the general SpatialData philosophy, all modalities of the ma For more information on the `spatialdata-plot` library, please refer to the [documentation](https://spatialdata.scverse.org/projects/plot/en/latest/index.html). In particular, the +- [Gallery][link-gallery] — executable example notebooks demonstrating the plotting capabilities. - [API documentation][link-api]. -- [Example notebooks][link-notebooks] (section "Visiualizations") +- [SpatialData example notebooks][link-notebooks] (section "Visualizations") for plotting in the context of broader analyses. ## Installation @@ -65,6 +66,7 @@ Marconato, L., Palla, G., Yamauchi, K.A. et al. SpatialData: an open and univers [issue-tracker]: https://github.com/scverse/spatialdata-plot/issues [link-docs]: https://spatialdata-plot.readthedocs.io [link-api]: https://spatialdata.scverse.org/projects/plot/en/stable/api.html +[link-gallery]: https://spatialdata.scverse.org/projects/plot/en/stable/gallery.html [link-design-doc]: https://spatialdata.scverse.org/en/stable/design_doc.html [link-notebooks]: https://spatialdata.scverse.org/en/stable/tutorials/notebooks/notebooks.html [//]: # "numfocus-fiscal-sponsor-attribution" diff --git a/docs/_static/gallery/getting_started.png b/docs/_static/gallery/getting_started.png new file mode 100644 index 0000000000000000000000000000000000000000..68600f15642436da253552da371cfd36fa5ad029 GIT binary patch literal 85984 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�TCiljRA@;~ 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 literal 0 HcmV?d00001 diff --git a/docs/conf.py b/docs/conf.py index 393f82c0..fd5c69ce 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -56,6 +56,7 @@ "sphinx.ext.intersphinx", "sphinx.ext.autosummary", "sphinx.ext.napoleon", + "sphinx_design", "sphinxcontrib.bibtex", "sphinxcontrib.katex", "sphinx_autodoc_typehints", diff --git a/docs/gallery.md b/docs/gallery.md index 8dd4809a..e921d7d9 100644 --- a/docs/gallery.md +++ b/docs/gallery.md @@ -1,15 +1,41 @@ # Gallery Curated, runnable examples demonstrating `spatialdata-plot` on real -spatial-omics datasets (Visium, Xenium, MERFISH) and on the lightweight -`blobs` dataset for first-time users. +spatial-omics datasets and on the lightweight `blobs` dataset. Sources live in [`scverse/spatialdata-plot-notebooks`](https://github.com/scverse/spatialdata-plot-notebooks); every notebook is executable end-to-end and re-executed on a weekly schedule against the latest `spatialdata-plot` release. +## Tutorials + +End-to-end workflows on real datasets. + +::::{grid} 1 2 2 2 +:gutter: 3 + +:::{grid-item-card} Getting started +:link: notebooks/tutorials/getting_started +:link-type: doc +:img-top: _static/gallery/getting_started.png + +The fluent `.pl` API, layering, and styling — on the in-memory `blobs` +dataset. Ideal first read. +::: + +:::: + +## Examples + +```{note} +No focused examples yet — contributions welcome! See +[CONTRIBUTING](https://github.com/scverse/spatialdata-plot-notebooks/blob/main/CONTRIBUTING.md) +in the notebooks repo for how to add one. +``` + ```{toctree} +:hidden: :maxdepth: 2 notebooks/tutorials/index diff --git a/pyproject.toml b/pyproject.toml index bf21ab7b..7ebf7057 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,6 +55,7 @@ doc = [ "sphinx-autodoc-typehints", "sphinx-book-theme>=1", "sphinx-copybutton", + "sphinx-design", "sphinx-tabs", "sphinxcontrib-bibtex>=1", "sphinxcontrib-katex",