diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml
index bdc90c7..3db01d7 100755
--- a/.azure-pipelines/azure-pipelines-linux.yml
+++ b/.azure-pipelines/azure-pipelines-linux.yml
@@ -20,10 +20,6 @@ jobs:
CONFIG: linux_64_python3.12.____cpython
UPLOAD_PACKAGES: 'True'
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64
- linux_64_python3.9.____73_pypy:
- CONFIG: linux_64_python3.9.____73_pypy
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64
linux_64_python3.9.____cpython:
CONFIG: linux_64_python3.9.____cpython
UPLOAD_PACKAGES: 'True'
diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml
index a2b3a7f..6c6bd90 100755
--- a/.azure-pipelines/azure-pipelines-osx.yml
+++ b/.azure-pipelines/azure-pipelines-osx.yml
@@ -5,7 +5,7 @@
jobs:
- job: osx
pool:
- vmImage: macOS-12
+ vmImage: macOS-13
strategy:
matrix:
osx_64_python3.10.____cpython:
@@ -17,9 +17,6 @@ jobs:
osx_64_python3.12.____cpython:
CONFIG: osx_64_python3.12.____cpython
UPLOAD_PACKAGES: 'True'
- osx_64_python3.9.____73_pypy:
- CONFIG: osx_64_python3.9.____73_pypy
- UPLOAD_PACKAGES: 'True'
osx_64_python3.9.____cpython:
CONFIG: osx_64_python3.9.____cpython
UPLOAD_PACKAGES: 'True'
diff --git a/.ci_support/linux_64_python3.10.____cpython.yaml b/.ci_support/linux_64_python3.10.____cpython.yaml
index 97079b2..81b6be6 100644
--- a/.ci_support/linux_64_python3.10.____cpython.yaml
+++ b/.ci_support/linux_64_python3.10.____cpython.yaml
@@ -1,15 +1,15 @@
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
-- '2.12'
+- '2.17'
cdt_name:
-- cos6
+- cos7
channel_sources:
-- conda-forge/label/numpy_rc,conda-forge
+- conda-forge
channel_targets:
- conda-forge main
docker_image:
diff --git a/.ci_support/linux_64_python3.11.____cpython.yaml b/.ci_support/linux_64_python3.11.____cpython.yaml
index 72e14f8..2b05739 100644
--- a/.ci_support/linux_64_python3.11.____cpython.yaml
+++ b/.ci_support/linux_64_python3.11.____cpython.yaml
@@ -1,15 +1,15 @@
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
-- '2.12'
+- '2.17'
cdt_name:
-- cos6
+- cos7
channel_sources:
-- conda-forge/label/numpy_rc,conda-forge
+- conda-forge
channel_targets:
- conda-forge main
docker_image:
diff --git a/.ci_support/linux_64_python3.12.____cpython.yaml b/.ci_support/linux_64_python3.12.____cpython.yaml
index 1108505..ec263b8 100644
--- a/.ci_support/linux_64_python3.12.____cpython.yaml
+++ b/.ci_support/linux_64_python3.12.____cpython.yaml
@@ -1,15 +1,15 @@
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
-- '2.12'
+- '2.17'
cdt_name:
-- cos6
+- cos7
channel_sources:
-- conda-forge/label/numpy_rc,conda-forge
+- conda-forge
channel_targets:
- conda-forge main
docker_image:
diff --git a/.ci_support/linux_64_python3.9.____73_pypy.yaml b/.ci_support/linux_64_python3.9.____73_pypy.yaml
deleted file mode 100644
index 19f1a73..0000000
--- a/.ci_support/linux_64_python3.9.____73_pypy.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-c_compiler:
-- gcc
-c_compiler_version:
-- '12'
-c_stdlib:
-- sysroot
-c_stdlib_version:
-- '2.12'
-cdt_name:
-- cos6
-channel_sources:
-- conda-forge/label/numpy_rc,conda-forge
-channel_targets:
-- conda-forge main
-docker_image:
-- quay.io/condaforge/linux-anvil-cos7-x86_64
-pin_run_as_build:
- python:
- min_pin: x.x
- max_pin: x.x
-python:
-- 3.9.* *_73_pypy
-target_platform:
-- linux-64
-zip_keys:
-- - c_stdlib_version
- - cdt_name
diff --git a/.ci_support/linux_64_python3.9.____cpython.yaml b/.ci_support/linux_64_python3.9.____cpython.yaml
index 5d07691..b621fce 100644
--- a/.ci_support/linux_64_python3.9.____cpython.yaml
+++ b/.ci_support/linux_64_python3.9.____cpython.yaml
@@ -1,15 +1,15 @@
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
-- '2.12'
+- '2.17'
cdt_name:
-- cos6
+- cos7
channel_sources:
-- conda-forge/label/numpy_rc,conda-forge
+- conda-forge
channel_targets:
- conda-forge main
docker_image:
diff --git a/.ci_support/migrations/pypy38.yaml b/.ci_support/migrations/pypy38.yaml
deleted file mode 100644
index 95e0542..0000000
--- a/.ci_support/migrations/pypy38.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-migrator_ts: 1647123563
-__migrator:
- migration_number: 1
- primary_key: python
- ordering:
- python:
- - 3.6.* *_cpython
- - 3.7.* *_cpython
- - 3.8.* *_cpython
- - 3.9.* *_cpython
- - 3.10.* *_cpython
- - 3.6.* *_73_pypy
- - 3.7.* *_73_pypy
- - 3.8.* *_73_pypy
- - 3.9.* *_73_pypy
- paused: False
- longterm: True
- use_local: False
- check_solvable: True
- exclude_pinned_pkgs: False
- pr_limit: 10
- bump_number: 1
- wait_for_migrators:
- - python310
- commit_message: "Rebuild for PyPy3.8 and PyPy3.9"
- exclude:
- # this shouldn't attempt to modify the python feedstocks
- - python
- - pypy3.6
- - pypy-meta
-
-python:
- - 3.7.* *_cpython # [not (osx and arm64)]
- - 3.8.* *_cpython
- - 3.9.* *_cpython
- - 3.10.* *_cpython
- - 3.8.* *_73_pypy # [not (osx and arm64)]
- - 3.9.* *_73_pypy # [not (osx and arm64)]
-numpy:
- # part of a zip_keys: python, python_impl, numpy
- - 1.19 # [not (osx and arm64)]
- - 1.19
- - 1.19
- - 1.21
- - 1.19 # [not (osx and arm64)]
- - 1.19 # [not (osx and arm64)]
-python_impl:
- - cpython # [not (osx and arm64)]
- - cpython
- - cpython
- - cpython
- - pypy # [not (osx and arm64)]
- - pypy # [not (osx and arm64)]
diff --git a/.ci_support/migrations/python313.yaml b/.ci_support/migrations/python313.yaml
new file mode 100644
index 0000000..f9389e3
--- /dev/null
+++ b/.ci_support/migrations/python313.yaml
@@ -0,0 +1,46 @@
+migrator_ts: 1724712607
+__migrator:
+ commit_message: Rebuild for python 3.13
+ migration_number: 1
+ operation: key_add
+ primary_key: python
+ ordering:
+ python:
+ - 3.6.* *_cpython
+ - 3.7.* *_cpython
+ - 3.8.* *_cpython
+ - 3.9.* *_cpython
+ - 3.10.* *_cpython
+ - 3.11.* *_cpython
+ - 3.12.* *_cpython
+ - 3.13.* *_cp313 # new entry
+ - 3.6.* *_73_pypy
+ - 3.7.* *_73_pypy
+ - 3.8.* *_73_pypy
+ - 3.9.* *_73_pypy
+ paused: false
+ longterm: true
+ pr_limit: 20
+ 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
+ # see https://github.com/conda-forge/scipy-feedstock/pull/283
+ - scipy
+ exclude_pinned_pkgs: false
+ additional_zip_keys:
+ - channel_sources
+
+python:
+- 3.13.* *_cp313
+channel_sources:
+- conda-forge/label/python_rc,conda-forge
+# additional entries to add for zip_keys
+numpy:
+- 2
+python_impl:
+- cpython
diff --git a/.ci_support/osx_64_python3.10.____cpython.yaml b/.ci_support/osx_64_python3.10.____cpython.yaml
index 92c5cbf..47b9ccf 100644
--- a/.ci_support/osx_64_python3.10.____cpython.yaml
+++ b/.ci_support/osx_64_python3.10.____cpython.yaml
@@ -5,17 +5,17 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
- '10.13'
channel_sources:
-- conda-forge/label/numpy_rc,conda-forge
+- conda-forge
channel_targets:
- conda-forge main
llvm_openmp:
-- '16'
+- '17'
macos_machine:
- x86_64-apple-darwin13.4.0
pin_run_as_build:
diff --git a/.ci_support/osx_64_python3.11.____cpython.yaml b/.ci_support/osx_64_python3.11.____cpython.yaml
index de9950a..a63a9b7 100644
--- a/.ci_support/osx_64_python3.11.____cpython.yaml
+++ b/.ci_support/osx_64_python3.11.____cpython.yaml
@@ -5,17 +5,17 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
- '10.13'
channel_sources:
-- conda-forge/label/numpy_rc,conda-forge
+- conda-forge
channel_targets:
- conda-forge main
llvm_openmp:
-- '16'
+- '17'
macos_machine:
- x86_64-apple-darwin13.4.0
pin_run_as_build:
diff --git a/.ci_support/osx_64_python3.12.____cpython.yaml b/.ci_support/osx_64_python3.12.____cpython.yaml
index f7e5161..1cfa0a2 100644
--- a/.ci_support/osx_64_python3.12.____cpython.yaml
+++ b/.ci_support/osx_64_python3.12.____cpython.yaml
@@ -5,17 +5,17 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
- '10.13'
channel_sources:
-- conda-forge/label/numpy_rc,conda-forge
+- conda-forge
channel_targets:
- conda-forge main
llvm_openmp:
-- '16'
+- '17'
macos_machine:
- x86_64-apple-darwin13.4.0
pin_run_as_build:
diff --git a/.ci_support/osx_64_python3.9.____73_pypy.yaml b/.ci_support/osx_64_python3.9.____73_pypy.yaml
deleted file mode 100644
index ed304e4..0000000
--- a/.ci_support/osx_64_python3.9.____73_pypy.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-MACOSX_DEPLOYMENT_TARGET:
-- '10.13'
-MACOSX_SDK_VERSION:
-- '10.13'
-c_compiler:
-- clang
-c_compiler_version:
-- '16'
-c_stdlib:
-- macosx_deployment_target
-c_stdlib_version:
-- '10.13'
-channel_sources:
-- conda-forge/label/numpy_rc,conda-forge
-channel_targets:
-- conda-forge main
-llvm_openmp:
-- '16'
-macos_machine:
-- x86_64-apple-darwin13.4.0
-pin_run_as_build:
- python:
- min_pin: x.x
- max_pin: x.x
-python:
-- 3.9.* *_73_pypy
-target_platform:
-- osx-64
diff --git a/.ci_support/osx_64_python3.9.____cpython.yaml b/.ci_support/osx_64_python3.9.____cpython.yaml
index c703707..602ed07 100644
--- a/.ci_support/osx_64_python3.9.____cpython.yaml
+++ b/.ci_support/osx_64_python3.9.____cpython.yaml
@@ -5,17 +5,17 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
- '10.13'
channel_sources:
-- conda-forge/label/numpy_rc,conda-forge
+- conda-forge
channel_targets:
- conda-forge main
llvm_openmp:
-- '16'
+- '17'
macos_machine:
- x86_64-apple-darwin13.4.0
pin_run_as_build:
diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh
index 2f3df6c..f8051ab 100755
--- a/.scripts/build_steps.sh
+++ b/.scripts/build_steps.sh
@@ -31,18 +31,20 @@ pkgs_dirs:
solver: libmamba
CONDARC
+mv /opt/conda/conda-meta/history /opt/conda/conda-meta/history.$(date +%Y-%m-%d-%H-%M-%S)
+echo > /opt/conda/conda-meta/history
+micromamba install --root-prefix ~/.conda --prefix /opt/conda \
+ --yes --override-channels --channel conda-forge --strict-channel-priority \
+ pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1"
export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1
-mamba install --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \
- pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1"
-mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \
- pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1"
-
# set up the condarc
setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}"
source run_conda_forge_build_setup
+
+
# make the build number clobber
make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}"
@@ -69,6 +71,12 @@ else
--suppress-variables ${EXTRA_CB_OPTIONS:-} \
--clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \
--extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}"
+ ( startgroup "Inspecting artifacts" ) 2> /dev/null
+
+ # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4
+ command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4"
+
+ ( endgroup "Inspecting artifacts" ) 2> /dev/null
( startgroup "Validating outputs" ) 2> /dev/null
validate_recipe_outputs "${FEEDSTOCK_NAME}"
diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh
index 165fa51..cc73c21 100755
--- a/.scripts/run_osx_build.sh
+++ b/.scripts/run_osx_build.sh
@@ -7,28 +7,39 @@ source .scripts/logging_utils.sh
set -xe
MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3}
+MINIFORGE_HOME=${MINIFORGE_HOME%/} # remove trailing slash
-( startgroup "Installing a fresh version of Miniforge" ) 2> /dev/null
-
-MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download"
-MINIFORGE_FILE="Mambaforge-MacOSX-$(uname -m).sh"
-curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}"
-rm -rf ${MINIFORGE_HOME}
-bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME}
-
-( endgroup "Installing a fresh version of Miniforge" ) 2> /dev/null
+( startgroup "Provisioning base env with micromamba" ) 2> /dev/null
+MICROMAMBA_VERSION="1.5.10-0"
+if [[ "$(uname -m)" == "arm64" ]]; then
+ osx_arch="osx-arm64"
+else
+ osx_arch="osx-64"
+fi
+MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}"
+MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)"
+echo "Downloading micromamba ${MICROMAMBA_VERSION}"
+micromamba_exe="$(mktemp -d)/micromamba"
+curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}"
+chmod +x "${micromamba_exe}"
+echo "Creating environment"
+"${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \
+ --channel conda-forge \
+ pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1"
+echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}"
+mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}"
+echo "Cleaning up micromamba"
+rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true
+( endgroup "Provisioning base env with micromamba" ) 2> /dev/null
( startgroup "Configuring conda" ) 2> /dev/null
-source ${MINIFORGE_HOME}/etc/profile.d/conda.sh
+source "${MINIFORGE_HOME}/etc/profile.d/conda.sh"
conda activate base
export CONDA_SOLVER="libmamba"
export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1
-mamba install --update-specs --quiet --yes --channel conda-forge --strict-channel-priority \
- pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1"
-mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \
- pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1"
+
@@ -81,6 +92,13 @@ else
--suppress-variables ${EXTRA_CB_OPTIONS:-} \
--clobber-file ./.ci_support/clobber_${CONFIG}.yaml \
--extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha"
+
+ ( startgroup "Inspecting artifacts" ) 2> /dev/null
+
+ # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4
+ command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir ./recipe -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4"
+
+ ( endgroup "Inspecting artifacts" ) 2> /dev/null
( startgroup "Validating outputs" ) 2> /dev/null
validate_recipe_outputs "${FEEDSTOCK_NAME}"
diff --git a/README.md b/README.md
index 4cec762..82771fe 100644
--- a/README.md
+++ b/README.md
@@ -47,13 +47,6 @@ Current build status
-