From 18803321c26c8b06d2ee85ff11d680f94c39a48d Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Thu, 14 Nov 2024 17:46:57 -0500 Subject: [PATCH 01/10] ENH: Drop Python 3.8 from default builds Python 3.8 reached its end-of-life (EOL) on October 7, 2024. Closes #285 --- scripts/internal/manylinux-build-common.sh | 2 +- scripts/internal/windows_build_common.py | 2 +- scripts/macpython-install-python.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/internal/manylinux-build-common.sh b/scripts/internal/manylinux-build-common.sh index 1cc3971..8f25791 100644 --- a/scripts/internal/manylinux-build-common.sh +++ b/scripts/internal/manylinux-build-common.sh @@ -12,7 +12,7 @@ if [[ $# -eq 0 ]]; then PYBIN=(/opt/python/*/bin) PYBINARIES=() for version in "${PYBIN[@]}"; do - if [[ ${version} == *"cp38"* || ${version} == *"cp39"* || ${version} == *"cp310"* || ${version} == *"cp311"* ]]; then + if [[ ${version} == *"cp39"* || ${version} == *"cp310"* || ${version} == *"cp311"* ]]; then PYBINARIES+=(${version}) fi done diff --git a/scripts/internal/windows_build_common.py b/scripts/internal/windows_build_common.py index 00afa2a..8f74d91 100644 --- a/scripts/internal/windows_build_common.py +++ b/scripts/internal/windows_build_common.py @@ -4,7 +4,7 @@ import os import shutil -DEFAULT_PY_ENVS = ["38-x64", "39-x64", "310-x64", "311-x64"] +DEFAULT_PY_ENVS = ["39-x64", "310-x64", "311-x64"] SCRIPT_DIR = os.path.dirname(__file__) ROOT_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, "..", "..")) diff --git a/scripts/macpython-install-python.sh b/scripts/macpython-install-python.sh index 359823c..dbb19ae 100755 --- a/scripts/macpython-install-python.sh +++ b/scripts/macpython-install-python.sh @@ -416,7 +416,7 @@ else # Deployment target requirements: # * 10.9: Python 3.7 # * 11: Python >= 3.8 - for pyversion in $LATEST_3p8 $LATEST_3p9 $LATEST_3p10 $LATEST_3p11; do + for pyversion in $LATEST_3p9 $LATEST_3p10 $LATEST_3p11; do install_macpython $pyversion 11 install_virtualenv done From 86cb4425eb67420839df4a661d9b3ba9bce04501 Mon Sep 17 00:00:00 2001 From: Matthew McCormick Date: Fri, 13 Jun 2025 07:10:07 -0400 Subject: [PATCH 02/10] COMP: Support linux tarball generation on macs For ARM builds. --- scripts/dockcross-manylinux-build-tarball.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/dockcross-manylinux-build-tarball.sh b/scripts/dockcross-manylinux-build-tarball.sh index 53a578b..2659ce1 100755 --- a/scripts/dockcross-manylinux-build-tarball.sh +++ b/scripts/dockcross-manylinux-build-tarball.sh @@ -38,11 +38,11 @@ fi # ----------------------------------------------------------------------- -tar -c --to-stdout \ +tar -cf ITKPythonBuilds-linux.tar \ ITKPythonPackage/ITK-* \ ITKPythonPackage/oneTBB* \ ITKPythonPackage/requirements-dev.txt \ - ITKPythonPackage/scripts > ITKPythonBuilds-linux.tar + ITKPythonPackage/scripts $zstd_exe -f \ -10 \ -T6 \ From 19780911886167c4dd3237f35d9fa5a545d2a7d6 Mon Sep 17 00:00:00 2001 From: Matthew McCormick Date: Fri, 13 Jun 2025 07:11:09 -0400 Subject: [PATCH 03/10] COMP: Remove unused zstd localization No longer used. --- scripts/dockcross-manylinux-build-tarball.sh | 7 ------- 1 file changed, 7 deletions(-) diff --git a/scripts/dockcross-manylinux-build-tarball.sh b/scripts/dockcross-manylinux-build-tarball.sh index 2659ce1..ca29e75 100755 --- a/scripts/dockcross-manylinux-build-tarball.sh +++ b/scripts/dockcross-manylinux-build-tarball.sh @@ -4,16 +4,9 @@ # downloaded by the external module build scripts and used to build their # Python package on GitHub CI services. -if test -d /home/kitware/Packaging; then - cd /home/kitware/Packaging -fi - # ----------------------------------------------------------------------- zstd_exe=`(which zstd)` -if [[ -z ${zstd_exe} && -e /home/kitware/Support/zstd-build/programs/zstd ]]; then - zstd_exe=/home/kitware/Support/zstd-build/programs/zstd -fi # Find an appropriately versioned zstd. # From bf217410b20a75b8250576b5f400a884392a72fb Mon Sep 17 00:00:00 2001 From: Matthew McCormick Date: Mon, 23 Jun 2025 06:37:48 -0400 Subject: [PATCH 04/10] COMP: Bump ITK, version to 5.4.4.post1 Incorporates InsightSoftwareConsortium/ITK@a63750180be6b8e5af548f8dbf7a337221136c20, fixing NumPy 1 compatibility. --- CMakeLists.txt | 4 ++-- itkVersion.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f075ed3..161f97f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,8 +94,8 @@ if(ITKPythonPackage_SUPERBUILD) set(ITK_REPOSITORY "https://github.com/InsightSoftwareConsortium/ITK.git") - # release-5.4 branch, 2025-06-11 - set(ITK_GIT_TAG "v5.4.4") + # release-5.4 branch, 2025-06-23 + set(ITK_GIT_TAG "46f39a0ea702247628036fc3cffdb009caa463cf") #----------------------------------------------------------------------------- # A separate project is used to download ITK, so that it can reused diff --git a/itkVersion.py b/itkVersion.py index f7b2321..ff7f305 100644 --- a/itkVersion.py +++ b/itkVersion.py @@ -1,4 +1,4 @@ -VERSION = '5.4.4' +VERSION = '5.4.4.post1' def get_versions(): """Returns versions for the ITK Python package. From ae0684d8311806525106d8022aa2654a1984868d Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Wed, 16 Jul 2025 15:50:49 -0400 Subject: [PATCH 05/10] ENH: Bump ITK to 2025-07-16 main, version to 6.0b1 Towards itk-6.0b1 beta release. --- CMakeLists.txt | 4 ++-- itkVersion.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 28db87d..922387e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,8 +94,8 @@ if(ITKPythonPackage_SUPERBUILD) set(ITK_REPOSITORY "https://github.com/InsightSoftwareConsortium/ITK.git") - # master branch, 2024-05-20 - set(ITK_GIT_TAG "v5.4.0") + # main branch, 2025-07-16 + set(ITK_GIT_TAG "ff4ff13ec295595cab2edbb3173a39ef798e4c7d") #----------------------------------------------------------------------------- # A separate project is used to download ITK, so that it can reused diff --git a/itkVersion.py b/itkVersion.py index abdb742..10a4a99 100644 --- a/itkVersion.py +++ b/itkVersion.py @@ -1,4 +1,4 @@ -VERSION = '5.4.0' +VERSION = '6.0b1' def get_versions(): """Returns versions for the ITK Python package. From 64fda299922e0781c1daa02ebf76b8a25025b550 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Wed, 16 Jul 2025 15:56:37 -0400 Subject: [PATCH 06/10] ENH: Update Macos deployment target to 15.0 Better support for C++17 per discussion: https://github.com/InsightSoftwareConsortium/ITK/issues/5369 Drop documented support for Intel mac wheels. --- README.md | 3 +-- scripts/macpython-build-module-wheels.sh | 8 ++++---- scripts/macpython-build-wheels.sh | 8 ++++---- scripts/macpython-delocate-wheels.sh | 4 ++-- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 882d083..00b039b 100644 --- a/README.md +++ b/README.md @@ -85,8 +85,7 @@ documentation for more information on building wheels by hand. ITKPythonPackage currently supports building wheels for the following platforms and architectures: - Windows 10 x86_64 platforms - Windows 11 x86_64 platforms -- MacOS 10.9+ x86_64 platforms -- MacOS 11.0+ arm64 platforms +- MacOS 15.0+ arm64 platforms - Linux glibc 2.17+ (E.g. Ubuntu 18.04+) x86_64 platforms - Linux glibc 2.28+ (E.g. Ubuntu 20.04+) aarch64 (ARMv8) platforms diff --git a/scripts/macpython-build-module-wheels.sh b/scripts/macpython-build-module-wheels.sh index e5deee3..41b22ea 100755 --- a/scripts/macpython-build-module-wheels.sh +++ b/scripts/macpython-build-module-wheels.sh @@ -94,13 +94,13 @@ for VENV in "${VENVS[@]}"; do fi if [[ $(arch) == "arm64" ]]; then - plat_name="macosx-11.0-arm64" - osx_target="11.0" + plat_name="macosx-15.0-arm64" + osx_target="15.0" osx_arch="arm64" build_path="${SCRIPT_DIR}/../ITK-${py_mm}-macosx_arm64" else - plat_name="macosx-10.9-x86_64" - osx_target="10.9" + plat_name="macosx-15.0-x86_64" + osx_target="15.0" osx_arch="x86_64" build_path="${SCRIPT_DIR}/../ITK-${py_mm}-macosx_x86_64" fi diff --git a/scripts/macpython-build-wheels.sh b/scripts/macpython-build-wheels.sh index 2985aa8..fb04b3e 100755 --- a/scripts/macpython-build-wheels.sh +++ b/scripts/macpython-build-wheels.sh @@ -63,11 +63,11 @@ DELOCATE_PATCH=${VENV}/bin/delocate-patch build_type="Release" if [[ $(arch) == "arm64" ]]; then - osx_target="11.0" + osx_target="15.0" osx_arch="arm64" use_tbb="OFF" else - osx_target="10.9" + osx_target="15.0" osx_arch="x86_64" use_tbb="OFF" fi @@ -107,10 +107,10 @@ for VENV in "${VENVS[@]}"; do ${Python3_EXECUTABLE} -m pip install --upgrade -r ${SCRIPT_DIR}/../requirements-dev.txt if [[ $(arch) == "arm64" ]]; then - plat_name="macosx-11.0-arm64" + plat_name="macosx-15.0-arm64" build_path="${SCRIPT_DIR}/../ITK-${py_mm}-macosx_arm64" else - plat_name="macosx-10.9-x86_64" + plat_name="macosx-15.0-x86_64" build_path="${SCRIPT_DIR}/../ITK-${py_mm}-macosx_x86_64" fi if [[ ! -z "${MACOSX_DEPLOYMENT_TARGET}" ]]; then diff --git a/scripts/macpython-delocate-wheels.sh b/scripts/macpython-delocate-wheels.sh index 2f16cbe..60ac661 100755 --- a/scripts/macpython-delocate-wheels.sh +++ b/scripts/macpython-delocate-wheels.sh @@ -53,11 +53,11 @@ DELOCATE_PATCH=${VENV}/bin/delocate-patch build_type="Release" if [[ $(arch) == "arm64" ]]; then - osx_target="11.0" + osx_target="15.0" osx_arch="arm64" use_tbb="OFF" else - osx_target="10.9" + osx_target="15.0" osx_arch="x86_64" use_tbb="OFF" fi From 174b15f8df75db9c9f528ad38cb0c3c512d80b45 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Tue, 22 Jul 2025 14:18:13 -0400 Subject: [PATCH 07/10] ENH: Bump default ITK_PACKAGE_VERSION to v6.0b01 As we release ITK 6. --- scripts/dockcross-manylinux-set-vars.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/dockcross-manylinux-set-vars.sh b/scripts/dockcross-manylinux-set-vars.sh index 6ac55c8..d91993c 100755 --- a/scripts/dockcross-manylinux-set-vars.sh +++ b/scripts/dockcross-manylinux-set-vars.sh @@ -19,7 +19,7 @@ # ITKPythonBuilds archive tag to use for ITK build artifacts. # See https://github.com/insightSoftwareConsortium/ITKpythonbuilds for available tags. -ITK_PACKAGE_VERSION=${ITK_PACKAGE_VERSION:=v5.4.0} +ITK_PACKAGE_VERSION=${ITK_PACKAGE_VERSION:=v6.0b01} # Github organization for fetching ITKPythonPackage build scripts ITKPYTHONPACKAGE_ORG=${ITKPYTHONPACKAGE_ORG:=InsightSoftwareConsortium} From a50b55b216d91f38b5979110207477bec9fd5bba Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Tue, 22 Jul 2025 14:18:49 -0400 Subject: [PATCH 08/10] ENH: Change default ITKPYTHONPACKAGE_TAG to main This is now the default branch on GitHub. --- scripts/dockcross-manylinux-set-vars.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/dockcross-manylinux-set-vars.sh b/scripts/dockcross-manylinux-set-vars.sh index d91993c..3addb76 100755 --- a/scripts/dockcross-manylinux-set-vars.sh +++ b/scripts/dockcross-manylinux-set-vars.sh @@ -25,7 +25,7 @@ ITK_PACKAGE_VERSION=${ITK_PACKAGE_VERSION:=v6.0b01} ITKPYTHONPACKAGE_ORG=${ITKPYTHONPACKAGE_ORG:=InsightSoftwareConsortium} # ITKPythonPackage tag for fetching build scripts -ITKPYTHONPACKAGE_TAG=${ITKPYTHONPACKAGE_TAG:=master} +ITKPYTHONPACKAGE_TAG=${ITKPYTHONPACKAGE_TAG:=main} ######################################################################## # Docker image parameters From c5ecd636bcd88b0fdd375487f4251bec201be442 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Tue, 22 Jul 2025 14:19:31 -0400 Subject: [PATCH 09/10] ENH: Update default aarch64 manylinux tage to 2025.07.14-5 This is the latest version that has passed quay.io security scans. --- scripts/dockcross-manylinux-set-vars.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/dockcross-manylinux-set-vars.sh b/scripts/dockcross-manylinux-set-vars.sh index 3addb76..ae0d279 100755 --- a/scripts/dockcross-manylinux-set-vars.sh +++ b/scripts/dockcross-manylinux-set-vars.sh @@ -41,7 +41,7 @@ TARGET_ARCH=${TARGET_ARCH:=x64} if [[ ${MANYLINUX_VERSION} == _2_28 && ${TARGET_ARCH} == x64 ]]; then IMAGE_TAG=${IMAGE_TAG:=20240304-9e57d2b} elif [[ ${MANYLINUX_VERSION} == _2_28 && ${TARGET_ARCH} == aarch64 ]]; then - IMAGE_TAG=${IMAGE_TAG:=2024-03-25-9206bd9} + IMAGE_TAG=${IMAGE_TAG:=2025.07.14-5} elif [[ ${MANYLINUX_VERSION} == 2014 ]]; then IMAGE_TAG=${IMAGE_TAG:=20240304-9e57d2b} else From 32e9ed6ce2ce7dc58d1efcba381fc2e682a5fe39 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Wed, 23 Jul 2025 10:31:47 -0400 Subject: [PATCH 10/10] COMP: Update TBB to v2022.2.0 Including updates for CMake 4. --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 922387e..29bd907 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -120,8 +120,8 @@ if(ITKPythonPackage_SUPERBUILD) endif() ExternalProject_add(oneTBB - URL https://github.com/oneapi-src/oneTBB/archive/refs/tags/v2021.9.0.tar.gz - URL_HASH SHA256=1ce48f34dada7837f510735ff1172f6e2c261b09460e3bf773b49791d247d24e + URL https://github.com/oneapi-src/oneTBB/archive/refs/tags/v2022.2.0.tar.gz + URL_HASH SHA256=f0f78001c8c8edb4bddc3d4c5ee7428d56ae313254158ad1eec49eced57f6a5b CMAKE_ARGS -DTBB_TEST:BOOL=OFF -DCMAKE_BUILD_TYPE:STRING=Release