From 75d0f8ce7cbac89c19b64abf633105b4b01c02aa Mon Sep 17 00:00:00 2001
From: Frederik Hennig <frederik.hennig@fau.de>
Date: Tue, 14 Jan 2025 14:12:24 +0100
Subject: [PATCH] add ipywidgets dependency to doc group. Add options for docs
 session.

---
 .gitlab-ci.yml |  2 +-
 noxfile.py     | 15 +++++++++++++--
 pyproject.toml |  1 +
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4cb4fd0c5..c6287f237 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -310,7 +310,7 @@ build-documentation:
   stage: docs
   needs: []
   script:
-    - nox --session docs
+    - nox --session docs -- --fail-on-warnings
   tags:
     - docker
     - cuda11
diff --git a/noxfile.py b/noxfile.py
index 18b533554..1b882478a 100644
--- a/noxfile.py
+++ b/noxfile.py
@@ -54,7 +54,7 @@ def install_cupy(
 def check_external_doc_dependencies(session: nox.Session):
     dot_args = ["dot", "--version"]
     try:
-        _ = subprocess.run(dot_args)
+        _ = subprocess.run(dot_args, capture_output=True)
     except FileNotFoundError:
         session.error(
             "Unable to build documentation: "
@@ -119,5 +119,16 @@ def docs(session: nox.Session):
     check_external_doc_dependencies(session)
     install_cupy(session, "12.3")
     editable_install(session, ["doc"])
+
+    env = {}
+
+    session_args = session.posargs
+    if "--fail-on-warnings" in session_args:
+        env["SPHINXOPTS"] = "-W --keep-going"
+
     session.chdir("docs")
-    session.run("make", "html", external=True, env={"SPHINXOPTS": "-W --keep-going"})
+
+    if "--clean" in session_args:
+        session.run("make", "clean", external=True)
+
+    session.run("make", "html", external=True, env=env)
diff --git a/pyproject.toml b/pyproject.toml
index c540ca1e9..59e71b8db 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -59,6 +59,7 @@ doc = [
     'sphinx_design',
     'myst-nb',
     'matplotlib',
+    'ipywidgets',
     'graphviz',
 ]
 testsuite = [
-- 
GitLab