From d3b8ec9fc323dbea1a866d29377a9031481d0f8b Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 09:53:27 +0200 Subject: [PATCH 01/45] new CI test with system MPI and local t8code --- .github/workflows/ci.yml | 169 +++++++++++++++++++++++++++++++++++++ .github/workflows/test.yml | 74 ---------------- 2 files changed, 169 insertions(+), 74 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9c37179 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,169 @@ +name: Run tests + +on: + push: + branches: + - main + paths-ignore: + - 'AUTHORS.md' + - 'CONTRIBUTING.md' + - 'LICENSE.md' + - 'NEWS.md' + - 'README.md' + - '.github/workflows/Downgrade.yml' + - '.github/workflows/FormatCheck.yml' + - '.github/workflows/SpellCheck.yml' + - '.github/workflows/TagBot.yml' + - '.github/dependabot.yml' + - '.gitignore' + pull_request: + paths-ignore: + - '.github/workflows/Downgrade.yml' + - '.github/workflows/FormatCheck.yml' + - '.github/workflows/SpellCheck.yml' + - '.github/workflows/TagBot.yml' + - '.github/dependabot.yml' + - '.gitignore' + workflow_dispatch: + inputs: + debug_enabled: + type: boolean + description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)' + required: false + default: false + +# Cancel redundant CI tests automatically +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + if: "!contains(github.event.head_commit.message, 'skip ci')" + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + julia-version: ['1.10', '1', 'nightly'] + julia-arch: [x64, x86] + os: [ubuntu-latest, windows-latest] + mpi-provider: [JLL_MPI] + t8code_version: ['4.0.0'] + t8code_snapshot: ['26.07'] + include: + - julia-version: '1.10' + julia-arch: 'default' + os: macos-latest + mpi-provider: JLL_MPI + t8code_version: '4.0.0' + t8code_snapshot: '26.07 + - julia-version: '1' + julia-arch: 'default' + os: macos-latest + mpi-provider: JLL_MPI + t8code_version: '4.0.0' + t8code_snapshot: '26.07 + - julia-version: 'nightly' + julia-arch: 'default' + os: macos-latest + mpi-provider: JLL_MPI + t8code_version: '4.0.0' + t8code_snapshot: '26.07 + - julia-version: '1.10' + julia-arch: 'default' + os: ubuntu-latest + mpi-provider: SYSTEM_MPI + t8code_version: '4.0.0' + t8code_snapshot: '26.07 + - julia-version: '1' + julia-arch: 'default' + os: ubuntu-latest + mpi-provider: SYSTEM_MPI + t8code_version: '4.0.0' + t8code_snapshot: '26.07 + - julia-version: 'nightly' + julia-arch: 'default' + os: ubuntu-latest + mpi-provider: SYSTEM_MPI + t8code_version: '4.0.0' + t8code_snapshot: '26.07 + steps: + - name: Checkout repository + uses: actions/checkout@v7 + + - name: Enable Julia cache + uses: julia-actions/cache@v3 + + - name: Enable t8code cache + if: matrix.mpi-provider == 'SYSTEM_MPI' + id: cache-t8code + uses: actions/cache@v6 + with: + path: ./t8code-local + key: ${{ matrix.os }}-${{ matrix.julia-arch }}-${{ matrix.t8code_version }}-${{ matrix.t8code_snapshot }} + + - name: Install Julia + uses: julia-actions/setup-julia@v3 + with: + version: ${{ matrix.julia-version }} + arch: ${{ matrix.julia-arch }} + show-versioninfo: true + + - name: Install system MPI library + if: matrix.mpi-provider == 'SYSTEM_MPI' + run: | + sudo apt-get update + sudo apt-get install -y openmpi-bin libopenmpi-dev + + - name: Install t8code + if: matrix.mpi-provider == 'SYSTEM_MPI' && steps.cache-t8code.outputs.cache-hit != 'true' + run: | + T8CODE_RELEASE=${{ matrix.t8code_version }} + mkdir t8code-local + cd t8code-local + wget https://github.com/DLR-AMR/t8code/releases/download/v${T8CODE_RELEASE}-${{ matrix.t8code_snapshot }}/T8CODE-${T8CODE_RELEASE}-Source.tar.gz + tar xf T8CODE-${T8CODE_RELEASE}-Source.tar.gz + mkdir build + cd build + cmake \ + -DCMAKE_C_COMPILER=mpicc \ + -DCMAKE_CXX_COMPILER=mpicxx \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="$PWD/../prefix" \ + -DT8CODE_BUILD_TESTS=OFF \ + -DBUILD_GMOCK=OFF \ + -DINSTALL_GTEST=OFF \ + -DT8CODE_BUILD_TUTORIALS=OFF \ + -DT8CODE_BUILD_EXAMPLES=OFF \ + -DT8CODE_BUILD_BENCHMARKS=OFF \ + -DT8CODE_ENABLE_MPI=ON \ + -DT8CODE_BUILD_FORTRAN_INTERFACE=ON \ + ../T8CODE-${T8CODE_RELEASE}-Source + make -j 2 + make install + + - name: Configure MPI.jl + if: matrix.mpi-provider == 'SYSTEM_MPI' + shell: julia --color=yes --project=test {0} + run: | + using Pkg + Pkg.instantiate() + + # Use system MPI + using MPIPreferences + MPIPreferences.use_system_binary(; force = true) + + # Use local t8code + using T8code + T8code.set_libraries_path!("../t8code-local/prefix/lib"; force = true) + + - name: Run Julia build step + uses: julia-actions/julia-buildpkg@v1 + + - name: Run Julia tests + uses: julia-actions/julia-runtest@v1 + + # Enable tmate debugging of manually-triggered workflows if the input option was provided + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + if: github.event_name == 'workflow_dispatch' && inputs.debug_enabled diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 1d1ab8e..0000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,74 +0,0 @@ -name: Run tests - -on: - push: - branches: - - main - paths-ignore: - - 'AUTHORS.md' - - 'CITATION.bib' - - 'CONTRIBUTING.md' - - 'LICENSE.md' - - 'NEWS.md' - - 'README.md' - - '.github/workflows/CompatHelper.yml' - - '.github/workflows/TagBot.yml' - - '.gitignore' - pull_request: - paths-ignore: - - 'AUTHORS.md' - - 'CITATION.bib' - - 'CONTRIBUTING.md' - - 'LICENSE.md' - - 'NEWS.md' - - 'README.md' - - '.github/workflows/CompatHelper.yml' - - '.github/workflows/TagBot.yml' - - '.gitignore' - workflow_dispatch: - inputs: - debug_enabled: - type: boolean - description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)' - required: false - default: false - -# Cancel redundant CI tests automatically -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - test: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - julia-version: ['1.10', '1', 'nightly'] - julia-arch: [x64, x86] - os: [ubuntu-latest, windows-latest] - include: - - julia-version: '1.10' - julia-arch: 'default' - os: macos-latest - - julia-version: '1' - julia-arch: 'default' - os: macos-latest - - julia-version: 'nightly' - julia-arch: 'default' - os: macos-latest - steps: - - uses: actions/checkout@v7 - - uses: julia-actions/setup-julia@v3 - with: - version: ${{ matrix.julia-version }} - arch: ${{ matrix.julia-arch }} - - uses: julia-actions/julia-buildpkg@v1 - - uses: julia-actions/julia-runtest@v1 - # with: - # annotate: true - continue-on-error: false - # Enable tmate debugging of manually-triggered workflows if the input option was provided - - name: Setup tmate session - uses: mxschmitt/action-tmate@v3 - if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }} From 55fb452aeb90989ab1c19ee89baa72af9b47f5f1 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 09:53:51 +0200 Subject: [PATCH 02/45] add NEWS.md --- NEWS.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 NEWS.md diff --git a/NEWS.md b/NEWS.md new file mode 100644 index 0000000..38b0ca0 --- /dev/null +++ b/NEWS.md @@ -0,0 +1,18 @@ +# Changelog + +T8code.jl follows the interpretation of +[semantic versioning (semver)](https://julialang.github.io/Pkg.jl/dev/compatibility/#Version-specifier-format-1) +used in the Julia ecosystem. Notable changes will be documented in this file +for human readability. + + +## Changes in the v0.9 lifecycle + +#### Added + +- Added `ExplicitImports` tests + +#### Changed + +- Updated to `Clang.jl` version 0.19 +- Based on t8code's July release From 4aa9f0a4681480f91270ae48a89d904ba489c77f Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 09:57:43 +0200 Subject: [PATCH 03/45] revert renaming --- .github/workflows/{ci.yml => test.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{ci.yml => test.yml} (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/test.yml similarity index 100% rename from .github/workflows/ci.yml rename to .github/workflows/test.yml From a2bc9ef0680fdc9d27ef36aafb2924c6f27e476a Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 10:09:23 +0200 Subject: [PATCH 04/45] add julia compat bound to test --- test/Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/test/Project.toml b/test/Project.toml index 8cdd8fe..28e6f8b 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -9,3 +9,4 @@ Aqua = "0.7, 0.8" MPI = "0.20.6" MPIPreferences = "0.1.6" Test = "1" +julia = "1.10" From 4bc34d9cbf16ba0c482a90a7ef2b9b6ad21f7435 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 10:11:17 +0200 Subject: [PATCH 05/45] typo using other list syntax now --- .github/workflows/test.yml | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9c37179..30bce21 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,49 +44,59 @@ jobs: strategy: fail-fast: false matrix: - julia-version: ['1.10', '1', 'nightly'] - julia-arch: [x64, x86] - os: [ubuntu-latest, windows-latest] - mpi-provider: [JLL_MPI] - t8code_version: ['4.0.0'] - t8code_snapshot: ['26.07'] + julia-version: + - '1.10' + - '1' + - 'nightly' + julia-arch: + - x64 + - x86 + os: + - ubuntu-latest + - windows-latest + mpi-provider: + - JLL_MPI + t8code_version: + - '4.0.0' + t8code_snapshot: + - '26.07' include: - julia-version: '1.10' julia-arch: 'default' os: macos-latest mpi-provider: JLL_MPI t8code_version: '4.0.0' - t8code_snapshot: '26.07 + t8code_snapshot: '26.07' - julia-version: '1' julia-arch: 'default' os: macos-latest mpi-provider: JLL_MPI t8code_version: '4.0.0' - t8code_snapshot: '26.07 + t8code_snapshot: '26.07' - julia-version: 'nightly' julia-arch: 'default' os: macos-latest mpi-provider: JLL_MPI t8code_version: '4.0.0' - t8code_snapshot: '26.07 + t8code_snapshot: '26.07' - julia-version: '1.10' julia-arch: 'default' os: ubuntu-latest mpi-provider: SYSTEM_MPI t8code_version: '4.0.0' - t8code_snapshot: '26.07 + t8code_snapshot: '26.07' - julia-version: '1' julia-arch: 'default' os: ubuntu-latest mpi-provider: SYSTEM_MPI t8code_version: '4.0.0' - t8code_snapshot: '26.07 + t8code_snapshot: '26.07' - julia-version: 'nightly' julia-arch: 'default' os: ubuntu-latest mpi-provider: SYSTEM_MPI t8code_version: '4.0.0' - t8code_snapshot: '26.07 + t8code_snapshot: '26.07' steps: - name: Checkout repository uses: actions/checkout@v7 From 90fb0dca4bd8b8ce5483e66c438b4c5f44e1e06c Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 10:18:53 +0200 Subject: [PATCH 06/45] try to dev T8code --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 30bce21..da8f65e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -164,6 +164,7 @@ jobs: MPIPreferences.use_system_binary(; force = true) # Use local t8code + Pkg.develop(path="..") using T8code T8code.set_libraries_path!("../t8code-local/prefix/lib"; force = true) From fb22326a80638f6c6792f26976dc82eec3a5df2c Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 10:27:06 +0200 Subject: [PATCH 07/45] relative to project --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index da8f65e..0773a58 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -164,7 +164,7 @@ jobs: MPIPreferences.use_system_binary(; force = true) # Use local t8code - Pkg.develop(path="..") + Pkg.develop(path=joinpath(Base.active_project(), "..")) using T8code T8code.set_libraries_path!("../t8code-local/prefix/lib"; force = true) From e3dbb10ac29245520d1597dafa08fe3a349947df Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 10:35:58 +0200 Subject: [PATCH 08/45] explicit arch --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0773a58..4418004 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -80,19 +80,19 @@ jobs: t8code_version: '4.0.0' t8code_snapshot: '26.07' - julia-version: '1.10' - julia-arch: 'default' + julia-arch: 'x64' os: ubuntu-latest mpi-provider: SYSTEM_MPI t8code_version: '4.0.0' t8code_snapshot: '26.07' - julia-version: '1' - julia-arch: 'default' + julia-arch: 'x64' os: ubuntu-latest mpi-provider: SYSTEM_MPI t8code_version: '4.0.0' t8code_snapshot: '26.07' - julia-version: 'nightly' - julia-arch: 'default' + julia-arch: 'x64' os: ubuntu-latest mpi-provider: SYSTEM_MPI t8code_version: '4.0.0' From e64707d38227233625cd89c99092d9e5490b14b8 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 10:36:19 +0200 Subject: [PATCH 09/45] use dirname --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4418004..d24c0fc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -164,7 +164,7 @@ jobs: MPIPreferences.use_system_binary(; force = true) # Use local t8code - Pkg.develop(path=joinpath(Base.active_project(), "..")) + Pkg.develop(path=joinpath(dirname(Base.active_project()), "..")) using T8code T8code.set_libraries_path!("../t8code-local/prefix/lib"; force = true) From d24cb7c2e9841f5674ffc0b4734101506cb9fbf7 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 10:36:39 +0200 Subject: [PATCH 10/45] wrong path? --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d24c0fc..1ba58df 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -166,7 +166,7 @@ jobs: # Use local t8code Pkg.develop(path=joinpath(dirname(Base.active_project()), "..")) using T8code - T8code.set_libraries_path!("../t8code-local/prefix/lib"; force = true) + T8code.set_libraries_path!("./t8code-local/prefix/lib"; force = true) - name: Run Julia build step uses: julia-actions/julia-buildpkg@v1 From 48228d926127bbd0cad06321112707e4d2049303 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 10:43:34 +0200 Subject: [PATCH 11/45] dev first? --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1ba58df..bf2e368 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -157,6 +157,7 @@ jobs: shell: julia --color=yes --project=test {0} run: | using Pkg + Pkg.develop(path=joinpath(dirname(Base.active_project()), "..")) Pkg.instantiate() # Use system MPI @@ -164,7 +165,6 @@ jobs: MPIPreferences.use_system_binary(; force = true) # Use local t8code - Pkg.develop(path=joinpath(dirname(Base.active_project()), "..")) using T8code T8code.set_libraries_path!("./t8code-local/prefix/lib"; force = true) From bdb6c6ded82e02e34f2bc2ec846053b2b51d066a Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 10:50:18 +0200 Subject: [PATCH 12/45] sequence --- .github/workflows/test.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bf2e368..3cbb565 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -160,12 +160,13 @@ jobs: Pkg.develop(path=joinpath(dirname(Base.active_project()), "..")) Pkg.instantiate() - # Use system MPI using MPIPreferences + using T8code + + # Use system MPI MPIPreferences.use_system_binary(; force = true) # Use local t8code - using T8code T8code.set_libraries_path!("./t8code-local/prefix/lib"; force = true) - name: Run Julia build step From 8c5739006467e130a435e057d83a353bc791ccc5 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 10:59:29 +0200 Subject: [PATCH 13/45] split configure steps --- .github/workflows/test.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3cbb565..bad19a1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -157,16 +157,21 @@ jobs: shell: julia --color=yes --project=test {0} run: | using Pkg - Pkg.develop(path=joinpath(dirname(Base.active_project()), "..")) Pkg.instantiate() - using MPIPreferences - using T8code - # Use system MPI + using MPIPreferences MPIPreferences.use_system_binary(; force = true) + - name: Configure T8code.jl + if: matrix.mpi-provider == 'SYSTEM_MPI' + shell: julia --color=yes --project=test {0} + run: | + using Pkg + Pkg.develop(path=joinpath(dirname(Base.active_project()), "..")) + # Use local t8code + using T8code T8code.set_libraries_path!("./t8code-local/prefix/lib"; force = true) - name: Run Julia build step From b641fd9a29cd07a872c9652c1f5edefefa7a37a1 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 11:11:42 +0200 Subject: [PATCH 14/45] OpenMPI 4 workaround --- .github/workflows/test.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bad19a1..bc97a4a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -101,6 +101,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 + - name: Set environment variables + shell: bash + run: | + echo "JULIA_MPI_PROVIDER=${{ matrix.mpi-provider }}" >> $GITHUB_ENV + - name: Enable Julia cache uses: julia-actions/cache@v3 @@ -170,6 +175,10 @@ jobs: using Pkg Pkg.develop(path=joinpath(dirname(Base.active_project()), "..")) + # Workaround + # https://github.com/trixi-framework/libtrixi/issues/237 + Pkg.add(name="OpenMPI_jll", version="4") + # Use local t8code using T8code T8code.set_libraries_path!("./t8code-local/prefix/lib"; force = true) From a20a02708075d9af6b83c49bc80aac558f8b3a8b Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 11:29:47 +0200 Subject: [PATCH 15/45] workaround needed in tests as well --- .github/workflows/test.yml | 4 ---- test/Project.toml | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bc97a4a..fdb0df8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -175,10 +175,6 @@ jobs: using Pkg Pkg.develop(path=joinpath(dirname(Base.active_project()), "..")) - # Workaround - # https://github.com/trixi-framework/libtrixi/issues/237 - Pkg.add(name="OpenMPI_jll", version="4") - # Use local t8code using T8code T8code.set_libraries_path!("./t8code-local/prefix/lib"; force = true) diff --git a/test/Project.toml b/test/Project.toml index 28e6f8b..2646619 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -2,11 +2,13 @@ Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" MPIPreferences = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" +OpenMPI_jll = "fe0851c0-eecd-5654-98d4-656369965a5c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] Aqua = "0.7, 0.8" MPI = "0.20.6" MPIPreferences = "0.1.6" +OpenMPI_jll = "4" Test = "1" julia = "1.10" From 2b9464da6764735af25ca993fe392c43c8f08762 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 11:45:31 +0200 Subject: [PATCH 16/45] add MPI testing file --- test/test_all.jl | 7 +++++++ test/test_init.jl | 4 ---- test/test_mpi.jl | 12 ++++++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 test/test_mpi.jl diff --git a/test/test_all.jl b/test/test_all.jl index cfc21da..787120d 100644 --- a/test/test_all.jl +++ b/test/test_all.jl @@ -17,6 +17,13 @@ comm = MPI.COMM_WORLD CI_ON_WINDOWS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.iswindows() CI_ON_MACOS = (get(ENV, "GITHUB_ACTIONS", false) == "true") && Sys.isapple() +# When run in CI, check if we are running with system MPI or Julia artifacts +JULIA_MPI_PROVIDER = get(ENV, "JULIA_MPI_PROVIDER", "JLL_MPI") + +@testset "MPI" begin + include("test_mpi.jl") +end + @testset "init" begin include("test_init.jl") end diff --git a/test/test_init.jl b/test/test_init.jl index 88d9e6b..a22a539 100644 --- a/test/test_init.jl +++ b/test/test_init.jl @@ -1,7 +1,3 @@ -@testset "T8code.uses_mpi" begin - @test T8code.uses_mpi() == true -end - @testset "T8code.init" begin @test_nowarn T8code.Libt8.sc_init(comm, 0, 1, C_NULL, SC_LP_DEFAULT) @test_nowarn t8_init(SC_LP_DEFAULT) diff --git a/test/test_mpi.jl b/test/test_mpi.jl new file mode 100644 index 0000000..1d40027 --- /dev/null +++ b/test/test_mpi.jl @@ -0,0 +1,12 @@ +@testset "Conditional loading of t8code_jll" + # TODO adapt once implemented + if JULIA_MPI_PROVIDER == "SYSTEM_MPI" + @test :t8code_jll in names(Main; imported=true) + else + @test :t8code_jll in names(Main; imported=true) + end +end + +@testset "T8code.uses_mpi" begin + @test T8code.uses_mpi() == true +end From c4adcf86a96f790787f14e55f6fca3345f4bafa2 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 15 Sep 2026 23:18:49 +0200 Subject: [PATCH 17/45] only load t8code_jll if preferences say so --- src/Libt8.jl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Libt8.jl b/src/Libt8.jl index 2c9c822..f6ed22f 100644 --- a/src/Libt8.jl +++ b/src/Libt8.jl @@ -7,10 +7,12 @@ to_c_type_pairs(va_list) = map(enumerate(to_c_type.(va_list))) do (ind, type) :(va_list[$ind]::$type) end -using t8code_jll: t8code_jll -export t8code_jll - using ..T8code: _PREFERENCE_LIBT8, _PREFERENCE_LIBP4EST, _PREFERENCE_LIBSC + +@static if _PREFERENCE_LIBT8 == "t8code_jll" || _PREFERENCE_LIBP4EST == "t8code_jll" || _PREFERENCE_LIBSC == "t8code_jll" + using t8code_jll: t8code_jll +end + using MPIPreferences: MPIPreferences @static if _PREFERENCE_LIBT8 == "t8code_jll" && MPIPreferences.binary == "system" From a7efdb8f3fc756213812473644be0fac19077097 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 11:49:00 +0200 Subject: [PATCH 18/45] remove workaround --- test/Project.toml | 2 -- test/test_mpi.jl | 9 ++------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/test/Project.toml b/test/Project.toml index 2646619..28e6f8b 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -2,13 +2,11 @@ Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" MPIPreferences = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" -OpenMPI_jll = "fe0851c0-eecd-5654-98d4-656369965a5c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] Aqua = "0.7, 0.8" MPI = "0.20.6" MPIPreferences = "0.1.6" -OpenMPI_jll = "4" Test = "1" julia = "1.10" diff --git a/test/test_mpi.jl b/test/test_mpi.jl index 1d40027..9fb80af 100644 --- a/test/test_mpi.jl +++ b/test/test_mpi.jl @@ -1,10 +1,5 @@ -@testset "Conditional loading of t8code_jll" - # TODO adapt once implemented - if JULIA_MPI_PROVIDER == "SYSTEM_MPI" - @test :t8code_jll in names(Main; imported=true) - else - @test :t8code_jll in names(Main; imported=true) - end +@testset "Conditional loading of t8code_jll" begin + @test (JULIA_MPI_PROVIDER == "SYSTEM_MPI") && !(:t8code_jll in names(Main; imported=true)) end @testset "T8code.uses_mpi" begin From f87e42d61ed66d305f8c735bbcc6d54b23e050e1 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 11:52:35 +0200 Subject: [PATCH 19/45] fix --- test/test_mpi.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_mpi.jl b/test/test_mpi.jl index 9fb80af..3865ea7 100644 --- a/test/test_mpi.jl +++ b/test/test_mpi.jl @@ -1,5 +1,5 @@ @testset "Conditional loading of t8code_jll" begin - @test (JULIA_MPI_PROVIDER == "SYSTEM_MPI") && !(:t8code_jll in names(Main; imported=true)) + @test (JULIA_MPI_PROVIDER == "SYSTEM_MPI") != (:t8code_jll in names(Main; imported=true)) end @testset "T8code.uses_mpi" begin From 0da9a67c9571526d198f9db85cd8f1aa6a9f6128 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 11:55:44 +0200 Subject: [PATCH 20/45] OpenMPI_jll v4 again --- test/Project.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/Project.toml b/test/Project.toml index 28e6f8b..2646619 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -2,11 +2,13 @@ Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" MPIPreferences = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" +OpenMPI_jll = "fe0851c0-eecd-5654-98d4-656369965a5c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] Aqua = "0.7, 0.8" MPI = "0.20.6" MPIPreferences = "0.1.6" +OpenMPI_jll = "4" Test = "1" julia = "1.10" From e968a65ccf19d0ccb35c23c578df21a58ae2f63a Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 12:09:09 +0200 Subject: [PATCH 21/45] check module T8code --- test/test_mpi.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_mpi.jl b/test/test_mpi.jl index 3865ea7..ae3eb09 100644 --- a/test/test_mpi.jl +++ b/test/test_mpi.jl @@ -1,5 +1,5 @@ @testset "Conditional loading of t8code_jll" begin - @test (JULIA_MPI_PROVIDER == "SYSTEM_MPI") != (:t8code_jll in names(Main; imported=true)) + @test (JULIA_MPI_PROVIDER == "SYSTEM_MPI") != (:t8code_jll in names(T8code; imported=true)) end @testset "T8code.uses_mpi" begin From 18949e73325e4f71d44cb32706fc4b644c274a74 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 12:09:22 +0200 Subject: [PATCH 22/45] skip aqua test when running with system MPI --- test/test_aqua.jl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/test_aqua.jl b/test/test_aqua.jl index 221a746..9212a09 100644 --- a/test/test_aqua.jl +++ b/test/test_aqua.jl @@ -4,8 +4,14 @@ using Aqua using Test using T8code -@testset "Aqua.jl" begin - Aqua.test_all(T8code) +# When run in CI, check if we are running with system MPI or Julia artifacts +JULIA_MPI_PROVIDER = get(ENV, "JULIA_MPI_PROVIDER", "JLL_MPI") + +# in case we are running with system MPI t8code_jll will not be loaded +if JULIA_MPI_PROVIDER == "JLL_MPI" + @testset "Aqua.jl" begin + Aqua.test_all(T8code) + end end end #module From 8d06b57a5dc5c20e508446f02879c45655b387f9 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 12:32:15 +0200 Subject: [PATCH 23/45] based on loaded_modules --- test/test_mpi.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/test_mpi.jl b/test/test_mpi.jl index ae3eb09..3390d66 100644 --- a/test/test_mpi.jl +++ b/test/test_mpi.jl @@ -1,5 +1,6 @@ @testset "Conditional loading of t8code_jll" begin - @test (JULIA_MPI_PROVIDER == "SYSTEM_MPI") != (:t8code_jll in names(T8code; imported=true)) + t8code_jll_loaded = any(m -> nameof(m) === :t8code_jll, values(Base.loaded_modules)) + @test (JULIA_MPI_PROVIDER == "SYSTEM_MPI") != t8code_jll_loaded end @testset "T8code.uses_mpi" begin From 35403bc5513b25f25abf0f7628cd6f0b1514cd77 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 12:52:44 +0200 Subject: [PATCH 24/45] lower bound reported by Downgrade --- test/Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Project.toml b/test/Project.toml index 2646619..58d13b5 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -9,6 +9,6 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Aqua = "0.7, 0.8" MPI = "0.20.6" MPIPreferences = "0.1.6" -OpenMPI_jll = "4" +OpenMPI_jll = "4.1.9" Test = "1" julia = "1.10" From d495f659ba41d532720a15c83bccc45607210a45 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 12:53:04 +0200 Subject: [PATCH 25/45] need absolute path --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fdb0df8..7179b2a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -177,7 +177,7 @@ jobs: # Use local t8code using T8code - T8code.set_libraries_path!("./t8code-local/prefix/lib"; force = true) + T8code.set_libraries_path!(abspath("./t8code-local/prefix/lib"); force = true) - name: Run Julia build step uses: julia-actions/julia-buildpkg@v1 From 630642151fea1854dabffdeba48a8bf63b28549d Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 13:05:57 +0200 Subject: [PATCH 26/45] check again --- .github/workflows/test.yml | 5 +++++ test/Project.toml | 2 -- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7179b2a..152cb36 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -173,6 +173,11 @@ jobs: shell: julia --color=yes --project=test {0} run: | using Pkg + + # Workaround + # https://github.com/trixi-framework/libtrixi/issues/237 + Pkg.add(name="OpenMPI_jll", version="4") + Pkg.develop(path=joinpath(dirname(Base.active_project()), "..")) # Use local t8code diff --git a/test/Project.toml b/test/Project.toml index 58d13b5..28e6f8b 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -2,13 +2,11 @@ Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" MPIPreferences = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" -OpenMPI_jll = "fe0851c0-eecd-5654-98d4-656369965a5c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] Aqua = "0.7, 0.8" MPI = "0.20.6" MPIPreferences = "0.1.6" -OpenMPI_jll = "4.1.9" Test = "1" julia = "1.10" From f4b4b60aea65f7efdee9be0b3512c58b66c1ef62 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 15:45:38 +0200 Subject: [PATCH 27/45] Revert "only load t8code_jll if preferences say so" This reverts commit c4adcf86a96f790787f14e55f6fca3345f4bafa2. --- src/Libt8.jl | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Libt8.jl b/src/Libt8.jl index f6ed22f..2c9c822 100644 --- a/src/Libt8.jl +++ b/src/Libt8.jl @@ -7,12 +7,10 @@ to_c_type_pairs(va_list) = map(enumerate(to_c_type.(va_list))) do (ind, type) :(va_list[$ind]::$type) end -using ..T8code: _PREFERENCE_LIBT8, _PREFERENCE_LIBP4EST, _PREFERENCE_LIBSC - -@static if _PREFERENCE_LIBT8 == "t8code_jll" || _PREFERENCE_LIBP4EST == "t8code_jll" || _PREFERENCE_LIBSC == "t8code_jll" - using t8code_jll: t8code_jll -end +using t8code_jll: t8code_jll +export t8code_jll +using ..T8code: _PREFERENCE_LIBT8, _PREFERENCE_LIBP4EST, _PREFERENCE_LIBSC using MPIPreferences: MPIPreferences @static if _PREFERENCE_LIBT8 == "t8code_jll" && MPIPreferences.binary == "system" From 0e4a4cd65f4dc631db749258ea8336133675a372 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 22 Sep 2026 16:28:49 +0200 Subject: [PATCH 28/45] free T8code package again afterwards --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 152cb36..6b20e3d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -178,11 +178,11 @@ jobs: # https://github.com/trixi-framework/libtrixi/issues/237 Pkg.add(name="OpenMPI_jll", version="4") + # Use local t8code, just to set the preferences Pkg.develop(path=joinpath(dirname(Base.active_project()), "..")) - - # Use local t8code using T8code T8code.set_libraries_path!(abspath("./t8code-local/prefix/lib"); force = true) + Pkg.free("T8code") - name: Run Julia build step uses: julia-actions/julia-buildpkg@v1 From 79ef50a12e098f276cbb962f28cdf483164ae8e6 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Tue, 15 Sep 2026 23:18:49 +0200 Subject: [PATCH 29/45] only load t8code_jll if preferences say so --- src/Libt8.jl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Libt8.jl b/src/Libt8.jl index 2c9c822..f6ed22f 100644 --- a/src/Libt8.jl +++ b/src/Libt8.jl @@ -7,10 +7,12 @@ to_c_type_pairs(va_list) = map(enumerate(to_c_type.(va_list))) do (ind, type) :(va_list[$ind]::$type) end -using t8code_jll: t8code_jll -export t8code_jll - using ..T8code: _PREFERENCE_LIBT8, _PREFERENCE_LIBP4EST, _PREFERENCE_LIBSC + +@static if _PREFERENCE_LIBT8 == "t8code_jll" || _PREFERENCE_LIBP4EST == "t8code_jll" || _PREFERENCE_LIBSC == "t8code_jll" + using t8code_jll: t8code_jll +end + using MPIPreferences: MPIPreferences @static if _PREFERENCE_LIBT8 == "t8code_jll" && MPIPreferences.binary == "system" From 9b8b75bad4717d4635306da95210b5123978941a Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 14:23:48 +0200 Subject: [PATCH 30/45] remove build step --- .github/workflows/test.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6b20e3d..d5943a3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -184,9 +184,6 @@ jobs: T8code.set_libraries_path!(abspath("./t8code-local/prefix/lib"); force = true) Pkg.free("T8code") - - name: Run Julia build step - uses: julia-actions/julia-buildpkg@v1 - - name: Run Julia tests uses: julia-actions/julia-runtest@v1 From 4fda35a882db080adcb52fffcef0f3da8a5d2ba7 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 14:24:20 +0200 Subject: [PATCH 31/45] conditional ignore for Aqua test --- test/test_aqua.jl | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/test/test_aqua.jl b/test/test_aqua.jl index 9212a09..f9704cb 100644 --- a/test/test_aqua.jl +++ b/test/test_aqua.jl @@ -7,11 +7,14 @@ using T8code # When run in CI, check if we are running with system MPI or Julia artifacts JULIA_MPI_PROVIDER = get(ENV, "JULIA_MPI_PROVIDER", "JLL_MPI") -# in case we are running with system MPI t8code_jll will not be loaded -if JULIA_MPI_PROVIDER == "JLL_MPI" - @testset "Aqua.jl" begin - Aqua.test_all(T8code) +@testset "Aqua.jl" begin + # in case we are running with system MPI t8code_jll will not be loaded + if JULIA_MPI_PROVIDER == "SYSTEM_MPI" + stale_deps_ignore = [:T8code] + else + stale_deps_ignore = [] end -end + Aqua.test_all(T8code; stale_deps=(ignore=stale_deps_ignore,)) +end end #module From 510aeb9a19531f34abb45c1a7b7ff6a603e883f3 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 14:27:52 +0200 Subject: [PATCH 32/45] fmt --- test/test_aqua.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_aqua.jl b/test/test_aqua.jl index 6ad00db..b23809b 100644 --- a/test/test_aqua.jl +++ b/test/test_aqua.jl @@ -16,7 +16,7 @@ JULIA_MPI_PROVIDER = get(ENV, "JULIA_MPI_PROVIDER", "JLL_MPI") stale_deps_ignore = [] end - Aqua.test_all(T8code; stale_deps=(ignore=stale_deps_ignore,)) + Aqua.test_all(T8code; stale_deps = (ignore = stale_deps_ignore,)) end @testset "ExplicitImports.jl" begin From c4b139ce4a377727f02f991ad2de61346ec1f201 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 14:34:05 +0200 Subject: [PATCH 33/45] pass Tuple to stale_deps --- test/test_aqua.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/test_aqua.jl b/test/test_aqua.jl index b23809b..c32d482 100644 --- a/test/test_aqua.jl +++ b/test/test_aqua.jl @@ -11,12 +11,12 @@ JULIA_MPI_PROVIDER = get(ENV, "JULIA_MPI_PROVIDER", "JLL_MPI") @testset "Aqua.jl" begin # in case we are running with system MPI t8code_jll will not be loaded if JULIA_MPI_PROVIDER == "SYSTEM_MPI" - stale_deps_ignore = [:T8code] + stale_deps_ignore = (ignore = [:T8code],) else - stale_deps_ignore = [] + stale_deps_ignore = () end - Aqua.test_all(T8code; stale_deps = (ignore = stale_deps_ignore,)) + Aqua.test_all(T8code; stale_deps = stale_deps_ignore) end @testset "ExplicitImports.jl" begin From 73d87263440cf48ab45dc8298b9c36ade3e2a51f Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 14:42:05 +0200 Subject: [PATCH 34/45] correct ignore --- test/test_aqua.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_aqua.jl b/test/test_aqua.jl index c32d482..a201f7c 100644 --- a/test/test_aqua.jl +++ b/test/test_aqua.jl @@ -11,7 +11,7 @@ JULIA_MPI_PROVIDER = get(ENV, "JULIA_MPI_PROVIDER", "JLL_MPI") @testset "Aqua.jl" begin # in case we are running with system MPI t8code_jll will not be loaded if JULIA_MPI_PROVIDER == "SYSTEM_MPI" - stale_deps_ignore = (ignore = [:T8code],) + stale_deps_ignore = (ignore = [:t8code_jll],) else stale_deps_ignore = () end From 3057762ff43ff908c79ef92159bf46042f6a5a3a Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 15:12:34 +0200 Subject: [PATCH 35/45] conditionally disable persistant tasks check --- test/test_aqua.jl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/test_aqua.jl b/test/test_aqua.jl index a201f7c..a3269af 100644 --- a/test/test_aqua.jl +++ b/test/test_aqua.jl @@ -12,11 +12,15 @@ JULIA_MPI_PROVIDER = get(ENV, "JULIA_MPI_PROVIDER", "JLL_MPI") # in case we are running with system MPI t8code_jll will not be loaded if JULIA_MPI_PROVIDER == "SYSTEM_MPI" stale_deps_ignore = (ignore = [:t8code_jll],) + test_persistent_tasks = false else stale_deps_ignore = () + test_persistent_tasks = true end - Aqua.test_all(T8code; stale_deps = stale_deps_ignore) + Aqua.test_all(T8code; + test_persistent_tasks = test_persistent_tasks, + stale_deps = stale_deps_ignore) end @testset "ExplicitImports.jl" begin From 2e62599deaf0ee6710959265c56f5a032d9fd4c2 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 15:31:29 +0200 Subject: [PATCH 36/45] can we always use Aqua 0.8? --- test/Project.toml | 2 +- test/test_aqua.jl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Project.toml b/test/Project.toml index 7701746..d72741d 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -6,7 +6,7 @@ MPIPreferences = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] -Aqua = "0.7, 0.8" +Aqua = "0.8" ExplicitImports = "1.15" MPI = "0.20.6" MPIPreferences = "0.1.6" diff --git a/test/test_aqua.jl b/test/test_aqua.jl index a3269af..48a5d04 100644 --- a/test/test_aqua.jl +++ b/test/test_aqua.jl @@ -19,7 +19,7 @@ JULIA_MPI_PROVIDER = get(ENV, "JULIA_MPI_PROVIDER", "JLL_MPI") end Aqua.test_all(T8code; - test_persistent_tasks = test_persistent_tasks, + persistent_tasks = test_persistent_tasks, stale_deps = stale_deps_ignore) end From 6b5d36debb007be0944309b68d4827e9ea221e60 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 16:10:42 +0200 Subject: [PATCH 37/45] do not use T8code to set the preferences --- .github/workflows/test.yml | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d5943a3..78cd2fd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -172,17 +172,16 @@ jobs: if: matrix.mpi-provider == 'SYSTEM_MPI' shell: julia --color=yes --project=test {0} run: | - using Pkg - - # Workaround - # https://github.com/trixi-framework/libtrixi/issues/237 - Pkg.add(name="OpenMPI_jll", version="4") - - # Use local t8code, just to set the preferences - Pkg.develop(path=joinpath(dirname(Base.active_project()), "..")) - using T8code - T8code.set_libraries_path!(abspath("./t8code-local/prefix/lib"); force = true) - Pkg.free("T8code") + using Preferences, UUIDs + set_preferences!( + UUID("d0cc0030-9a40-4274-8435-baadcfd54fa1"), # UUID of T8code.jl + "libt8" => "./t8code-local/prefix/lib/libt8.so", force = true) + set_preferences!( + UUID("d0cc0030-9a40-4274-8435-baadcfd54fa1"), # UUID of T8code.jl + "libp4est" => "./t8code-local/prefix/lib/libp4est.so", force = true) + set_preferences!( + UUID("d0cc0030-9a40-4274-8435-baadcfd54fa1"), # UUID of T8code.jl + "libsc" => "./t8code-local/prefix/lib/libsc.so", force = true) - name: Run Julia tests uses: julia-actions/julia-runtest@v1 From b257542055a60268640c573547fdc88e8f2ce7fd Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 16:11:44 +0200 Subject: [PATCH 38/45] use root project --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 78cd2fd..650853d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -159,7 +159,7 @@ jobs: - name: Configure MPI.jl if: matrix.mpi-provider == 'SYSTEM_MPI' - shell: julia --color=yes --project=test {0} + shell: julia --color=yes --project=. {0} run: | using Pkg Pkg.instantiate() @@ -170,7 +170,7 @@ jobs: - name: Configure T8code.jl if: matrix.mpi-provider == 'SYSTEM_MPI' - shell: julia --color=yes --project=test {0} + shell: julia --color=yes --project=. {0} run: | using Preferences, UUIDs set_preferences!( From 487483164e712223bff930f44f12b20f258df35b Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 16:22:41 +0200 Subject: [PATCH 39/45] abspath --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 650853d..11a827f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -175,13 +175,13 @@ jobs: using Preferences, UUIDs set_preferences!( UUID("d0cc0030-9a40-4274-8435-baadcfd54fa1"), # UUID of T8code.jl - "libt8" => "./t8code-local/prefix/lib/libt8.so", force = true) + "libt8" => abspath("./t8code-local/prefix/lib/libt8.so"), force = true) set_preferences!( UUID("d0cc0030-9a40-4274-8435-baadcfd54fa1"), # UUID of T8code.jl - "libp4est" => "./t8code-local/prefix/lib/libp4est.so", force = true) + "libp4est" => abspath("./t8code-local/prefix/lib/libp4est.so"), force = true) set_preferences!( UUID("d0cc0030-9a40-4274-8435-baadcfd54fa1"), # UUID of T8code.jl - "libsc" => "./t8code-local/prefix/lib/libsc.so", force = true) + "libsc" => abspath("./t8code-local/prefix/lib/libsc.so"), force = true) - name: Run Julia tests uses: julia-actions/julia-runtest@v1 From 3311616c76d57cce8d6bb14a01a834159b49ecf8 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 16:31:57 +0200 Subject: [PATCH 40/45] add a precompile step --- .github/workflows/test.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 11a827f..72593ff 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -183,6 +183,13 @@ jobs: UUID("d0cc0030-9a40-4274-8435-baadcfd54fa1"), # UUID of T8code.jl "libsc" => abspath("./t8code-local/prefix/lib/libsc.so"), force = true) + - name: Precompile + if: matrix.mpi-provider == 'SYSTEM_MPI' + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.precompile(; skip_dependents=false) + - name: Run Julia tests uses: julia-actions/julia-runtest@v1 From 0f6fb94e83eda4120a8be625c262d58554f49fa8 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 16:46:46 +0200 Subject: [PATCH 41/45] separate handling of julia nightly --- .github/workflows/test.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 72593ff..f05d489 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -183,12 +183,23 @@ jobs: UUID("d0cc0030-9a40-4274-8435-baadcfd54fa1"), # UUID of T8code.jl "libsc" => abspath("./t8code-local/prefix/lib/libsc.so"), force = true) + # Add an explicit precompile step where we expect t8code_jll to fail + # https://github.com/DLR-AMR/T8code.jl/pull/143#issuecomment-5783271942 + - name: Precompile (nightly) + if: matrix.mpi-provider == 'SYSTEM_MPI' && matrix.julia-version == 'nightly' + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.precompile() + continue-on-error: true + - name: Precompile - if: matrix.mpi-provider == 'SYSTEM_MPI' + if: matrix.mpi-provider == 'SYSTEM_MPI' && matrix.julia-version != 'nightly' shell: julia --color=yes --project=. {0} run: | using Pkg Pkg.precompile(; skip_dependents=false) + continue-on-error: true - name: Run Julia tests uses: julia-actions/julia-runtest@v1 From 0529b425702195ca9edbebc6173684c4ce37ac2b Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 17:16:32 +0200 Subject: [PATCH 42/45] duh --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f05d489..36184ae 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -190,7 +190,7 @@ jobs: shell: julia --color=yes --project=. {0} run: | using Pkg - Pkg.precompile() + Pkg.precompile(; skip_dependents=false) continue-on-error: true - name: Precompile @@ -198,7 +198,7 @@ jobs: shell: julia --color=yes --project=. {0} run: | using Pkg - Pkg.precompile(; skip_dependents=false) + Pkg.precompile() continue-on-error: true - name: Run Julia tests From b247dac08b2800af33bcfb242db9f707d1c92bcd Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Wed, 23 Sep 2026 17:28:33 +0200 Subject: [PATCH 43/45] prevent precompiling again --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 36184ae..a7482dd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -203,6 +203,8 @@ jobs: - name: Run Julia tests uses: julia-actions/julia-runtest@v1 + env: + JULIA_PKG_PRECOMPILE_AUTO: 0 # Enable tmate debugging of manually-triggered workflows if the input option was provided - name: Setup tmate session From c37eb1b720a467cfc2265692adaac86df7407695 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Thu, 24 Sep 2026 06:51:57 +0200 Subject: [PATCH 44/45] flags as in runtest --- .github/workflows/test.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a7482dd..f22cd62 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -187,7 +187,7 @@ jobs: # https://github.com/DLR-AMR/T8code.jl/pull/143#issuecomment-5783271942 - name: Precompile (nightly) if: matrix.mpi-provider == 'SYSTEM_MPI' && matrix.julia-version == 'nightly' - shell: julia --color=yes --project=. {0} + shell: julia --color=yes --check-bounds=yes --compiled-modules=yes --depwarn=yes--project=. {0} run: | using Pkg Pkg.precompile(; skip_dependents=false) @@ -195,7 +195,7 @@ jobs: - name: Precompile if: matrix.mpi-provider == 'SYSTEM_MPI' && matrix.julia-version != 'nightly' - shell: julia --color=yes --project=. {0} + shell: julia --color=yes --check-bounds=yes --compiled-modules=yes --depwarn=yes--project=. {0} run: | using Pkg Pkg.precompile() @@ -203,8 +203,6 @@ jobs: - name: Run Julia tests uses: julia-actions/julia-runtest@v1 - env: - JULIA_PKG_PRECOMPILE_AUTO: 0 # Enable tmate debugging of manually-triggered workflows if the input option was provided - name: Setup tmate session From 04da502235cb3f452c89f7e70a5eadf0fb82fd47 Mon Sep 17 00:00:00 2001 From: Benedict Geihe Date: Thu, 24 Sep 2026 07:43:42 +0200 Subject: [PATCH 45/45] even more args --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f22cd62..eed19b4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -187,7 +187,7 @@ jobs: # https://github.com/DLR-AMR/T8code.jl/pull/143#issuecomment-5783271942 - name: Precompile (nightly) if: matrix.mpi-provider == 'SYSTEM_MPI' && matrix.julia-version == 'nightly' - shell: julia --color=yes --check-bounds=yes --compiled-modules=yes --depwarn=yes--project=. {0} + shell: julia --code-coverage=@/home/runner/work/T8code.jl/T8code.jl --color=yes --warn-overwrite=yes --depwarn=yes --inline=yes --startup-file=no --track-allocation=none --check-bounds=yes --compiled-modules=yes --depwarn=yes --project=. {0} run: | using Pkg Pkg.precompile(; skip_dependents=false) @@ -195,7 +195,7 @@ jobs: - name: Precompile if: matrix.mpi-provider == 'SYSTEM_MPI' && matrix.julia-version != 'nightly' - shell: julia --color=yes --check-bounds=yes --compiled-modules=yes --depwarn=yes--project=. {0} + shell: julia --code-coverage=@/home/runner/work/T8code.jl/T8code.jl --color=yes --warn-overwrite=yes --depwarn=yes --inline=yes --startup-file=no --track-allocation=none --check-bounds=yes --compiled-modules=yes --depwarn=yes --project=. {0} run: | using Pkg Pkg.precompile()