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 c284a48d..03de13b8 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 @@ -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 @@ -64,7 +69,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,8 +85,7 @@ jobs: matrix: include: - os: ubuntu-latest - container: ghcr.io/viennatools/vienna-builder:python - skip: "cp36-* cp37-* cp38-* cp39-* pp37-* pp38-* pp39-*" + skip: "cp36-* cp37-* cp38-* cp39-* pp37-* pp38-* pp39-* *-manylinux_i686 *-musllinux_*" - os: windows-latest skip: "cp36-* cp37-* cp38-* cp39-* pp37-* pp38-* pp39-*" @@ -90,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 }}" @@ -104,27 +107,35 @@ 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: 🛠️ 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 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-python-nocuda + + - name: 🏗️ Build Wheels (Other) + if: ${{ matrix.os != 'ubuntu-latest' }} run: python -m cibuildwheel --output-dir wheelhouse env: CIBW_SKIP: ${{ matrix.skip }} @@ -157,4 +168,4 @@ jobs: - name: 🚀 Publish Wheels uses: pypa/gh-action-pypi-publish@release/v1 with: - skip_existing: true + skip-existing: true 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