{"id":23972,"url":"https://patchwork.libcamera.org/api/1.1/patches/23972/?format=json","web_url":"https://patchwork.libcamera.org/patch/23972/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20250725175107.2301710-1-kieran.bingham@ideasonboard.com>","date":"2025-07-25T17:51:04","name":"[RFC] documentation: Split documentation build task","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"c571fb3102f69fd793755707f7866e77293a98ac","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/1.1/people/4/?format=json","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/23972/mbox/","series":[{"id":5335,"url":"https://patchwork.libcamera.org/api/1.1/series/5335/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5335","date":"2025-07-25T17:51:04","name":"[RFC] documentation: Split documentation build task","version":1,"mbox":"https://patchwork.libcamera.org/series/5335/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/23972/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/23972/checks/","tags":{},"headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id B9B18BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 25 Jul 2025 17:51:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EC5E56910A;\n\tFri, 25 Jul 2025 19:51:13 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 03349690A6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 25 Jul 2025 19:51:12 +0200 (CEST)","from Monstersaurus.lan\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D850DC66;\n\tFri, 25 Jul 2025 19:50:32 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"T9v1gLC7\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1753465833;\n\tbh=Qjk/TDfx8BqgLOiLkQfXHMEtxzKtNvrwATxY4wwiO68=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=T9v1gLC77hei1M9BAZDe2XRkBTIhs8+q2Y6TyG9DsUywYS9/M5VC3IMydXiwr5kmp\n\td7UQ4RkQzCf814zyMllrVJxz+K4aNLJgJeVTJfEdPWI9ygP5vb4kPlELUxB2Emn3vc\n\thDBbAAIizIfH1six/KArfkywHFRAB0HGxwA76yGQ=","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"libcamera devel <libcamera-devel@lists.libcamera.org>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Subject":"[RFC PATCH] documentation: Split documentation build task","Date":"Fri, 25 Jul 2025 18:51:04 +0100","Message-ID":"<20250725175107.2301710-1-kieran.bingham@ideasonboard.com>","X-Mailer":"git-send-email 2.49.0","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Update the CI to split out the documentation task and include a\nlink-check call.\n\nSigned-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n\nI can't currently get a clean run on the link-check so ... this isn't\nmergeable yet - but posting for RFC already so that in the event we\ncould clean up the linkcheck we could include it to prevent link\nregressions creeping in.\n\nI do also like the idea of splitting out the doxygen build anyway so\nthat documentation failures aren't shown simply in a GCC 12 build...\n\n .gitlab-ci/build-documentation.sh | 28 ++++++++++++++++++++++++++++\n gitlab-ci.yml                     | 20 ++++++++++++++++++--\n 2 files changed, 46 insertions(+), 2 deletions(-)\n create mode 100755 .gitlab-ci/build-documentation.sh","diff":"diff --git a/.gitlab-ci/build-documentation.sh b/.gitlab-ci/build-documentation.sh\nnew file mode 100755\nindex 000000000000..33484bd48c0a\n--- /dev/null\n+++ b/.gitlab-ci/build-documentation.sh\n@@ -0,0 +1,28 @@\n+#!/bin/bash\n+\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: © 2025 Kieran Bingham <kieran.bingham@ideasonboard.com>\n+#\n+# Build libcamera Documentation only and perform a link check\n+\n+set -e\n+\n+source \"$(dirname \"$0\")/lib.sh\"\n+source \"$(dirname \"$0\")/build-libcamera-common.sh\"\n+\n+libcamera_documentation() {\n+\techo \"Building libcamera documentation\"\n+\n+\tmeson compile -C build documentation\n+}\n+\n+libcamera_documentation_linkcheck() {\n+\techo \"Documentation link-check\"\n+\n+\tmeson compile -C build documentation-linkcheck\n+}\n+\n+run libcamera_install_pkgs collapsed\n+run libcamera_setup collapsed\n+run libcamera_documentation\n+run libcamera_documentation_linkcheck\ndiff --git a/gitlab-ci.yml b/gitlab-ci.yml\nindex ceb0fd215b89..777456529ac3 100644\n--- a/gitlab-ci.yml\n+++ b/gitlab-ci.yml\n@@ -170,7 +170,6 @@ build-full:debian:12:\n   variables:\n     MESON_OPTIONS: >-\n       ${MESON_ALL_OPTIONS}\n-      -D doc_werror=true\n   parallel:\n     matrix:\n       - ARCH: amd64\n@@ -312,9 +311,26 @@ build-package:cros:\n       dotenv: env\n \n # ------------------------------------------------------------------------------\n-# Lint stage - Run checkstyle.py and check merge suitability\n+# Lint stage - Run checkstyle.py and check merge suitability and validate Docs\n # ------------------------------------------------------------------------------\n \n+documentation:\n+  extends:\n+    - .fdo.distribution-image@debian\n+    - .libcamera-ci.scripts\n+    - .libcamera-ci.debian:12\n+  stage: lint\n+  needs:\n+    - job: container-debian:12\n+      artifacts: false\n+  script:\n+    - $CI_PROJECT_DIR/.gitlab-ci/build-documentation.sh\n+  variables:\n+    BUILD_TYPE: release\n+    MESON_OPTIONS: >-\n+      ${MESON_ALL_OPTIONS}\n+      -D doc_werror=true\n+\n lint:\n   extends:\n     - .fdo.distribution-image@debian\n","prefixes":["RFC"]}