From 2bda6c4ea067aeec4a02403d917741489550eff4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Tue, 15 Jul 2025 21:59:14 -0400 Subject: [PATCH 01/16] CI(man): Generate Programmer's Manual with Doxygen in CI --- .github/workflows/documentation.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index b1a3d7e8daa..7ab55bf054e 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -35,7 +35,7 @@ jobs: - name: Get dependencies run: | sudo apt-get update -y - sudo apt-get install -y wget git gawk findutils + sudo apt-get install -y wget git gawk findutils doxygen graphviz xargs -a <(awk '! /^ *(#|$)/' "grass/.github/workflows/apt.txt") -r -- \ sudo apt-get install -y --no-install-recommends --no-install-suggests @@ -108,6 +108,21 @@ jobs: - name: Test executing of the grass command run: ./grass/.github/workflows/test_simple.sh + - name: Build Programmer's Manual with doxygen + run: | + cd grass + make htmldocs + + - name: Make the doxygen results available + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: doxygen-site + if-no-files-found: error + path: | + grass/html + grass/latex + retention-days: 3 + - name: Compile addons run: | ./grass-addons/utils/cronjobs_osgeo_lxd/compile_addons_git.sh \ From 055c977cd3b20d4d40e1c5e811d37d93819dea63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 12:57:55 +0000 Subject: [PATCH 02/16] CI(docs): Add `--with-nls` configure flag --- .github/workflows/documentation.yml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 7ab55bf054e..9985984fb70 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -95,7 +95,31 @@ jobs: - name: Build core run: | cd grass - ../grass/.github/workflows/build_ubuntu-22.04.sh "$HOME/install" + export INSTALL_PREFIX="$HOME/install" + ./configure \ + --enable-largefile \ + --prefix="$INSTALL_PREFIX/" \ + --with-blas \ + --with-bzlib \ + --with-cxx \ + --with-fftw \ + --with-freetype \ + --with-freetype-includes="/usr/include/freetype2/" \ + --with-geos \ + --with-lapack \ + --with-libsvm \ + --with-netcdf \ + --with-nls \ + --with-openmp \ + --with-pdal \ + --with-proj-share=/usr/share/proj \ + --with-pthread \ + --with-readline \ + --with-sqlite \ + --with-tiff \ + --with-zstd + make + make install - name: Add the bin directory to PATH run: | From e06328ce269b7cab620a7baeba9ec3e0a8272745 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 13:14:40 +0000 Subject: [PATCH 03/16] CI(docs) Add gettext to dependencies in documentation workflow --- .github/workflows/documentation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 9985984fb70..965b6052f23 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -35,7 +35,7 @@ jobs: - name: Get dependencies run: | sudo apt-get update -y - sudo apt-get install -y wget git gawk findutils doxygen graphviz + sudo apt-get install -y wget git gawk findutils doxygen graphviz gettext xargs -a <(awk '! /^ *(#|$)/' "grass/.github/workflows/apt.txt") -r -- \ sudo apt-get install -y --no-install-recommends --no-install-suggests From 107067249272ceecb8aa4bfae6ec3ba95d54ae20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 13:33:05 +0000 Subject: [PATCH 04/16] CI(docs): Enable postgres features for manual generation --- .github/workflows/documentation.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 965b6052f23..3fcb0f7e4b6 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -35,7 +35,11 @@ jobs: - name: Get dependencies run: | sudo apt-get update -y - sudo apt-get install -y wget git gawk findutils doxygen graphviz gettext + sudo apt-get install -y wget git gawk findutils \ + doxygen \ + gettext \ + graphviz \ + libpq-dev xargs -a <(awk '! /^ *(#|$)/' "grass/.github/workflows/apt.txt") -r -- \ sudo apt-get install -y --no-install-recommends --no-install-suggests @@ -112,6 +116,7 @@ jobs: --with-nls \ --with-openmp \ --with-pdal \ + --with-postgres \ --with-proj-share=/usr/share/proj \ --with-pthread \ --with-readline \ From f44dcf706c449ebce38d1320692af76eba042b27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 14:15:30 +0000 Subject: [PATCH 05/16] CI(docs): Set postgre include path --- .github/workflows/documentation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 3fcb0f7e4b6..22d395c5df2 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -116,7 +116,7 @@ jobs: --with-nls \ --with-openmp \ --with-pdal \ - --with-postgres \ + --with-postgres --with-postgres-includes=/usr/include/postgresql \ --with-proj-share=/usr/share/proj \ --with-pthread \ --with-readline \ From d28c812fcdc5c16c717cd40ae9b881282d882051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 14:17:41 +0000 Subject: [PATCH 06/16] CI(docs): Split configure and build of grass --- .github/workflows/documentation.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 22d395c5df2..7d7743ed01c 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -96,7 +96,7 @@ jobs: run: | echo "LD_LIBRARY_PATH=$HOME/install/lib" >> "$GITHUB_ENV" - - name: Build core + - name: Configure core run: | cd grass export INSTALL_PREFIX="$HOME/install" @@ -123,6 +123,11 @@ jobs: --with-sqlite \ --with-tiff \ --with-zstd + + - name: Build core + run: | + cd grass + export INSTALL_PREFIX="$HOME/install" make make install From 4493a1240400e7a766b90681b27a087213e446dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 14:18:53 +0000 Subject: [PATCH 07/16] CI(docs): Make doxygen docs before building grass, as a compilation isn't needed --- .github/workflows/documentation.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 7d7743ed01c..24499ce3a4d 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -124,6 +124,11 @@ jobs: --with-tiff \ --with-zstd + - name: Build Programmer's Manual with doxygen + run: | + cd grass + make htmldocs + - name: Build core run: | cd grass @@ -142,11 +147,6 @@ jobs: - name: Test executing of the grass command run: ./grass/.github/workflows/test_simple.sh - - name: Build Programmer's Manual with doxygen - run: | - cd grass - make htmldocs - - name: Make the doxygen results available uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: From 97c71e8d9c20f0cda61449ea2a0d5e58f66ef9b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 15:04:08 +0000 Subject: [PATCH 08/16] CI(docs): Enable odbc features for doxygen manual generation --- .github/workflows/documentation.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 24499ce3a4d..5f3d0ebc49d 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -39,7 +39,8 @@ jobs: doxygen \ gettext \ graphviz \ - libpq-dev + libpq-dev \ + unixodbc-dev xargs -a <(awk '! /^ *(#|$)/' "grass/.github/workflows/apt.txt") -r -- \ sudo apt-get install -y --no-install-recommends --no-install-suggests @@ -114,6 +115,7 @@ jobs: --with-libsvm \ --with-netcdf \ --with-nls \ + --with-odbc \ --with-openmp \ --with-pdal \ --with-postgres --with-postgres-includes=/usr/include/postgresql \ From eef389ffe5b9e496578e033568c2532d55ebad38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 15:31:20 +0000 Subject: [PATCH 09/16] CI(docs): Make doxygen docs artifact available as soon as finished --- .github/workflows/documentation.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 5f3d0ebc49d..1fa4565348e 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -131,6 +131,16 @@ jobs: cd grass make htmldocs + - name: Make the doxygen results available + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: doxygen-site + if-no-files-found: error + path: | + grass/html + grass/latex + retention-days: 3 + - name: Build core run: | cd grass @@ -149,16 +159,6 @@ jobs: - name: Test executing of the grass command run: ./grass/.github/workflows/test_simple.sh - - name: Make the doxygen results available - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: doxygen-site - if-no-files-found: error - path: | - grass/html - grass/latex - retention-days: 3 - - name: Compile addons run: | ./grass-addons/utils/cronjobs_osgeo_lxd/compile_addons_git.sh \ From dfcf7585e380210ff1609ddca0334862e1dc677b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 15:32:01 +0000 Subject: [PATCH 10/16] CI(docs): Disable bzlib for doxygen docs to match existing published docs --- .github/workflows/documentation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 1fa4565348e..e9a579f2fac 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -105,7 +105,7 @@ jobs: --enable-largefile \ --prefix="$INSTALL_PREFIX/" \ --with-blas \ - --with-bzlib \ + --with-bzlib=no \ --with-cxx \ --with-fftw \ --with-freetype \ From 0964841ed583e44f0a07e4e22e88b2c058102013 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 15:36:40 +0000 Subject: [PATCH 11/16] CI(docs): Upload doxygen html and latex artifacts separately --- .github/workflows/documentation.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index e9a579f2fac..26899b60858 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -131,13 +131,21 @@ jobs: cd grass make htmldocs - - name: Make the doxygen results available + - name: Make the doxygen results available (html) uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: doxygen-site if-no-files-found: error path: | grass/html + retention-days: 3 + + - name: Make the doxygen results available (latex) + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: doxygen-site-latex + if-no-files-found: error + path: | grass/latex retention-days: 3 From 5bae356e712f5542ab8f0bfa621a3ca77e257159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 16:30:32 +0000 Subject: [PATCH 12/16] CI(docs): Only run doxygen after build as lex/yacc files are generated during build --- .github/workflows/documentation.yml | 34 ++++++++++++----------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 26899b60858..01d377b13d2 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -97,7 +97,7 @@ jobs: run: | echo "LD_LIBRARY_PATH=$HOME/install/lib" >> "$GITHUB_ENV" - - name: Configure core + - name: Build core run: | cd grass export INSTALL_PREFIX="$HOME/install" @@ -125,6 +125,19 @@ jobs: --with-sqlite \ --with-tiff \ --with-zstd + make + make install + + - name: Add the bin directory to PATH + run: | + echo "$HOME/install/bin" >> "$GITHUB_PATH" + + - name: Print installed versions + if: always() + run: ./grass/.github/workflows/print_versions.sh + + - name: Test executing of the grass command + run: ./grass/.github/workflows/test_simple.sh - name: Build Programmer's Manual with doxygen run: | @@ -148,25 +161,6 @@ jobs: path: | grass/latex retention-days: 3 - - - name: Build core - run: | - cd grass - export INSTALL_PREFIX="$HOME/install" - make - make install - - - name: Add the bin directory to PATH - run: | - echo "$HOME/install/bin" >> "$GITHUB_PATH" - - - name: Print installed versions - if: always() - run: ./grass/.github/workflows/print_versions.sh - - - name: Test executing of the grass command - run: ./grass/.github/workflows/test_simple.sh - - name: Compile addons run: | ./grass-addons/utils/cronjobs_osgeo_lxd/compile_addons_git.sh \ From 0ab80f0706a90146629df401c134a447abec0410 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 16:02:00 +0000 Subject: [PATCH 13/16] CI(docs): Disable openmp for doxygen docs to match existing published docs --- .github/workflows/documentation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 01d377b13d2..4c9cbcc4497 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -116,7 +116,7 @@ jobs: --with-netcdf \ --with-nls \ --with-odbc \ - --with-openmp \ + --with-openmp=no \ --with-pdal \ --with-postgres --with-postgres-includes=/usr/include/postgresql \ --with-proj-share=/usr/share/proj \ From d04a9ba63294a01c7d4ad120783b6a0e8271a2a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 16:48:52 +0000 Subject: [PATCH 14/16] CI(docs): Disable pthread for doxygen docs to match existing published docs --- .github/workflows/documentation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 4c9cbcc4497..8e599375d09 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -120,7 +120,7 @@ jobs: --with-pdal \ --with-postgres --with-postgres-includes=/usr/include/postgresql \ --with-proj-share=/usr/share/proj \ - --with-pthread \ + --with-pthread=no \ --with-readline \ --with-sqlite \ --with-tiff \ From a547ba4464cd58ca37425981c8b8e88e45d75395 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 17:23:32 +0000 Subject: [PATCH 15/16] CI(docs): Disable readline for doxygen docs to match existing published docs --- .github/workflows/documentation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 8e599375d09..e5e1f787da4 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -121,7 +121,7 @@ jobs: --with-postgres --with-postgres-includes=/usr/include/postgresql \ --with-proj-share=/usr/share/proj \ --with-pthread=no \ - --with-readline \ + --with-readline=no \ --with-sqlite \ --with-tiff \ --with-zstd From a720e2973731667168575699d90e46a37bc1e9e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edouard=20Choini=C3=A8re?= <27212526+echoix@users.noreply.github.com> Date: Sun, 20 Jul 2025 18:17:29 +0000 Subject: [PATCH 16/16] CI(docs): Exclude map and md5 files from doxygen artifact uploads --- .github/workflows/documentation.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index e5e1f787da4..fd21ba6cec8 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -151,6 +151,8 @@ jobs: if-no-files-found: error path: | grass/html + !grass/html/**.map + !grass/html/**.md5 retention-days: 3 - name: Make the doxygen results available (latex) @@ -160,6 +162,8 @@ jobs: if-no-files-found: error path: | grass/latex + !grass/latex/**.map + !grass/latex/**.md5 retention-days: 3 - name: Compile addons run: |