From 7f96587dd0125ae57f7286f91a4601d8183c6b9a Mon Sep 17 00:00:00 2001
From: Christos Tsolakis <christos.tsolakis@kitware.com>
Date: Fri, 15 Nov 2024 10:21:19 -0500
Subject: [PATCH] ci: Add python313 wheels for macos

---
 .gitlab-ci.yml                                | 70 +++++++++++++++++++
 .../ci/configure_wheel_macos313_arm64.cmake   |  1 +
 .../ci/configure_wheel_macos313_x86_64.cmake  |  1 +
 .gitlab/os-macos.yml                          | 15 ++++
 4 files changed, 87 insertions(+)
 create mode 100644 .gitlab/ci/configure_wheel_macos313_arm64.cmake
 create mode 100644 .gitlab/ci/configure_wheel_macos313_x86_64.cmake

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0dea180e783..15c93ddf5bb 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1047,6 +1047,8 @@ wheel:pypi:upload:
         - wheel-macos-python311-x86_64:build
         - wheel-macos-python312-arm64:build
         - wheel-macos-python312-x86_64:build
+        - wheel-macos-python313-arm64:build
+        - wheel-macos-python313-x86_64:build
         - wheel-windows-python38-x86_64:build
         - wheel-windows-python39-x86_64:build
         - wheel-windows-python310-x86_64:build
@@ -1089,6 +1091,10 @@ wheel:pypi:upload:
         - wheel-macos-python312-arm64:test
         - wheel-macos-python312-x86_64:build
         - wheel-macos-python312-x86_64:test
+        - wheel-macos-python313-arm64:build
+        - wheel-macos-python313-arm64:test
+        - wheel-macos-python313-x86_64:build
+        - wheel-macos-python313-x86_64:test
         - wheel-windows-python38-x86_64:build
         - wheel-windows-python38-x86_64:test
         - wheel-windows-python39-x86_64:build
@@ -1120,11 +1126,14 @@ wheel:vtk:upload:
         - wheel-macos-python311-x86_64:build
         - wheel-macos-python312-arm64:build
         - wheel-macos-python312-x86_64:build
+        - wheel-macos-python313-arm64:build
+        - wheel-macos-python313-x86_64:build
         - wheel-windows-python38-x86_64:build
         - wheel-windows-python39-x86_64:build
         - wheel-windows-python310-x86_64:build
         - wheel-windows-python311-x86_64:build
         - wheel-windows-python312-x86_64:build
+        - wheel-windows-python313-x86_64:build
     needs:
         - wheel-linux-python38-x86_64:build
         - wheel-linux-python38-x86_64:test
@@ -1186,6 +1195,10 @@ wheel:vtk:upload:
         - wheel-macos-python312-arm64:test
         - wheel-macos-python312-x86_64:build
         - wheel-macos-python312-x86_64:test
+        - wheel-macos-python313-arm64:build
+        - wheel-macos-python313-arm64:test
+        - wheel-macos-python313-x86_64:build
+        - wheel-macos-python313-x86_64:test
         - wheel-windows-python38-x86_64:build
         - wheel-windows-python38-x86_64:test
         - wheel-windows-python38-x86_64-osmesa:test
@@ -1222,6 +1235,8 @@ wheel-sdk:upload:
         - wheel-macos-python311-x86_64:build
         - wheel-macos-python312-arm64:build
         - wheel-macos-python312-x86_64:build
+        - wheel-macos-python313-arm64:build
+        - wheel-macos-python313-x86_64:build
         - wheel-windows-python38-x86_64:build
         - wheel-windows-python39-x86_64:build
         - wheel-windows-python310-x86_64:build
@@ -1288,6 +1303,10 @@ wheel-sdk:upload:
         - wheel-macos-python312-arm64:test
         - wheel-macos-python312-x86_64:build
         - wheel-macos-python312-x86_64:test
+        - wheel-macos-python313-arm64:build
+        - wheel-macos-python313-arm64:test
+        - wheel-macos-python313-x86_64:build
+        - wheel-macos-python313-x86_64:test
         - wheel-windows-python38-x86_64:build
         - wheel-windows-python38-x86_64:test
         - wheel-windows-python38-x86_64-osmesa:test
@@ -1458,6 +1477,8 @@ release-artifacts:upload:
         - wheel-macos-python311-x86_64:build
         - wheel-macos-python312-arm64:build
         - wheel-macos-python312-x86_64:build
+        - wheel-macos-python313-arm64:build
+        - wheel-macos-python313-x86_64:build
         - wheel-windows-python38-x86_64:build
         - wheel-windows-python39-x86_64:build
         - wheel-windows-python310-x86_64:build
@@ -1526,6 +1547,10 @@ release-artifacts:upload:
         - wheel-macos-python312-arm64:test
         - wheel-macos-python312-x86_64:build
         - wheel-macos-python312-x86_64:test
+        - wheel-macos-python313-arm64:build
+        - wheel-macos-python313-arm64:test
+        - wheel-macos-python313-x86_64:build
+        - wheel-macos-python313-x86_64:test
         - wheel-windows-python38-x86_64:build
         - wheel-windows-python38-x86_64:test
         - wheel-windows-python38-x86_64-osmesa:test
@@ -1832,6 +1857,51 @@ wheel-macos-python312-x86_64:test:
     needs:
         - wheel-macos-python312-x86_64:build
 
+wheel-macos-python313-arm64:build:
+    extends:
+        - .wheel_macos313_arm64
+        - .cmake_build_wheel_macos
+        - .macos_arm64_wheel_builder_tags
+        - .cmake_wheel_artifacts
+        - .run_manually
+    dependencies: []
+    needs: []
+
+wheel-macos-python313-arm64:test:
+    extends:
+        - .wheel_macos313_arm64
+        - .cmake_test_wheel_macos
+        - .macos_arm64_wheel_builder_tags
+        - .run_automatically
+        - .cdash_annotations_artifacts
+    dependencies:
+        - wheel-macos-python313-arm64:build
+    needs:
+        - wheel-macos-python313-arm64:build
+
+wheel-macos-python313-x86_64:build:
+    extends:
+        - .wheel_macos313_x86_64
+        - .cmake_build_wheel_macos
+        - .macos_x86_64_wheel_builder_tags
+        - .cmake_wheel_artifacts
+        - .run_manually
+    timeout: 90 minutes
+    dependencies: []
+    needs: []
+
+wheel-macos-python313-x86_64:test:
+    extends:
+        - .wheel_macos313_x86_64
+        - .cmake_test_wheel_macos
+        - .macos_x86_64_wheel_builder_tags
+        - .run_automatically
+        - .cdash_annotations_artifacts
+    dependencies:
+        - wheel-macos-python313-x86_64:build
+    needs:
+        - wheel-macos-python313-x86_64:build
+
 # Windows
 
 # The build artifacts are too large. It's unclear how big they actually are at
diff --git a/.gitlab/ci/configure_wheel_macos313_arm64.cmake b/.gitlab/ci/configure_wheel_macos313_arm64.cmake
new file mode 100644
index 00000000000..a1b99c8d4b6
--- /dev/null
+++ b/.gitlab/ci/configure_wheel_macos313_arm64.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_wheel.cmake")
diff --git a/.gitlab/ci/configure_wheel_macos313_x86_64.cmake b/.gitlab/ci/configure_wheel_macos313_x86_64.cmake
new file mode 100644
index 00000000000..a1b99c8d4b6
--- /dev/null
+++ b/.gitlab/ci/configure_wheel_macos313_x86_64.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_wheel.cmake")
diff --git a/.gitlab/os-macos.yml b/.gitlab/os-macos.yml
index d8c747f7a33..1227deee0e6 100644
--- a/.gitlab/os-macos.yml
+++ b/.gitlab/os-macos.yml
@@ -47,6 +47,14 @@
         PYTHON_VERSION_SUFFIX: "3.12"
         _PYTHON_HOST_PLATFORM: "macosx-11.0-arm64"
 
+.wheel_macos313_arm64:
+    extends: .wheel_macos_arm64
+
+    variables:
+        CMAKE_CONFIGURATION: wheel_macos313_arm64
+        PYTHON_VERSION_SUFFIX: "3.13"
+        _PYTHON_HOST_PLATFORM: "macosx-11.0-arm64"
+
 .wheel_macos_x86_64:
     extends: .macos
 
@@ -91,6 +99,13 @@
         PYTHON_VERSION_SUFFIX: "3.12"
         _PYTHON_HOST_PLATFORM: "macosx-10.10-x86_64"
 
+.wheel_macos313_x86_64:
+    extends: .wheel_macos_x86_64
+
+    variables:
+        CMAKE_CONFIGURATION: wheel_macos313_x86_64
+        PYTHON_VERSION_SUFFIX: "3.13"
+        _PYTHON_HOST_PLATFORM: "macosx-10.10-x86_64"
 ### Build and test
 
 .macos_build:
-- 
GitLab