From 434e4a224acf48b9b2648eda393e56b5d22f2e9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 7 Aug 2024 13:09:37 +0200 Subject: [PATCH] coin: Clean up documentation builders MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We have two builds we need to cover: 1. Documentation testing, aka 'DocTests' feature This feature builds docs for every submodule during module integration, using externally provisioned doc tools. 2. Offline documentation building, aka 'Documentation' feature This feature builds documentation for use in e.g. Qt Creator For both these builds we only need a single config to handle them. The initial configs were based on Ubuntu 22.04, but with the addition of Ubuntu 24.04, and splitting up X11 and Wayland testing, these configs multiplied, which is not needed. The inclusion of 'documentation' in the various test configs was also needlessly confusing when e.g. looking at test failure results in Grafana. The previously named 'documentation' configs for Ubuntu have been renamed to 'developer-build', as this is the significant difference to the non-developer-build config. There's still two issues with these configuration: 1. The DocTests configuration also runs the Qt auto tests. The DoNotRunTests and DisableTests feature flags would seem to be relevant for skipping the auto-test step in the coin test instructions, but these are hard coded in coin to skip the entire test workitem. 2. The offline doc builder builds Qt and tools from scratch A better approach would be to depend on another build and just configure and build docs, but doing so requires more investigation. Change-Id: I5a041dec697424b85d3b1588cd6e77a80551d2eb Reviewed-by: Topi Reiniƶ --- coin/platform_configs/cmake_platforms.yaml | 36 +++++++++++++------ .../nightly_ubuntu_22_04_xwayland.yaml | 2 +- coin/platform_configs/precheck.yaml | 4 +-- coin/platform_configs/qt5.yaml | 11 ++++++ .../qtsaferenderer-runtime.yaml | 2 +- coin/platform_configs/qtsaferenderer.yaml | 2 +- coin/platform_configs/qtwayland.yaml | 14 ++++---- .../tqtc-android-automotive.yaml | 4 +-- 8 files changed, 50 insertions(+), 25 deletions(-) diff --git a/coin/platform_configs/cmake_platforms.yaml b/coin/platform_configs/cmake_platforms.yaml index 34ece173..862124c7 100644 --- a/coin/platform_configs/cmake_platforms.yaml +++ b/coin/platform_configs/cmake_platforms.yaml @@ -9,10 +9,10 @@ Include: [ Configurations: # Build on Ubuntu 22.04 and test on both X11 and Wayland later - - Id: 'ubuntu-22.04-documentation' + Id: 'ubuntu-22.04-developer-build' Template: 'qtci-linux-Ubuntu-22.04-x86_64-51' Compiler: 'GCC' - Features: ['Sccache', 'Documentation', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples'] + Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples'] Configure arguments: '-make examples -developer-build -c++std c++20 -linker gold -qtlibinfix TestInfix -qtnamespace TestNamespace' Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE'] - @@ -27,11 +27,11 @@ Configurations: ] # Test on Ubuntu 22.04 X11 - - Id: 'ubuntu-22.04-documentation-x11-tests' + Id: 'ubuntu-22.04-developer-build-x11-tests' Template: 'qtci-linux-Ubuntu-22.04-x86_64-51' Compiler: 'GCC' - Features: ['Sccache', 'TestDocs', 'TestOnly'] - Platform dependency: 'ubuntu-22.04-documentation' + Features: ['Sccache', 'TestOnly'] + Platform dependency: 'ubuntu-22.04-developer-build' - Id: 'ubuntu-22.04-x11-tests' Template: 'qtci-linux-Ubuntu-22.04-x86_64-51' @@ -40,10 +40,10 @@ Configurations: Platform dependency: 'ubuntu-22.04' # Build on Ubuntu 24.04 ARM64 Wayland and test on offscreen and Wayland later - - Id: 'ubuntu-24.04-arm64-documentation' + Id: 'ubuntu-24.04-arm64-developer-build' Template: 'qtci-linux-Ubuntu-24.04-aarch64-50' Compiler: 'GCC' - Features: ['Documentation', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples'] + Features: ['UseConfigure', 'DoNotRunTests', 'StandaloneExamples'] Configure arguments: '-make examples -developer-build -c++std c++20 -linker gold -qtlibinfix TestInfix -qtnamespace TestNamespace -qpa offscreen\;xcb' Environment variables: [ 'COMMON_TEST_CMAKE_ARGS=-DQT_SKIP_DOCKER_COMPOSE=ON', @@ -74,10 +74,10 @@ Configurations: Platform dependency: 'ubuntu-24.04-arm64' # Build on Ubuntu 24.04 x64 Wayland and test on both X11 and Wayland (Wayland=default) - - Id: 'ubuntu-24.04-x64-documentation' + Id: 'ubuntu-24.04-x64-developer-build' Template: 'qtci-linux-Ubuntu-24.04-x86_64-50' Compiler: 'GCC' - Features: ['Sccache', 'Documentation', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples'] + Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples'] Configure arguments: '-make examples -developer-build -c++std c++20 -linker gold -qtlibinfix TestInfix -qtnamespace TestNamespace' Environment variables: [ 'COMMON_TEST_CMAKE_ARGS=-DQT_SKIP_DOCKER_COMPOSE=ON', @@ -96,11 +96,11 @@ Configurations: ] # Test on Ubuntu 24.04 x64 X11 - - Id: 'ubuntu-24.04-x64-documentation-x11-tests' + Id: 'ubuntu-24.04-x64-developer-build-x11-tests' Template: 'qtci-linux-Ubuntu-24.04-x86_64-51' Compiler: 'GCC' Features: ['Sccache', 'TestOnly', 'InsignificantTests'] - Platform dependency: 'ubuntu-24.04-x64-documentation' + Platform dependency: 'ubuntu-24.04-x64-developer-build' - Id: 'ubuntu-24.04-x64-x11-tests' Template: 'qtci-linux-Ubuntu-24.04-x86_64-51' @@ -284,3 +284,17 @@ Configurations: 'COIN_EXTRA_DEBIAN_REPO=deb http://archive.ubuntu.com/ubuntu/ jammy main universe multiverse', 'COIN_SKIP_DEBIAN_MODULES=qt5 qtqa qtactiveqt qtdoc qtwebengine qtwebview', ] + +- + # This configuration runs for every submodule, using externally + # built qdoc and qattributionscanner binaries, to ensure that no + # new qdoc warnings are introduced. The resulting documentation + # is not used for anything (neither online or offline docs). See + # qt5.yaml for a config that builds offline docs. + # FIXME: Add feature flag that avoids running the Qt auto tests + Id: 'documentation-warnings' + Template: 'qtci-linux-Ubuntu-22.04-x86_64-51' + Compiler: 'GCC' + Features: ['Sccache', 'TestOnly', 'TestDocs'] + Platform dependency: 'ubuntu-22.04' + diff --git a/coin/platform_configs/nightly_ubuntu_22_04_xwayland.yaml b/coin/platform_configs/nightly_ubuntu_22_04_xwayland.yaml index 16371a08..fc98b559 100644 --- a/coin/platform_configs/nightly_ubuntu_22_04_xwayland.yaml +++ b/coin/platform_configs/nightly_ubuntu_22_04_xwayland.yaml @@ -4,7 +4,7 @@ Configurations: # cmake_platforms.yaml Template: 'qtci-linux-Ubuntu-22.04-x86_64-50' Compiler: 'GCC' - Features: ['Sccache', 'Documentation', 'TestDocs', 'UseConfigure', 'StandaloneExamples'] + Features: ['Sccache', 'TestDocs', 'UseConfigure', 'StandaloneExamples'] Configure arguments: '-make examples -developer-build -c++std c++20 -qtlibinfix TestInfix -qtnamespace TestNamespace' - Id: 'Ubuntu-22.04-xwayland-host' diff --git a/coin/platform_configs/precheck.yaml b/coin/platform_configs/precheck.yaml index daf51dea..b6a02859 100644 --- a/coin/platform_configs/precheck.yaml +++ b/coin/platform_configs/precheck.yaml @@ -3,8 +3,8 @@ Module only: True Include: [ cmake_platforms.yaml: [ "ubuntu-22.04", - "ubuntu-22.04-documentation", - "ubuntu-22.04-documentation-x11-tests", + "ubuntu-22.04-developer-build", + "ubuntu-22.04-developer-build-x11-tests", "windows-11_23H2-msvc2022", "ios-universal" ], diff --git a/coin/platform_configs/qt5.yaml b/coin/platform_configs/qt5.yaml index 512c7051..e1f530e4 100644 --- a/coin/platform_configs/qt5.yaml +++ b/coin/platform_configs/qt5.yaml @@ -14,3 +14,14 @@ Configurations: 'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY' ] Platform dependency: 'debian-11.6-arm64' + +- + # This configuration builds offline documentation for use in + # e.g. Qt Creator. It uses qdoc and qtattributionscanner from + # the same build. See also the 'documentation-warnings' config. + # FIXME: Add dependency on existing build for tools + Id: 'offline-documentation' + Template: 'qtci-linux-Ubuntu-22.04-x86_64-51' + Compiler: 'GCC' + Features: ['Sccache', 'DoNotRunTests', 'Documentation', 'UseConfigure'] + Configure arguments: '-developer-build -nomake examples -nomake tests -linker gold' diff --git a/coin/platform_configs/qtsaferenderer-runtime.yaml b/coin/platform_configs/qtsaferenderer-runtime.yaml index d2629997..29d36e88 100644 --- a/coin/platform_configs/qtsaferenderer-runtime.yaml +++ b/coin/platform_configs/qtsaferenderer-runtime.yaml @@ -7,7 +7,7 @@ Include: [ ], cmake_platforms.yaml: [ "ubuntu-22.04", - "ubuntu-22.04-documentation", + "ubuntu-22.04-developer-build", "opensuse-15.5-developer-build", "sles-15_sp5-static", "windows-10_22h2-msvc2022", diff --git a/coin/platform_configs/qtsaferenderer.yaml b/coin/platform_configs/qtsaferenderer.yaml index b27c3114..70b1ece9 100644 --- a/coin/platform_configs/qtsaferenderer.yaml +++ b/coin/platform_configs/qtsaferenderer.yaml @@ -7,7 +7,7 @@ Include: [ ], cmake_platforms.yaml: [ "ubuntu-22.04", - "ubuntu-22.04-documentation", + "ubuntu-22.04-developer-build", "opensuse-15.5-developer-build", "sles-15_sp5-static", "windows-10_22h2-msvc2022", diff --git a/coin/platform_configs/qtwayland.yaml b/coin/platform_configs/qtwayland.yaml index d2781a34..351cba52 100644 --- a/coin/platform_configs/qtwayland.yaml +++ b/coin/platform_configs/qtwayland.yaml @@ -6,11 +6,11 @@ Include: [ Configurations: # Test on Ubuntu 22.04 Wayland - - Id: 'ubuntu-22.04-documentation-wayland-tests' + Id: 'ubuntu-22.04-developer-build-wayland-tests' Template: 'qtci-linux-Ubuntu-22.04-x86_64-50' Compiler: 'GCC' - Features: ['Sccache', 'TestDocs', 'TestOnly', 'RunDependencyTests', 'InsignificantTests'] - Platform dependency: 'ubuntu-22.04-documentation' + Features: ['Sccache', 'TestOnly', 'RunDependencyTests', 'InsignificantTests'] + Platform dependency: 'ubuntu-22.04-developer-build' - Id: 'ubuntu-22.04-wayland-tests' Template: 'qtci-linux-Ubuntu-22.04-x86_64-50' @@ -19,11 +19,11 @@ Configurations: Platform dependency: 'ubuntu-22.04' # Test on Ubuntu 24.04 ARM64 Wayland - - Id: 'ubuntu-24.04-arm64-documentation-wayland-tests' + Id: 'ubuntu-24.04-arm64-developer-build-wayland-tests' Template: 'qtci-linux-Ubuntu-24.04-aarch64-50' Compiler: 'GCC' Features: ['TestOnly', 'RunDependencyTests', 'InsignificantTests'] - Platform dependency: 'ubuntu-24.04-arm64-documentation' + Platform dependency: 'ubuntu-24.04-arm64-developer-build' - Id: 'ubuntu-24.04-arm64-wayland-tests' Template: 'qtci-linux-Ubuntu-24.04-aarch64-50' @@ -32,11 +32,11 @@ Configurations: Platform dependency: 'ubuntu-24.04-arm64' # Test on Ubuntu 24.04 x64 Wayland - - Id: 'ubuntu-24.04-x64-documentation-wayland-tests' + Id: 'ubuntu-24.04-x64-developer-build-wayland-tests' Template: 'qtci-linux-Ubuntu-24.04-x86_64-50' Compiler: 'GCC' Features: ['TestOnly', 'RunDependencyTests', 'InsignificantTests'] - Platform dependency: 'ubuntu-24.04-x64-documentation' + Platform dependency: 'ubuntu-24.04-x64-developer-build' - Id: 'ubuntu-24.04-x64-wayland-tests' Template: 'qtci-linux-Ubuntu-24.04-x86_64-50' diff --git a/coin/platform_configs/tqtc-android-automotive.yaml b/coin/platform_configs/tqtc-android-automotive.yaml index 84543678..4a2ebd21 100644 --- a/coin/platform_configs/tqtc-android-automotive.yaml +++ b/coin/platform_configs/tqtc-android-automotive.yaml @@ -3,8 +3,8 @@ Include: [ cmake_platforms.yaml: [ "rhel-8.10", 'windows-10_22h2-mingw13', - 'ubuntu-22.04-documentation', - 'ubuntu-22.04-documentation-x11-tests' + 'ubuntu-22.04-developer-build', + 'ubuntu-22.04-developer-build-x11-tests' ], macos.yaml: [ 'macos-universal-on-x86_64'