From d799b3123af2ac294e13860d00ea897d970d675c Mon Sep 17 00:00:00 2001 From: reiter Date: Thu, 12 Mar 2026 13:59:50 +0100 Subject: [PATCH 01/10] feat: use CUDA image for Python packaging --- .github/workflows/python.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index c284a48d..d0278d28 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -22,7 +22,7 @@ jobs: matrix: include: - os: ubuntu-latest - container: ghcr.io/viennatools/vienna-builder:suite-python + container: ghcr.io/viennatools/vienna-builder:cuda-suite-python-nocuda - os: windows-latest - os: macos-latest @@ -64,7 +64,7 @@ jobs: if: ${{ matrix.os != 'windows-latest' }} run: | python -m venv venv - CMAKE_ARGS=-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF ./venv/bin/pip install . # Alpine does not like LTO + CMAKE_ARGS=-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF ./venv/bin/pip install . ./venv/bin/python -c "import viennals; print(viennals.__doc__)" - name: 📦 Upload Artifact @@ -80,7 +80,7 @@ jobs: matrix: include: - os: ubuntu-latest - container: ghcr.io/viennatools/vienna-builder:python + container: ghcr.io/viennatools/vienna-builder:cuda-suite-python-nocuda skip: "cp36-* cp37-* cp38-* cp39-* pp37-* pp38-* pp39-*" - os: windows-latest From 98010cfa57673acee2073239359669b1d07dd26a Mon Sep 17 00:00:00 2001 From: reiter Date: Thu, 12 Mar 2026 14:14:08 +0100 Subject: [PATCH 02/10] fix: do not use container engine on Linux --- .github/workflows/python.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index d0278d28..2bf9ff64 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -129,6 +129,7 @@ jobs: env: CIBW_SKIP: ${{ matrix.skip }} CIBW_ARCHS_WINDOWS: auto64 + CIBW_CONTAINER_ENGINE: none - name: 📦 Upload Artifact uses: actions/upload-artifact@v4 From 672484a79ee78baa4a6ac1b1683a58f7f0d4c191 Mon Sep 17 00:00:00 2001 From: reiter Date: Thu, 12 Mar 2026 14:46:31 +0100 Subject: [PATCH 03/10] fix: install dependencies on MacOS --- .github/workflows/build.yml | 7 ++++++- .github/workflows/python.yml | 15 ++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a1dd3646..cab5875d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,11 +43,16 @@ jobs: with: os: ${{ matrix.os }} + - name: 📋 Install MacOS Dependencies + if: ${{ matrix.os == 'macos-latest' }} + run: | + brew install vtk + - name: 🦥 Cache Dependencies uses: actions/cache@v4 with: key: test-${{ matrix.os }}-${{ matrix.config }} - path: build + path: build/_deps/ - name: 🏗️ Compile run: cmake -DVIENNALS_BUILD_TESTS=ON -B build && cmake --build build --config ${{ matrix.config }} diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 2bf9ff64..4ff2534d 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -40,13 +40,18 @@ jobs: with: os: ${{ matrix.os }} + - name: 📋 Install MacOS Dependencies + if: ${{ matrix.os == 'macos-latest' }} + run: | + brew install vtk + - name: 🦥 Cache Dependencies uses: actions/cache@v4 with: key: python-${{ matrix.os }} - path: build + path: build/_deps/ - - name: 🛠️ Disable IPO (Alpine) + - name: 🛠️ Disable IPO if: ${{ matrix.os == 'ubuntu-latest' }} run: | sed -i 's/\(DVIENNALS_BUILD_PYTHON=ON"\)/\1,"-DUSE_IPO=off"/g' pyproject.toml @@ -106,19 +111,19 @@ jobs: - name: 🛞 CIBuildWheel run: pip install cibuildwheel==2.21.3 --break-system-packages - - name: 🛠️ Build VTK (Windows) + - name: 🛠️ Package Config (Windows) if: ${{ matrix.os == 'windows-latest' }} run: | sed -i 's/\(DVIENNALS_BUILD_PYTHON=ON"\)/\1,"-DVIENNALS_PACKAGE_PYTHON=ON","-DVIENNALS_IS_CI=ON"/g' pyproject.toml type pyproject.toml - - name: 🛠️ Build VTK (MacOs) + - name: 🛠️ Package Config (MacOs) if: ${{ matrix.os == 'macos-latest' }} run: | sed -i .bak 's/\(DVIENNALS_BUILD_PYTHON=ON"\)/\1,"-DVIENNALS_PACKAGE_PYTHON=ON","-DVIENNALS_IS_CI=ON"/g' pyproject.toml cat pyproject.toml - - name: 🛠️ Use VTK-Python Libs + - name: 🛠️ Package Config (Linux) if: ${{ matrix.os == 'ubuntu-latest' }} run: | sed -i 's/\(DVIENNALS_BUILD_PYTHON=ON"\)/\1,"-DVIENNALS_PACKAGE_PYTHON=ON","-DVIENNALS_IS_CI=ON"/g' pyproject.toml From 998f05995648b0a1a8358731eb545be092d1bf34 Mon Sep 17 00:00:00 2001 From: reiter Date: Thu, 12 Mar 2026 14:47:03 +0100 Subject: [PATCH 04/10] fix: typo --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 4ff2534d..e7fd9994 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -163,4 +163,4 @@ jobs: - name: 🚀 Publish Wheels uses: pypa/gh-action-pypi-publish@release/v1 with: - skip_existing: true + skip-existing: true From 91b9c00050f11863d93a4968058948097363616d Mon Sep 17 00:00:00 2001 From: reiter Date: Thu, 12 Mar 2026 15:05:54 +0100 Subject: [PATCH 05/10] fix: make cibuildwheel use custom container image --- .github/workflows/python.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index e7fd9994..ff2f392e 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -85,7 +85,6 @@ jobs: matrix: include: - os: ubuntu-latest - container: ghcr.io/viennatools/vienna-builder:cuda-suite-python-nocuda skip: "cp36-* cp37-* cp38-* cp39-* pp37-* pp38-* pp39-*" - os: windows-latest @@ -95,7 +94,6 @@ jobs: skip: "cp36-* cp37-* cp38-* cp39-* cp310-* pp37-* pp38-* pp39-*" runs-on: ${{ matrix.os }} - container: ${{ matrix.container }} name: "🐍 Package Bindings on ${{ matrix.os }}" @@ -129,12 +127,19 @@ jobs: sed -i 's/\(DVIENNALS_BUILD_PYTHON=ON"\)/\1,"-DVIENNALS_PACKAGE_PYTHON=ON","-DVIENNALS_IS_CI=ON"/g' pyproject.toml cat pyproject.toml - - name: 🏗️ Build Wheels + - name: 🏗️ Build Wheels (Linux) + if: ${{ matrix.os == 'ubuntu-latest' }} + run: python -m cibuildwheel --output-dir wheelhouse + env: + CIBW_SKIP: ${{ matrix.skip }} + CIBW_MANYLINUX_X86_64_IMAGE: ghcr.io/viennatools/vienna-builder:cuda-suite-python-nocuda + + - name: 🏗️ Build Wheels (Other) + if: ${{ matrix.os != 'ubuntu-latest' }} run: python -m cibuildwheel --output-dir wheelhouse env: CIBW_SKIP: ${{ matrix.skip }} CIBW_ARCHS_WINDOWS: auto64 - CIBW_CONTAINER_ENGINE: none - name: 📦 Upload Artifact uses: actions/upload-artifact@v4 From 18ff006288722d538d4e9d76f12b16ca82423f4d Mon Sep 17 00:00:00 2001 From: reiter Date: Thu, 12 Mar 2026 15:37:36 +0100 Subject: [PATCH 06/10] refactor: skip 32 bit manylinux packages --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index ff2f392e..ff4cccea 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -85,7 +85,7 @@ jobs: matrix: include: - os: ubuntu-latest - skip: "cp36-* cp37-* cp38-* cp39-* pp37-* pp38-* pp39-*" + skip: "cp36-* cp37-* cp38-* cp39-* pp37-* pp38-* pp39-* *-manylinux_i686" - os: windows-latest skip: "cp36-* cp37-* cp38-* cp39-* pp37-* pp38-* pp39-*" From e781f26ed1996f864338f7eddbbf83a1bbd1d968 Mon Sep 17 00:00:00 2001 From: reiter Date: Thu, 12 Mar 2026 15:41:32 +0100 Subject: [PATCH 07/10] chore: bump version --- CMakeLists.txt | 2 +- include/viennals/lsVersion.hpp | 4 ++-- pyproject.toml | 2 +- python/viennals/__init__.pyi | 6 +++--- python/viennals/_core.pyi | 6 +++--- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a5cdfe3..19436451 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.20 FATAL_ERROR) project( ViennaLS LANGUAGES CXX - VERSION 5.6.0) + VERSION 5.7.0) # -------------------------------------------------------------------------------------------------------- # Library options diff --git a/include/viennals/lsVersion.hpp b/include/viennals/lsVersion.hpp index 5368940f..269a3ea5 100644 --- a/include/viennals/lsVersion.hpp +++ b/include/viennals/lsVersion.hpp @@ -5,9 +5,9 @@ namespace viennals { // Version information generated by CMake -inline constexpr const char *version = "5.6.0"; +inline constexpr const char *version = "5.7.0"; inline constexpr int versionMajor = 5; -inline constexpr int versionMinor = 6; +inline constexpr int versionMinor = 7; inline constexpr int versionPatch = 0; // Utility functions for version comparison diff --git a/pyproject.toml b/pyproject.toml index f1ace2e6..6dc4dfb8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ requires = [ build-backend = "scikit_build_core.build" [project] -version = "5.6.0" +version = "5.7.0" name = "ViennaLS" readme = "README.md" license = {file = "LICENSE"} diff --git a/python/viennals/__init__.pyi b/python/viennals/__init__.pyi index 31d8fbd6..0b43e23c 100644 --- a/python/viennals/__init__.pyi +++ b/python/viennals/__init__.pyi @@ -46,8 +46,8 @@ from viennals.d2 import CompareChamfer from viennals.d2 import CompareCriticalDimensions from viennals.d2 import CompareNarrowBand from viennals.d2 import CompareSparseField -from viennals.d2 import CompareVolume from viennals.d2 import CompareVolume as CompareArea +from viennals.d2 import CompareVolume from viennals.d2 import ConvexHull from viennals.d2 import CustomSphereDistribution from viennals.d2 import Cylinder @@ -112,6 +112,6 @@ def setDimension(d: int): """ PROXY_DIM: int = 2 -__version__: str = '5.6.0' -version: str = '5.6.0' +__version__: str = '5.7.0' +version: str = '5.7.0' _C = _core diff --git a/python/viennals/_core.pyi b/python/viennals/_core.pyi index ed6e946c..6f1fe34f 100644 --- a/python/viennals/_core.pyi +++ b/python/viennals/_core.pyi @@ -7,8 +7,8 @@ import enum import typing from viennals import d2 import viennals.d2 -import viennals.d3 from viennals import d3 +import viennals.d3 __all__: list[str] = ['BooleanOperationEnum', 'BoundaryConditionEnum', 'CurvatureEnum', 'Extrude', 'FeatureDetectionEnum', 'FileFormatEnum', 'IntegrationSchemeEnum', 'LogLevel', 'Logger', 'MaterialMap', 'Mesh', 'NormalCalculationMethodEnum', 'PointData', 'Slice', 'SpatialSchemeEnum', 'TemporalSchemeEnum', 'TransformEnum', 'TransformMesh', 'VTKReader', 'VTKRenderWindow', 'VTKWriter', 'VelocityField', 'VoidTopSurfaceEnum', 'd2', 'd3', 'setNumThreads', 'version'] class BooleanOperationEnum(enum.IntEnum): INTERSECT: typing.ClassVar[BooleanOperationEnum] # value = @@ -549,6 +549,6 @@ class VoidTopSurfaceEnum(enum.IntEnum): """ def setNumThreads(arg0: typing.SupportsInt | typing.SupportsIndex) -> None: ... -__version__: str = '5.6.0' -version: str = '5.6.0' +__version__: str = '5.7.0' +version: str = '5.7.0' IntegrationSchemeEnum = SpatialSchemeEnum From 1ed00e10b7497fc959f756e54302f58c64727c86 Mon Sep 17 00:00:00 2001 From: reiter Date: Thu, 12 Mar 2026 16:35:26 +0100 Subject: [PATCH 08/10] refactor: skip musl linux builds --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index ff4cccea..5e0130f0 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -85,7 +85,7 @@ jobs: matrix: include: - os: ubuntu-latest - skip: "cp36-* cp37-* cp38-* cp39-* pp37-* pp38-* pp39-* *-manylinux_i686" + skip: "cp36-* cp37-* cp38-* cp39-* pp37-* pp38-* pp39-* *-manylinux_i686 *-musllinux_*" - os: windows-latest skip: "cp36-* cp37-* cp38-* cp39-* pp37-* pp38-* pp39-*" From cbb5bd3c4b605eb9d7075400d2a988c7d6498bc0 Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Fri, 13 Mar 2026 13:41:49 +0100 Subject: [PATCH 09/10] update cibuildwheel --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 5e0130f0..d1f4f2ae 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -107,7 +107,7 @@ jobs: os: ${{ matrix.os }} - name: 🛞 CIBuildWheel - run: pip install cibuildwheel==2.21.3 --break-system-packages + run: pip install cibuildwheel==3.4.0 --break-system-packages - name: 🛠️ Package Config (Windows) if: ${{ matrix.os == 'windows-latest' }} From 4e3d02c64b570f9e7260c548cd1a537309ac6ee1 Mon Sep 17 00:00:00 2001 From: Tobias Reiter Date: Fri, 13 Mar 2026 15:10:43 +0100 Subject: [PATCH 10/10] fix: use correct container image for packaging --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index d1f4f2ae..03de13b8 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -132,7 +132,7 @@ jobs: run: python -m cibuildwheel --output-dir wheelhouse env: CIBW_SKIP: ${{ matrix.skip }} - CIBW_MANYLINUX_X86_64_IMAGE: ghcr.io/viennatools/vienna-builder:cuda-suite-python-nocuda + CIBW_MANYLINUX_X86_64_IMAGE: ghcr.io/viennatools/vienna-builder:cuda-python-nocuda - name: 🏗️ Build Wheels (Other) if: ${{ matrix.os != 'ubuntu-latest' }}