From 66284a0045031762e9c31e26ab993edfacb2a959 Mon Sep 17 00:00:00 2001
From: regro-cf-autotick-bot
<36490558+regro-cf-autotick-bot@users.noreply.github.com>
Date: Tue, 29 Oct 2024 12:54:58 +0000
Subject: [PATCH 1/3] Rebuild for python 3.13
---
.ci_support/migrations/python313.yaml | 42 +++++++++++++++++++++++++++
recipe/meta.yaml | 2 +-
2 files changed, 43 insertions(+), 1 deletion(-)
create mode 100644 .ci_support/migrations/python313.yaml
diff --git a/.ci_support/migrations/python313.yaml b/.ci_support/migrations/python313.yaml
new file mode 100644
index 0000000..119bed8
--- /dev/null
+++ b/.ci_support/migrations/python313.yaml
@@ -0,0 +1,42 @@
+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
+
+python:
+- 3.13.* *_cp313
+# additional entries to add for zip_keys
+numpy:
+- 2
+python_impl:
+- cpython
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 1a7985a..b97a845 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -18,7 +18,7 @@ source:
- standalone_bindings.patch
build:
- number: 1
+ number: 2
outputs:
- name: {{ cxx_name }}
From a083dd22d54dfece2f228ae202d45ac17c5d00ef Mon Sep 17 00:00:00 2001
From: regro-cf-autotick-bot
<36490558+regro-cf-autotick-bot@users.noreply.github.com>
Date: Tue, 29 Oct 2024 12:56:28 +0000
Subject: [PATCH 2/3] MNT: Re-rendered with conda-build 24.9.0, conda-smithy
3.43.0, and conda-forge-pinning 2024.10.29.12.41.35
---
.azure-pipelines/azure-pipelines-linux.yml | 12 ++++++
.azure-pipelines/azure-pipelines-osx.yml | 8 +++-
.azure-pipelines/azure-pipelines-win.yml | 22 +++-------
.../linux_64_python3.13.____cp313.yaml | 35 +++++++++++++++
.../linux_aarch64_python3.13.____cp313.yaml | 39 +++++++++++++++++
.../linux_ppc64le_python3.13.____cp313.yaml | 35 +++++++++++++++
.ci_support/migrations/python312.yaml | 38 ----------------
.ci_support/osx_64_python3.13.____cp313.yaml | 35 +++++++++++++++
.../osx_arm64_python3.13.____cp313.yaml | 35 +++++++++++++++
.ci_support/win_64_python3.13.____cp313.yaml | 20 +++++++++
.scripts/build_steps.sh | 14 +++---
.scripts/run_osx_build.sh | 43 ++++++++++++-------
.scripts/run_win_build.bat | 42 +++++++++++++-----
README.md | 42 ++++++++++++++++++
azure-pipelines.yml | 33 ++++++++++++--
15 files changed, 360 insertions(+), 93 deletions(-)
create mode 100644 .ci_support/linux_64_python3.13.____cp313.yaml
create mode 100644 .ci_support/linux_aarch64_python3.13.____cp313.yaml
create mode 100644 .ci_support/linux_ppc64le_python3.13.____cp313.yaml
delete mode 100644 .ci_support/migrations/python312.yaml
create mode 100644 .ci_support/osx_64_python3.13.____cp313.yaml
create mode 100644 .ci_support/osx_arm64_python3.13.____cp313.yaml
create mode 100644 .ci_support/win_64_python3.13.____cp313.yaml
diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml
index b77a148..b866620 100755
--- a/.azure-pipelines/azure-pipelines-linux.yml
+++ b/.azure-pipelines/azure-pipelines-linux.yml
@@ -20,6 +20,10 @@ jobs:
CONFIG: linux_64_python3.12.____cpython
UPLOAD_PACKAGES: 'True'
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64
+ linux_64_python3.13.____cp313:
+ CONFIG: linux_64_python3.13.____cp313
+ 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'
@@ -36,6 +40,10 @@ jobs:
CONFIG: linux_aarch64_python3.12.____cpython
UPLOAD_PACKAGES: 'True'
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64
+ linux_aarch64_python3.13.____cp313:
+ CONFIG: linux_aarch64_python3.13.____cp313
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64
linux_aarch64_python3.9.____cpython:
CONFIG: linux_aarch64_python3.9.____cpython
UPLOAD_PACKAGES: 'True'
@@ -52,6 +60,10 @@ jobs:
CONFIG: linux_ppc64le_python3.12.____cpython
UPLOAD_PACKAGES: 'True'
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64
+ linux_ppc64le_python3.13.____cp313:
+ CONFIG: linux_ppc64le_python3.13.____cp313
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64
linux_ppc64le_python3.9.____cpython:
CONFIG: linux_ppc64le_python3.9.____cpython
UPLOAD_PACKAGES: 'True'
diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml
index 49fe09a..8f00930 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,6 +17,9 @@ jobs:
osx_64_python3.12.____cpython:
CONFIG: osx_64_python3.12.____cpython
UPLOAD_PACKAGES: 'True'
+ osx_64_python3.13.____cp313:
+ CONFIG: osx_64_python3.13.____cp313
+ UPLOAD_PACKAGES: 'True'
osx_64_python3.9.____cpython:
CONFIG: osx_64_python3.9.____cpython
UPLOAD_PACKAGES: 'True'
@@ -29,6 +32,9 @@ jobs:
osx_arm64_python3.12.____cpython:
CONFIG: osx_arm64_python3.12.____cpython
UPLOAD_PACKAGES: 'True'
+ osx_arm64_python3.13.____cp313:
+ CONFIG: osx_arm64_python3.13.____cp313
+ UPLOAD_PACKAGES: 'True'
osx_arm64_python3.9.____cpython:
CONFIG: osx_arm64_python3.9.____cpython
UPLOAD_PACKAGES: 'True'
diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml
index fa9734f..13ee5d5 100755
--- a/.azure-pipelines/azure-pipelines-win.yml
+++ b/.azure-pipelines/azure-pipelines-win.yml
@@ -17,37 +17,25 @@ jobs:
win_64_python3.12.____cpython:
CONFIG: win_64_python3.12.____cpython
UPLOAD_PACKAGES: 'True'
+ win_64_python3.13.____cp313:
+ CONFIG: win_64_python3.13.____cp313
+ UPLOAD_PACKAGES: 'True'
win_64_python3.9.____cpython:
CONFIG: win_64_python3.9.____cpython
UPLOAD_PACKAGES: 'True'
timeoutInMinutes: 360
variables:
CONDA_BLD_PATH: D:\\bld\\
+ MINIFORGE_HOME: D:\Miniforge
UPLOAD_TEMP: D:\\tmp
steps:
- - task: PythonScript@0
- displayName: 'Download Miniforge'
- inputs:
- scriptSource: inline
- script: |
- import urllib.request
- url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Windows-x86_64.exe'
- path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe"
- urllib.request.urlretrieve(url, path)
-
- - script: |
- start /wait "" %BUILD_ARTIFACTSTAGINGDIRECTORY%\Miniforge.exe /InstallationType=JustMe /RegisterPython=0 /S /D=C:\Miniforge
- displayName: Install Miniforge
-
- - powershell: Write-Host "##vso[task.prependpath]C:\Miniforge\Scripts"
- displayName: Add conda to PATH
-
- script: |
call ".scripts\run_win_build.bat"
displayName: Run Windows build
env:
+ MINIFORGE_HOME: $(MINIFORGE_HOME)
PYTHONUNBUFFERED: 1
CONFIG: $(CONFIG)
CI: azure
diff --git a/.ci_support/linux_64_python3.13.____cp313.yaml b/.ci_support/linux_64_python3.13.____cp313.yaml
new file mode 100644
index 0000000..02039b1
--- /dev/null
+++ b/.ci_support/linux_64_python3.13.____cp313.yaml
@@ -0,0 +1,35 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '13'
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+cdt_name:
+- cos7
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '13'
+docker_image:
+- quay.io/condaforge/linux-anvil-cos7-x86_64
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+pybind11_abi:
+- '4'
+python:
+- 3.13.* *_cp313
+target_platform:
+- linux-64
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+- - c_stdlib_version
+ - cdt_name
diff --git a/.ci_support/linux_aarch64_python3.13.____cp313.yaml b/.ci_support/linux_aarch64_python3.13.____cp313.yaml
new file mode 100644
index 0000000..6180b53
--- /dev/null
+++ b/.ci_support/linux_aarch64_python3.13.____cp313.yaml
@@ -0,0 +1,39 @@
+BUILD:
+- aarch64-conda_cos7-linux-gnu
+c_compiler:
+- gcc
+c_compiler_version:
+- '13'
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+cdt_arch:
+- aarch64
+cdt_name:
+- cos7
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '13'
+docker_image:
+- quay.io/condaforge/linux-anvil-cos7-x86_64
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+pybind11_abi:
+- '4'
+python:
+- 3.13.* *_cp313
+target_platform:
+- linux-aarch64
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+- - c_stdlib_version
+ - cdt_name
diff --git a/.ci_support/linux_ppc64le_python3.13.____cp313.yaml b/.ci_support/linux_ppc64le_python3.13.____cp313.yaml
new file mode 100644
index 0000000..509740f
--- /dev/null
+++ b/.ci_support/linux_ppc64le_python3.13.____cp313.yaml
@@ -0,0 +1,35 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '13'
+c_stdlib:
+- sysroot
+c_stdlib_version:
+- '2.17'
+cdt_name:
+- cos7
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '13'
+docker_image:
+- quay.io/condaforge/linux-anvil-cos7-x86_64
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+pybind11_abi:
+- '4'
+python:
+- 3.13.* *_cp313
+target_platform:
+- linux-ppc64le
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+- - c_stdlib_version
+ - cdt_name
diff --git a/.ci_support/migrations/python312.yaml b/.ci_support/migrations/python312.yaml
deleted file mode 100644
index d71f6f1..0000000
--- a/.ci_support/migrations/python312.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
-migrator_ts: 1695046563
-__migrator:
- 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 # new entry
- - 3.6.* *_73_pypy
- - 3.7.* *_73_pypy
- - 3.8.* *_73_pypy
- - 3.9.* *_73_pypy
- paused: false
- longterm: True
- pr_limit: 5
- max_solver_attempts: 6 # this will make the bot retry "not solvable" stuff 6 times
- exclude:
- # this shouldn't attempt to modify the python feedstocks
- - python
- - pypy3.6
- - pypy-meta
- - cross-python
- - python_abi
- exclude_pinned_pkgs: false
-
-python:
- - 3.12.* *_cpython
-# additional entries to add for zip_keys
-numpy:
- - 1.26
-python_impl:
- - cpython
diff --git a/.ci_support/osx_64_python3.13.____cp313.yaml b/.ci_support/osx_64_python3.13.____cp313.yaml
new file mode 100644
index 0000000..3f5ba28
--- /dev/null
+++ b/.ci_support/osx_64_python3.13.____cp313.yaml
@@ -0,0 +1,35 @@
+MACOSX_DEPLOYMENT_TARGET:
+- '10.13'
+MACOSX_SDK_VERSION:
+- '10.13'
+c_compiler:
+- clang
+c_compiler_version:
+- '17'
+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:
+- '17'
+macos_machine:
+- x86_64-apple-darwin13.4.0
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+pybind11_abi:
+- '4'
+python:
+- 3.13.* *_cp313
+target_platform:
+- osx-64
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
diff --git a/.ci_support/osx_arm64_python3.13.____cp313.yaml b/.ci_support/osx_arm64_python3.13.____cp313.yaml
new file mode 100644
index 0000000..7f113f7
--- /dev/null
+++ b/.ci_support/osx_arm64_python3.13.____cp313.yaml
@@ -0,0 +1,35 @@
+MACOSX_DEPLOYMENT_TARGET:
+- '11.0'
+MACOSX_SDK_VERSION:
+- '11.0'
+c_compiler:
+- clang
+c_compiler_version:
+- '17'
+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:
+- '17'
+macos_machine:
+- arm64-apple-darwin20.0.0
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+pybind11_abi:
+- '4'
+python:
+- 3.13.* *_cp313
+target_platform:
+- osx-arm64
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
diff --git a/.ci_support/win_64_python3.13.____cp313.yaml b/.ci_support/win_64_python3.13.____cp313.yaml
new file mode 100644
index 0000000..eead363
--- /dev/null
+++ b/.ci_support/win_64_python3.13.____cp313.yaml
@@ -0,0 +1,20 @@
+c_compiler:
+- vs2019
+c_stdlib:
+- vs
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cxx_compiler:
+- vs2019
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+pybind11_abi:
+- '4'
+python:
+- 3.13.* *_cp313
+target_platform:
+- win-64
diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh
index 856f469..827a29f 100755
--- a/.scripts/build_steps.sh
+++ b/.scripts/build_steps.sh
@@ -31,13 +31,13 @@ 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}"
@@ -76,8 +76,8 @@ else
--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.6.0
- command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0"
+ # 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
diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh
index 420f051..7f948c4 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="Miniforge3-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"
+
@@ -88,8 +99,8 @@ else
( startgroup "Inspecting artifacts" ) 2> /dev/null
- # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0
- command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0"
+ # 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
diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat
index a45c34f..d3c0345 100755
--- a/.scripts/run_win_build.bat
+++ b/.scripts/run_win_build.bat
@@ -3,30 +3,52 @@
:: changes to this script, consider a proposal to conda-smithy so that other feedstocks can also
:: benefit from the improvement.
-:: Note: we assume a Miniforge installation is available
-
:: INPUTS (required environment variables)
:: CONFIG: name of the .ci_support/*.yaml file for this job
:: CI: azure, github_actions, or unset
+:: MINIFORGE_HOME: where to install the base conda environment
:: UPLOAD_PACKAGES: true or false
:: UPLOAD_ON_BRANCH: true or false
setlocal enableextensions enabledelayedexpansion
+if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3"
+:: Remove trailing backslash, if present
+if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%"
+call :start_group "Provisioning base env with micromamba"
+set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%"
+set "MICROMAMBA_VERSION=1.5.10-0"
+set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64"
+set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%"
+set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe"
+
+echo Downloading micromamba %MICROMAMBA_VERSION%
+if not exist "%MICROMAMBA_TMPDIR%" mkdir "%MICROMAMBA_TMPDIR%"
+certutil -urlcache -split -f "%MICROMAMBA_URL%" "%MICROMAMBA_EXE%"
+if !errorlevel! neq 0 exit /b !errorlevel!
+
+echo Creating environment
+call "%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"
+if !errorlevel! neq 0 exit /b !errorlevel!
+echo Moving pkgs cache from %MAMBA_ROOT_PREFIX% to %MINIFORGE_HOME%
+move /Y "%MAMBA_ROOT_PREFIX%\pkgs" "%MINIFORGE_HOME%"
+if !errorlevel! neq 0 exit /b !errorlevel!
+echo Removing %MAMBA_ROOT_PREFIX%
+del /S /Q "%MAMBA_ROOT_PREFIX%"
+del /S /Q "%MICROMAMBA_TMPDIR%"
+call :end_group
+
call :start_group "Configuring conda"
:: Activate the base conda environment
-call activate base
+call "%MINIFORGE_HOME%\Scripts\activate.bat"
:: Configure the solver
set "CONDA_SOLVER=libmamba"
if !errorlevel! neq 0 exit /b !errorlevel!
set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1"
-:: Provision the necessary dependencies to build the recipe later
-echo Installing dependencies
-mamba.exe install pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes
-if !errorlevel! neq 0 exit /b !errorlevel!
-
:: Set basic configuration
echo Setting up configuration
setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml
@@ -59,8 +81,8 @@ conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTR
if !errorlevel! neq 0 exit /b !errorlevel!
call :start_group "Inspecting artifacts"
-:: inspect_artifacts was only added in conda-forge-ci-setup 4.6.0
-WHERE inspect_artifacts >nul 2>nul && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0"
+:: inspect_artifacts was only added in conda-forge-ci-setup 4.9.4
+WHERE inspect_artifacts >nul 2>nul && inspect_artifacts --recipe-dir ".\recipe" -m .ci_support\%CONFIG%.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4"
call :end_group
:: Prepare some environment variables for the upload step
diff --git a/README.md b/README.md
index 2e33c16..00778ca 100644
--- a/README.md
+++ b/README.md
@@ -47,6 +47,13 @@ Current build status
+