From 0f218d3ce0a6e0a56a272136963c42097d8e21ed Mon Sep 17 00:00:00 2001 From: Simon Rit Date: Tue, 12 Sep 2023 14:44:36 +0200 Subject: [PATCH] Release of RTK v2.5.0 Dear RTK users, [RTK v2.5.0](https://github.com/RTKConsortium/RTK/archive/v2.5.0.zip) has just been released. This release is intended to produce Python packages compatible with the ITK Python packages v5.4rc01. Release notes: * Various CI improvements * Account for yaw and tilt in ImagingRing geometry * Allow for fast switching in one step spectral CT * Add inferior and superior clip images in Joseph forward projector * Remove ITKCudaCommon (now in https://github.com/RTKConsortium/ITKCudaCommon) * Add various wrappings Many thanks to all contributors for this release: Matthieu Laurendeau, Simon Rit, Antoine Robert and Shengpeng Yu. Simon (for the RTK consortium) --- .github/workflows/build-test-cxx-cuda.yml | 4 +- .../build-test-package-python-cuda.yml | 47 +++++++++++++++---- .github/workflows/build-test-package.yml | 4 +- CMakeLists.txt | 4 +- setup.py | 4 +- 5 files changed, 46 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build-test-cxx-cuda.yml b/.github/workflows/build-test-cxx-cuda.yml index 08b17c12a..6ec632aa0 100644 --- a/.github/workflows/build-test-cxx-cuda.yml +++ b/.github/workflows/build-test-cxx-cuda.yml @@ -3,8 +3,8 @@ name: 'Build, Test RTK with CUDA' on: [push,pull_request] env: - itk-git-tag: "v5.3.0" - itk-module-deps: "CudaCommon@82ce4108588f36906dffce146bbad6981e5a5a44" + itk-git-tag: "v5.4rc01" + itk-module-deps: "CudaCommon@v1.0.1" jobs: build-test-cxx: diff --git a/.github/workflows/build-test-package-python-cuda.yml b/.github/workflows/build-test-package-python-cuda.yml index ead009e4e..a6d76677c 100644 --- a/.github/workflows/build-test-package-python-cuda.yml +++ b/.github/workflows/build-test-package-python-cuda.yml @@ -4,10 +4,10 @@ on: [push,pull_request] env: cmake-options: '-DRTK_BUILD_APPLICATIONS:BOOL=OFF -DRTK_CUDA_VERSION=11.6' - itk-wheel-tag: 'v5.3.0' - itk-python-package-tag: 'dc6a18600233ac69a8f42b7489e4edf6a5d8883a' + itk-wheel-tag: 'v5.4rc01' + itk-python-package-tag: '5ad02309321621cdc7269b9b68a35013c912271c' itk-python-package-org: 'InsightSoftwareConsortium' - itk-module-deps: "RTKConsortium/ITKCudaCommon@82ce4108588f36906dffce146bbad6981e5a5a44" + itk-module-deps: "RTKConsortium/ITKCudaCommon@v1.0.1" jobs: build-linux-cuda-python-packages: @@ -15,7 +15,7 @@ jobs: strategy: max-parallel: 2 matrix: - python-version: ["37", "38", "39", "310", "311"] + python3-minor-versions: ["7", "8", "9", "10", "11"] manylinux-platform: ["_2_28-x64","2014-x64"] steps: @@ -49,13 +49,31 @@ jobs: export TARGET_ARCH=`(echo ${MANYLINUX_PLATFORM} | cut -d '-' -f 2)` export ITK_MODULE_NO_CLEANUP=TRUE echo "Building for manylinux specialization ${MANYLINUX_VERSION} and target architecture ${TARGET_ARCH}" - ./dockcross-manylinux-download-cache-and-build-module-wheels.sh "${CMAKE_OPTIONS[@]}" -x "libcuda.so;libcuda.so.1;libcudart.so;libcudart.so.11.0;libcublas.so;libcublas.so.11;libcublasLt.so;libcublasLt.so.11;libcufft.so;libcufft.so.10" cp${{ matrix.python-version }} + + ./dockcross-manylinux-download-cache-and-build-module-wheels.sh "${CMAKE_OPTIONS[@]}" -x "libcuda.so;libcuda.so.1;libcudart.so;libcudart.so.11.0;libcublas.so;libcublas.so.11;libcublasLt.so;libcublasLt.so.11;libcufft.so;libcufft.so.10" cp3${{ matrix.python3-minor-versions }} mv *zst ../.. + - name: Validate build output + shell: bash + run: | + /home/srit/miniconda3/envs/py310/bin/python -m pip install twine + ls dist/ + + MANYLINUX_PLATFORM=${{ matrix.manylinux-platform }} + MANYLINUX_VERSION=`(echo ${MANYLINUX_PLATFORM} | cut -d '-' -f 1)` + TARGET_ARCH_NAME=`(echo ${MANYLINUX_PLATFORM} | cut -d '-' -f 2)` + if [[ ${TARGET_ARCH_NAME} == "x64" ]]; then + TARGET_ARCH_NAME="x86_64" # Match auditwheel naming convention + fi + WHEEL_PATTERN="dist/itk_*cp3${{ matrix.python3-minor-version }}*manylinux${MANYLINUX_VERSION}*${TARGET_ARCH_NAME}.whl" + + echo "Searching for wheels matching pattern ${WHEEL_PATTERN}" + /home/srit/miniconda3/envs/py310/bin/python -m twine check ${WHEEL_PATTERN} + - name: Publish Python package as GitHub Artifact uses: actions/upload-artifact@v3 with: - name: LinuxWheel${{ matrix.python-version }}-cuda116 + name: LinuxWheel3${{ matrix.python3-minor-versions }}-cuda116 path: dist/*.whl build-windows-cuda-python-packages: @@ -63,7 +81,7 @@ jobs: strategy: max-parallel: 2 matrix: - python-version-minor: ["7", "8", "9", "10", "11"] + python3-minor-version: ["7", "8", "9", "10", "11"] steps: - uses: actions/checkout@v3 @@ -105,15 +123,26 @@ jobs: $env:ITKPYTHONPACKAGE_TAG = "${{ env.itk-python-package-tag }}" $env:ITKPYTHONPACKAGE_ORG = "${{ env.itk-python-package-org }}" $env:ITK_MODULE_PREQ = "${{ env.itk-module-deps }}" - ./windows-download-cache-and-build-module-wheels.ps1 "${{ matrix.python-version-minor }}" -setup_options "--lib-paths ""C:/Program\ Files/NVIDIA\ GPU\ Computing\ Toolkit/CUDA/v11.6/bin"" --exclude-libs ""nvcuda.dll;concrt140.dll;cublas64_11.dll;cublasLt64_11.dll;cudart64_110.dll;cufft64_10.dll""" -cmake_options "${{ env.cmake-options }}" + ./windows-download-cache-and-build-module-wheels.ps1 "${{ matrix.python3-minor-version }}" -setup_options "--lib-paths ""C:/Program\ Files/NVIDIA\ GPU\ Computing\ Toolkit/CUDA/v11.6/bin"" --exclude-libs ""nvcuda.dll;concrt140.dll;cublas64_11.dll;cublasLt64_11.dll;cudart64_110.dll;cufft64_10.dll""" -cmake_options "${{ env.cmake-options }}" mkdir -p '${{ github.workspace }}\dist' cp 'dist\*.whl' '${{ github.workspace }}\dist' + - name: Validate build output + shell: pwsh + run: | + python -m pip install twine + ls dist/ + + $WHEEL_PATTERN = "dist/itk_*cp3${{ matrix.python3-minor-version }}*win*.whl" + echo "Searching for wheels matching pattern ${WHEEL_PATTERN}" + + python -m twine check ${WHEEL_PATTERN} + - name: Publish Python package as GitHub Artifact uses: actions/upload-artifact@v3 with: - name: WindowsWheel3.${{ matrix.python-version-minor }}-cuda116 + name: WindowsWheel3${{ matrix.python3-minor-version }}-cuda116 path: dist/*.whl publish-python-packages-to-pypi: diff --git a/.github/workflows/build-test-package.yml b/.github/workflows/build-test-package.yml index a57b63d65..944331b25 100644 --- a/.github/workflows/build-test-package.yml +++ b/.github/workflows/build-test-package.yml @@ -4,10 +4,10 @@ on: [push,pull_request] jobs: cxx-build-workflow: - uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/build-test-cxx.yml@1514c2c529d3319976f82e48a9292be0297ffe9d + uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/build-test-cxx.yml@v5.4.0 python-build-workflow: - uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/build-test-package-python.yml@1514c2c529d3319976f82e48a9292be0297ffe9d + uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/build-test-package-python.yml@v5.4.0 with: manylinux-platforms: '["_2_28-x64","2014-x64"]' cmake-options: '-DRTK_BUILD_APPLICATIONS:BOOL=OFF' diff --git a/CMakeLists.txt b/CMakeLists.txt index 9be3dd2ae..7330c1aa7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,8 +31,8 @@ project(RTK) ## RTK Version set(RTK_VERSION_MAJOR "2") -set(RTK_VERSION_MINOR "4") -set(RTK_VERSION_PATCH "1") +set(RTK_VERSION_MINOR "5") +set(RTK_VERSION_PATCH "0") set(RTK_VERSION_STRING "${RTK_VERSION_MAJOR}.${RTK_VERSION_MINOR}") set(RTK_LIBRARIES RTK) diff --git a/setup.py b/setup.py index 015b7d45e..8a046248a 100755 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ # Configure wheel name if CUDA is used wheel_name='itk-rtk' -wheel_requirements=[r'itk>=5.3.0'] +wheel_requirements=[r'itk>=5.4rc1'] # Extract cuda version from the RTK_CUDA_VERSION cmake option for arg in sys.argv: @@ -24,7 +24,7 @@ setup( name=wheel_name, - version='2.4.1', + version='2.5.0', author='RTK Consortium', author_email='rtk-users@openrtk.org', packages=['itk'],