diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml
index c6aefc2..be472af 100755
--- a/.azure-pipelines/azure-pipelines-linux.yml
+++ b/.azure-pipelines/azure-pipelines-linux.yml
@@ -20,6 +20,10 @@ jobs:
CONFIG: linux_64_python3.13.____cp313
UPLOAD_PACKAGES: 'True'
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ linux_64_python3.14.____cp314:
+ CONFIG: linux_64_python3.14.____cp314
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
linux_aarch64_python3.11.____cpython:
CONFIG: linux_aarch64_python3.11.____cpython
UPLOAD_PACKAGES: 'True'
@@ -32,6 +36,10 @@ jobs:
CONFIG: linux_aarch64_python3.13.____cp313
UPLOAD_PACKAGES: 'True'
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ linux_aarch64_python3.14.____cp314:
+ CONFIG: linux_aarch64_python3.14.____cp314
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
linux_ppc64le_python3.11.____cpython:
CONFIG: linux_ppc64le_python3.11.____cpython
UPLOAD_PACKAGES: 'True'
@@ -44,6 +52,10 @@ jobs:
CONFIG: linux_ppc64le_python3.13.____cp313
UPLOAD_PACKAGES: 'True'
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ linux_ppc64le_python3.14.____cp314:
+ CONFIG: linux_ppc64le_python3.14.____cp314
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
timeoutInMinutes: 360
variables: {}
diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml
index 7b5eb13..6f88a1e 100755
--- a/.azure-pipelines/azure-pipelines-osx.yml
+++ b/.azure-pipelines/azure-pipelines-osx.yml
@@ -17,6 +17,9 @@ jobs:
osx_64_python3.13.____cp313:
CONFIG: osx_64_python3.13.____cp313
UPLOAD_PACKAGES: 'True'
+ osx_64_python3.14.____cp314:
+ CONFIG: osx_64_python3.14.____cp314
+ UPLOAD_PACKAGES: 'True'
osx_arm64_python3.11.____cpython:
CONFIG: osx_arm64_python3.11.____cpython
UPLOAD_PACKAGES: 'True'
@@ -26,6 +29,9 @@ jobs:
osx_arm64_python3.13.____cp313:
CONFIG: osx_arm64_python3.13.____cp313
UPLOAD_PACKAGES: 'True'
+ osx_arm64_python3.14.____cp314:
+ CONFIG: osx_arm64_python3.14.____cp314
+ UPLOAD_PACKAGES: 'True'
timeoutInMinutes: 360
variables: {}
diff --git a/.ci_support/linux_64_python3.11.____cpython.yaml b/.ci_support/linux_64_python3.11.____cpython.yaml
index d0e6225..3a58289 100644
--- a/.ci_support/linux_64_python3.11.____cpython.yaml
+++ b/.ci_support/linux_64_python3.11.____cpython.yaml
@@ -2,8 +2,6 @@ c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
-cdt_name:
-- conda
channel_sources:
- conda-forge
channel_targets:
diff --git a/.ci_support/linux_64_python3.12.____cpython.yaml b/.ci_support/linux_64_python3.12.____cpython.yaml
index cf62d5d..8bdefb3 100644
--- a/.ci_support/linux_64_python3.12.____cpython.yaml
+++ b/.ci_support/linux_64_python3.12.____cpython.yaml
@@ -2,8 +2,6 @@ c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
-cdt_name:
-- conda
channel_sources:
- conda-forge
channel_targets:
diff --git a/.ci_support/linux_64_python3.13.____cp313.yaml b/.ci_support/linux_64_python3.13.____cp313.yaml
index 1c818d0..c4402a6 100644
--- a/.ci_support/linux_64_python3.13.____cp313.yaml
+++ b/.ci_support/linux_64_python3.13.____cp313.yaml
@@ -2,8 +2,6 @@ c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
-cdt_name:
-- conda
channel_sources:
- conda-forge
channel_targets:
diff --git a/.ci_support/linux_64_python3.14.____cp314.yaml b/.ci_support/linux_64_python3.14.____cp314.yaml
new file mode 100644
index 0000000..df41a3a
--- /dev/null
+++ b/.ci_support/linux_64_python3.14.____cp314.yaml
@@ -0,0 +1,22 @@
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '14'
+docker_image:
+- quay.io/condaforge/linux-anvil-x86_64:alma9
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.14.* *_cp314
+target_platform:
+- linux-64
diff --git a/.ci_support/linux_aarch64_python3.11.____cpython.yaml b/.ci_support/linux_aarch64_python3.11.____cpython.yaml
index 52ac1fa..7f300aa 100644
--- a/.ci_support/linux_aarch64_python3.11.____cpython.yaml
+++ b/.ci_support/linux_aarch64_python3.11.____cpython.yaml
@@ -2,8 +2,6 @@ c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
-cdt_name:
-- conda
channel_sources:
- conda-forge
channel_targets:
diff --git a/.ci_support/linux_aarch64_python3.12.____cpython.yaml b/.ci_support/linux_aarch64_python3.12.____cpython.yaml
index 6e153aa..3a80991 100644
--- a/.ci_support/linux_aarch64_python3.12.____cpython.yaml
+++ b/.ci_support/linux_aarch64_python3.12.____cpython.yaml
@@ -2,8 +2,6 @@ c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
-cdt_name:
-- conda
channel_sources:
- conda-forge
channel_targets:
diff --git a/.ci_support/linux_aarch64_python3.13.____cp313.yaml b/.ci_support/linux_aarch64_python3.13.____cp313.yaml
index 3351e9e..f5b50f9 100644
--- a/.ci_support/linux_aarch64_python3.13.____cp313.yaml
+++ b/.ci_support/linux_aarch64_python3.13.____cp313.yaml
@@ -2,8 +2,6 @@ c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
-cdt_name:
-- conda
channel_sources:
- conda-forge
channel_targets:
diff --git a/.ci_support/linux_aarch64_python3.14.____cp314.yaml b/.ci_support/linux_aarch64_python3.14.____cp314.yaml
new file mode 100644
index 0000000..7177be1
--- /dev/null
+++ b/.ci_support/linux_aarch64_python3.14.____cp314.yaml
@@ -0,0 +1,22 @@
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '14'
+docker_image:
+- quay.io/condaforge/linux-anvil-x86_64:alma9
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.14.* *_cp314
+target_platform:
+- linux-aarch64
diff --git a/.ci_support/linux_ppc64le_python3.11.____cpython.yaml b/.ci_support/linux_ppc64le_python3.11.____cpython.yaml
index 7ca3eeb..ce9e844 100644
--- a/.ci_support/linux_ppc64le_python3.11.____cpython.yaml
+++ b/.ci_support/linux_ppc64le_python3.11.____cpython.yaml
@@ -2,8 +2,6 @@ c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
-cdt_name:
-- conda
channel_sources:
- conda-forge
channel_targets:
diff --git a/.ci_support/linux_ppc64le_python3.12.____cpython.yaml b/.ci_support/linux_ppc64le_python3.12.____cpython.yaml
index 69e4895..aff8fea 100644
--- a/.ci_support/linux_ppc64le_python3.12.____cpython.yaml
+++ b/.ci_support/linux_ppc64le_python3.12.____cpython.yaml
@@ -2,8 +2,6 @@ c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
-cdt_name:
-- conda
channel_sources:
- conda-forge
channel_targets:
diff --git a/.ci_support/linux_ppc64le_python3.13.____cp313.yaml b/.ci_support/linux_ppc64le_python3.13.____cp313.yaml
index 18c7870..4409028 100644
--- a/.ci_support/linux_ppc64le_python3.13.____cp313.yaml
+++ b/.ci_support/linux_ppc64le_python3.13.____cp313.yaml
@@ -2,8 +2,6 @@ c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
-cdt_name:
-- conda
channel_sources:
- conda-forge
channel_targets:
diff --git a/.ci_support/linux_ppc64le_python3.14.____cp314.yaml b/.ci_support/linux_ppc64le_python3.14.____cp314.yaml
new file mode 100644
index 0000000..3fa5bfc
--- /dev/null
+++ b/.ci_support/linux_ppc64le_python3.14.____cp314.yaml
@@ -0,0 +1,22 @@
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '14'
+docker_image:
+- quay.io/condaforge/linux-anvil-x86_64:alma9
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.14.* *_cp314
+target_platform:
+- linux-ppc64le
diff --git a/.ci_support/migrations/python314.yaml b/.ci_support/migrations/python314.yaml
new file mode 100644
index 0000000..e382cc9
--- /dev/null
+++ b/.ci_support/migrations/python314.yaml
@@ -0,0 +1,41 @@
+# this is intentionally sorted before the 3.13t migrator, because that determines
+# the order of application of the migrators; otherwise we'd have to add values for
+# is_freethreading and is_abi3 keys here, since that migration extends the zip;
+migrator_ts: 1724712607
+__migrator:
+ commit_message: Rebuild for python 3.14
+ migration_number: 1
+ operation: key_add
+ primary_key: python
+ ordering:
+ python:
+ - 3.9.* *_cpython
+ - 3.10.* *_cpython
+ - 3.11.* *_cpython
+ - 3.12.* *_cpython
+ - 3.13.* *_cp313
+ - 3.13.* *_cp313t
+ - 3.14.* *_cp314 # new entry
+ paused: false
+ longterm: true
+ pr_limit: 5
+ max_solver_attempts: 3 # this will make the bot retry "not solvable" stuff 12 times
+ exclude:
+ # this shouldn't attempt to modify the python feedstocks
+ - python
+ - pypy3.6
+ - pypy-meta
+ - cross-python
+ - python_abi
+ # Manually migrated (e.g. were blocked on missing dev dependencies)
+ - pyarrow
+ exclude_pinned_pkgs: false
+ ignored_deps_per_node:
+ matplotlib:
+ - pyqt
+
+python:
+- 3.14.* *_cp314
+# additional entries to add for zip_keys
+is_python_min:
+- false
diff --git a/.ci_support/osx_64_python3.14.____cp314.yaml b/.ci_support/osx_64_python3.14.____cp314.yaml
new file mode 100644
index 0000000..f42bcdb
--- /dev/null
+++ b/.ci_support/osx_64_python3.14.____cp314.yaml
@@ -0,0 +1,26 @@
+MACOSX_DEPLOYMENT_TARGET:
+- '10.13'
+MACOSX_SDK_VERSION:
+- '10.13'
+c_stdlib:
+- macosx_deployment_target
+c_stdlib_version:
+- '10.13'
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cxx_compiler:
+- clangxx
+cxx_compiler_version:
+- '19'
+macos_machine:
+- x86_64-apple-darwin13.4.0
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.14.* *_cp314
+target_platform:
+- osx-64
diff --git a/.ci_support/osx_arm64_python3.14.____cp314.yaml b/.ci_support/osx_arm64_python3.14.____cp314.yaml
new file mode 100644
index 0000000..2b4d128
--- /dev/null
+++ b/.ci_support/osx_arm64_python3.14.____cp314.yaml
@@ -0,0 +1,26 @@
+MACOSX_DEPLOYMENT_TARGET:
+- '11.0'
+MACOSX_SDK_VERSION:
+- '11.0'
+c_stdlib:
+- macosx_deployment_target
+c_stdlib_version:
+- '11.0'
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cxx_compiler:
+- clangxx
+cxx_compiler_version:
+- '19'
+macos_machine:
+- arm64-apple-darwin20.0.0
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.14.* *_cp314
+target_platform:
+- osx-arm64
diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh
index 361edeb..bac7141 100755
--- a/.scripts/run_osx_build.sh
+++ b/.scripts/run_osx_build.sh
@@ -63,6 +63,25 @@ if [[ "${sha:-}" == "" ]]; then
sha=$(git rev-parse HEAD)
fi
+if [[ "${OSX_SDK_DIR:-}" == "" ]]; then
+ if [[ "${CI:-}" == "" ]]; then
+ echo "Please set OSX_SDK_DIR to a directory where SDKs can be downloaded to. Aborting"
+ exit 1
+ else
+ export OSX_SDK_DIR=/opt/conda-sdks
+ /usr/bin/sudo mkdir -p "${OSX_SDK_DIR}"
+ /usr/bin/sudo chown "${USER}" "${OSX_SDK_DIR}"
+ fi
+else
+ if tmpf=$(mktemp -p "$OSX_SDK_DIR" tmp.XXXXXXXX 2>/dev/null); then
+ rm -f "$tmpf"
+ echo "OSX_SDK_DIR is writeable without sudo, continuing"
+ else
+ echo "User-provided OSX_SDK_DIR is not writeable for current user! Aborting"
+ exit 1
+ fi
+fi
+
echo -e "\n\nRunning the build setup script."
source run_conda_forge_build_setup
diff --git a/README.md b/README.md
index 4e90eae..19ab1ac 100644
--- a/README.md
+++ b/README.md
@@ -47,6 +47,13 @@ Current build status
+