Skip to content

Commit 82e0648

Browse files
committed
Merge branch 'dev' of https://github.com/topology-tool-kit/ttk into dev
2 parents b00c6f2 + 12c6f7d commit 82e0648

File tree

41 files changed

+342
-54
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+342
-54
lines changed

.github/workflows/check.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ concurrency:
2222
cancel-in-progress: true
2323

2424
env:
25-
PV_TAG: v5.12.0-headless
25+
PV_TAG: v5.13.0-headless
2626
PV_REPO: topology-tool-kit/ttk-paraview
2727

2828

@@ -35,7 +35,7 @@ jobs:
3535
check-formatting:
3636
runs-on: ubuntu-22.04
3737
steps:
38-
- uses: actions/checkout@v3
38+
- uses: actions/checkout@v4
3939

4040
- name: Install latest clang-format
4141
run: |
@@ -97,7 +97,7 @@ jobs:
9797
CMAKE_EXPORT_COMPILE_COMMANDS: ON
9898

9999
steps:
100-
- uses: actions/checkout@v3
100+
- uses: actions/checkout@v4
101101

102102
- name: Install Ubuntu dependencies
103103
run: |
@@ -161,6 +161,7 @@ jobs:
161161
162162
- name: Check Doxygen documentation warnings
163163
if: matrix.config.dox
164+
continue-on-error: true
164165
run: |
165166
cd build
166167
! cmake --build . --target doc |& grep warning
@@ -182,7 +183,7 @@ jobs:
182183
CMAKE_EXPORT_COMPILE_COMMANDS: ON
183184

184185
steps:
185-
- uses: actions/checkout@v3
186+
- uses: actions/checkout@v4
186187

187188
- name: Install Ubuntu dependencies
188189
run: |

.github/workflows/package.yml

Lines changed: 126 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ on:
1212
- 'pack*'
1313

1414
env:
15-
PV_TAG: v5.12.0
15+
PV_TAG: v5.13.0
1616
PV_REPO: topology-tool-kit/ttk-paraview
1717

1818
jobs:
@@ -24,7 +24,7 @@ jobs:
2424
runs-on: ${{ matrix.os }}
2525
strategy:
2626
matrix:
27-
os: [ubuntu-20.04, ubuntu-22.04]
27+
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
2828
steps:
2929
- uses: actions/checkout@v4
3030
name: Checkout TTK source code
@@ -99,7 +99,7 @@ jobs:
9999
runs-on: ${{ matrix.os }}
100100
strategy:
101101
matrix:
102-
os: [ubuntu-20.04, ubuntu-22.04]
102+
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
103103
steps:
104104
- uses: actions/checkout@v4
105105
name: Checkout TTK source code
@@ -126,6 +126,12 @@ jobs:
126126
# pvpython does not embed the correct PYTHONPATH
127127
echo "PYTHONPATH=/usr/lib/python3/dist-packages:$PYTHONPATH" >> $GITHUB_ENV
128128
129+
- name: Set PYTHONPATH for Ubuntu 24.04 pvpython
130+
if: matrix.os == 'ubuntu-24.04'
131+
run: |
132+
# pvpython does not embed the correct PYTHONPATH
133+
echo "PYTHONPATH=/usr/lib/python3/dist-packages:$PYTHONPATH" >> $GITHUB_ENV
134+
129135
- name: Run TTK tests
130136
uses: ./.github/actions/test-ttk-unix
131137

@@ -152,6 +158,11 @@ jobs:
152158
cd ttk-data
153159
# no X server
154160
rm python/geometryApproximation.py
161+
# remove buggy example
162+
# related issue: https://github.com/topology-tool-kit/ttk/issues/1055
163+
rm python/nestedTrackingFromOverlap.py
164+
# remove examples which fill up the memory
165+
rm python/topologicalOptimization_darkSky.py
155166
python3 -u python/run.py
156167
157168
- name: Test ttk-data Python scripts results [NOT ENFORCED]
@@ -166,7 +177,13 @@ jobs:
166177
# Build macOS #
167178
# ------------#
168179
build-macos:
169-
runs-on: macos-12
180+
runs-on: ${{ matrix.os }}
181+
strategy:
182+
matrix:
183+
os: [macos-12, macos-14]
184+
env:
185+
DYLD_LIBRARY_PATH: /usr/local/lib
186+
170187
steps:
171188
- uses: actions/checkout@v4
172189
name: Checkout TTK source code
@@ -183,17 +200,23 @@ jobs:
183200
brew install --cask xquartz
184201
brew install llvm mesa glew qt@5 ninja
185202
# TTK dependencies
186-
brew install boost eigen graphviz numpy websocketpp
203+
brew install boost eigen graphviz spectra sqlite zlib numpy qhull
187204
188205
- name: Install optional dependencies
189206
uses: ./.github/actions/install-deps-unix
190207

191208
- name: Fetch & install TTK-ParaView
192209
run: |
193-
wget https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-macos-12.tar.gz
194-
tar xzf ttk-paraview-${{ env.PV_TAG }}-macos-12.tar.gz
210+
if [[ "${{ matrix.os }}" == "macos-12" ]]; then
211+
wget https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}.tar.gz
212+
tar xzf ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}.tar.gz
213+
fi
214+
if [[ "${{ matrix.os }}" == "macos-14" ]]; then
215+
wget https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}-arm64.tar.gz
216+
tar xzf ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}-arm64.tar.gz
217+
fi
195218
sudo cp -r ttk-paraview/* /usr/local
196-
pvpython -m pip install scikit-learn
219+
pvpython -m pip install --break-system-packages scikit-learn
197220
198221
- name: Set compilers as environment variables
199222
run: |
@@ -232,15 +255,20 @@ jobs:
232255
- name: Upload compressed binaries
233256
uses: actions/upload-artifact@v4
234257
with:
235-
name: ttk.tar.gz
258+
name: ttk-${{ matrix.os }}.tar.gz
236259
path: build/ttk.tar.gz
237260

238261
# -----------#
239262
# Test macOS #
240263
# -----------#
241264
test-macos:
242265
needs: build-macos
243-
runs-on: macos-12
266+
runs-on: ${{ matrix.os }}
267+
strategy:
268+
matrix:
269+
os: [macos-12, macos-14]
270+
env:
271+
DYLD_LIBRARY_PATH: /usr/local/lib
244272
steps:
245273
- uses: actions/checkout@v4
246274
name: Checkout TTK source code
@@ -257,20 +285,26 @@ jobs:
257285
brew install --cask xquartz
258286
brew install llvm mesa glew qt@5 ninja
259287
# TTK dependencies
260-
brew install boost eigen graphviz numpy websocketpp
288+
brew install boost eigen graphviz spectra sqlite zlib numpy qhull
261289
262290
- name: Fetch TTK-ParaView
263291
run: |
264-
wget https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-macos-12.tar.gz
292+
if [[ "${{ matrix.os }}" == "macos-12" ]]; then
293+
wget -O ttk-paraview.tar.gz https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}.tar.gz
294+
fi
295+
if [[ "${{ matrix.os }}" == "macos-14" ]]; then
296+
wget -O ttk-paraview.tar.gz https://github.com/${{ env.PV_REPO }}/releases/download/${{ env.PV_TAG }}/ttk-paraview-${{ env.PV_TAG }}-${{ matrix.os }}-arm64.tar.gz
297+
fi
298+
265299
266300
- name: Fetch TTK .tar.gz artifact
267301
uses: actions/[email protected]
268302
with:
269-
name: ttk.tar.gz
303+
name: ttk-${{ matrix.os }}.tar.gz
270304

271305
- name: Install binary archives packages
272306
run: |
273-
tar xzf ttk-paraview-${{ env.PV_TAG}}-macos-12.tar.gz
307+
tar xzf ttk-paraview.tar.gz
274308
sudo cp -r ttk-paraview/* /usr/local
275309
tar xzf ttk.tar.gz
276310
sudo cp -r ttk/* /usr/local
@@ -297,6 +331,18 @@ jobs:
297331
- name: Run ttk-data Python scripts
298332
run: |
299333
cd ttk-data
334+
# remove buggy example
335+
# related issue: https://github.com/topology-tool-kit/ttk/issues/1055
336+
rm python/nestedTrackingFromOverlap.py
337+
# remove examples which fill up the memory
338+
rm python/topologicalOptimization_darkSky.py
339+
# some cases fail only with version 12
340+
if [[ "${{ matrix.os }}" == "macos-12" ]]; then
341+
rm python/contourTreeAlignment.py
342+
rm python/geometryApproximation.py
343+
rm python/harmonicSkeleton.py
344+
rm python/topologicalOptimization_torus.py
345+
fi
300346
pvpython -u python/run.py
301347
env:
302348
PV_PLUGIN_PATH: /usr/local/bin/plugins/TopologyToolKit
@@ -315,6 +361,8 @@ jobs:
315361
build-windows:
316362
runs-on: windows-2022
317363
env:
364+
PV_DIR: C:\Program Files\TTK-ParaView
365+
TTK_DIR: C:\Program Files (x86)\ttk
318366
CONDA_ROOT: C:\Miniconda
319367
steps:
320368
- uses: actions/checkout@v4
@@ -325,8 +373,14 @@ jobs:
325373
- name: Install dependencies with conda
326374
shell: bash
327375
run: |
328-
conda install -c conda-forge "qt>=5.12" libboost-devel eigen spectralib zfp \
329-
scikit-learn llvm-openmp graphviz clangxx
376+
conda install -c conda-forge "qt>=5.12" \
377+
libboost-devel glew eigen spectralib zfp \
378+
sqlite scikit-learn graphviz ninja python=3.10 zlib qhull \
379+
llvm-openmp clangxx
380+
# add TTK & ParaView install folders to PATH
381+
echo "$PV_DIR/bin" >> $GITHUB_PATH
382+
echo "$TTK_DIR/bin" >> $GITHUB_PATH
383+
conda info --all
330384
331385
- name: Remove hosted Python
332386
shell: bash
@@ -349,10 +403,15 @@ jobs:
349403
- name: Create & configure TTK build directory
350404
shell: cmd
351405
run: |
352-
set CMAKE_PREFIX_PATH=%CONDA_ROOT%\Library\lib\cmake;%CONDA_ROOT%\Library\share\eigen3\cmake;%CONDA_ROOT%\Library\cmake;%ProgramFiles%\TTK-ParaView\lib\cmake
406+
set CMAKE_PREFIX_PATH=%CONDA_ROOT%\Library\lib\cmake;%CONDA_ROOT%\Library\share\eigen3\cmake;%CONDA_ROOT%\Library\share\Qull\cmake;%CONDA_ROOT%\Library\cmake;%ProgramFiles%\TTK-ParaView\lib\cmake;
407+
set CC=clang-cl.exe
408+
set CXX=clang-cl.exe
409+
call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
353410
mkdir build
354411
cd build
355412
cmake ^
413+
-DCMAKE_BUILD_TYPE=Release ^
414+
-DCMAKE_POLICY_DEFAULT_CMP0074=NEW ^
356415
-DCMAKE_POLICY_DEFAULT_CMP0092=NEW ^
357416
-DBUILD_SHARED_LIBS:BOOL=TRUE ^
358417
-DCMAKE_INSTALL_PREFIX="%ProgramFiles%\TTK" ^
@@ -362,6 +421,8 @@ jobs:
362421
-DGraphviz_GVC_LIBRARY="%CONDA_ROOT%\Library\lib\gvc.lib" ^
363422
-DGraphviz_CGRAPH_LIBRARY="%CONDA_ROOT%\Library\lib\cgraph.lib" ^
364423
-DGraphviz_PATHPLAN_LIBRARY="%CONDA_ROOT%\Library\lib\pathplan.lib" ^
424+
-DZLIB_ROOT="%CONDA_ROOT%\Library" ^
425+
-DSQLite3_ROOT="%CONDA_ROOT%\Library" ^
365426
-DTTK_BUILD_PARAVIEW_PLUGINS=TRUE ^
366427
-DTTK_BUILD_VTK_WRAPPERS=TRUE ^
367428
-DTTK_BUILD_STANDALONE_APPS=TRUE ^
@@ -370,14 +431,19 @@ jobs:
370431
-DTTK_ENABLE_OPENMP=TRUE ^
371432
-DTTK_ENABLE_CPU_OPTIMIZATION=FALSE ^
372433
-DTTK_ENABLE_SHARED_BASE_LIBRARIES=TRUE ^
373-
-G"Visual Studio 17 2022" ^
374-
-Tclangcl ^
434+
-GNinja ^
375435
..
376436
377-
- name: Build TTK
437+
- name: Fix clang-cl OpenMP flags in build.ninja
378438
shell: bash
439+
run: |
440+
sed -i 's/-Xclang -fopenmp/-openmp/' build/build.ninja
441+
442+
- name: Build TTK
443+
shell: cmd
379444
run: |
380445
cd build
446+
call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
381447
cmake --build . --config Release --parallel
382448
383449
- name: Package TTK
@@ -411,8 +477,14 @@ jobs:
411477
- name: Install dependencies with conda
412478
shell: bash
413479
run: |
414-
conda install -c conda-forge "qt>=5.12" libboost-devel eigen spectralib zfp \
415-
scikit-learn openmp graphviz
480+
conda install -c conda-forge "qt>=5.12" \
481+
libboost-devel glew eigen spectralib zfp \
482+
sqlite scikit-learn graphviz ninja python=3.10 zlib qhull \
483+
llvm-openmp clangxx
484+
# add TTK & ParaView install folders to PATH
485+
echo "$PV_DIR/bin" >> $GITHUB_PATH
486+
echo "$TTK_DIR/bin" >> $GITHUB_PATH
487+
conda info --all
416488
417489
- name: Remove hosted Python
418490
shell: bash
@@ -443,24 +515,30 @@ jobs:
443515
- name: Test C++ example
444516
shell: cmd
445517
run: |
518+
set CC=clang-cl.exe
519+
set CXX=clang-cl.exe
520+
call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
446521
set CMAKE_PREFIX_PATH=%TTK_DIR%\lib\cmake;%PV_DIR%\lib\cmake
447522
cd %GITHUB_WORKSPACE%\examples\c++
448523
mkdir build
449524
cd build
450-
cmake -G"Visual Studio 17 2022" -Tclangcl ..
525+
cmake -DCMAKE_BUILD_TYPE=Release -GNinja ..
451526
cmake --build . --config Release --parallel
452-
Release\ttkExample-c++.exe -i ..\..\data\inputData.off
527+
ttkExample-c++.exe -i ..\..\data\inputData.off
453528
454529
- name: Test VTK-C++ example
455530
shell: cmd
456531
run: |
532+
set CC=clang-cl.exe
533+
set CXX=clang-cl.exe
534+
call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
457535
set CMAKE_PREFIX_PATH=%TTK_DIR%\lib\cmake;%PV_DIR%\lib\cmake
458536
cd %GITHUB_WORKSPACE%\examples\vtk-c++
459537
mkdir build
460538
cd build
461-
cmake -G"Visual Studio 17 2022" -Tclangcl ..
539+
cmake -DCMAKE_BUILD_TYPE=Release -GNinja ..
462540
cmake --build . --config Release --parallel
463-
Release\ttkExample-vtk-c++.exe -i ..\..\data\inputData.vtu
541+
ttkExample-vtk-c++.exe -i ..\..\data\inputData.vtu
464542
465543
- name: Test Python example [TEMPORARILY NOT ENFORCED]
466544
continue-on-error: true
@@ -505,6 +583,9 @@ jobs:
505583
set PYTHONPATH=%PV_DIR%\bin\Lib\site-packages;%TTK_DIR%\bin\Lib\site-packages;%CONDA_ROOT%\Lib;%CONDA_ROOT%\DLLs
506584
set PV_PLUGIN_PATH=%TTK_DIR%\bin\plugins
507585
cd ttk-data
586+
rm python/nestedTrackingFromOverlap.py
587+
# remove examples which fill up the memory
588+
rm python/topologicalOptimization_darkSky.py
508589
pvpython.exe -u python\run.py
509590
510591
- name: Test ttk-data Python scripts results [NOT ENFORCED]
@@ -570,13 +651,29 @@ jobs:
570651
file: ttk-ubuntu-22.04.deb/ttk.deb
571652
asset_name: ttk-$tag-ubuntu-22.04.deb
572653

573-
- name: Upload macOS binary archives as Release Asset
654+
- name: Upload Ubuntu Noble Numbat .deb as Release Asset
655+
uses: svenstaro/upload-release-action@v2
656+
with:
657+
repo_token: ${{ secrets.GITHUB_TOKEN }}
658+
tag: ${{ github.ref }}
659+
file: ttk-ubuntu-24.04.deb/ttk.deb
660+
asset_name: ttk-$tag-ubuntu-24.04.deb
661+
662+
- name: Upload MacOS 12 binary archives as Release Asset
663+
uses: svenstaro/upload-release-action@v2
664+
with:
665+
repo_token: ${{ secrets.GITHUB_TOKEN }}
666+
tag: ${{ github.ref }}
667+
file: ttk-macos-12.tar.gz/ttk.tar.gz
668+
asset_name: ttk-$tag-macos-12.tar.gz
669+
670+
- name: Upload MacOS 14 binary archives as Release Asset
574671
uses: svenstaro/upload-release-action@v2
575672
with:
576673
repo_token: ${{ secrets.GITHUB_TOKEN }}
577674
tag: ${{ github.ref }}
578-
file: ttk.tar.gz/ttk.tar.gz
579-
asset_name: ttk-$tag.tar.gz
675+
file: ttk-macos-14.tar.gz/ttk.tar.gz
676+
asset_name: ttk-$tag-macos-14-arm64.tar.gz
580677

581678
- name: Upload Windows .exe as Release Asset
582679
uses: svenstaro/upload-release-action@v2

0 commit comments

Comments
 (0)