diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml
index 74229d1..f693f7f 100755
--- a/.azure-pipelines/azure-pipelines-linux.yml
+++ b/.azure-pipelines/azure-pipelines-linux.yml
@@ -16,10 +16,6 @@ jobs:
CONFIG: linux_64_python3.11.____cpython
UPLOAD_PACKAGES: 'True'
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64
- linux_64_python3.8.____cpython:
- CONFIG: linux_64_python3.8.____cpython
- 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'
@@ -32,10 +28,6 @@ jobs:
CONFIG: linux_aarch64_python3.11.____cpython
UPLOAD_PACKAGES: 'True'
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64
- linux_aarch64_python3.8.____cpython:
- CONFIG: linux_aarch64_python3.8.____cpython
- 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'
@@ -48,10 +40,6 @@ jobs:
CONFIG: linux_ppc64le_python3.11.____cpython
UPLOAD_PACKAGES: 'True'
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64
- linux_ppc64le_python3.8.____cpython:
- CONFIG: linux_ppc64le_python3.8.____cpython
- 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 79030d5..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,8 +17,8 @@ jobs:
osx_64_python3.12.____cpython:
CONFIG: osx_64_python3.12.____cpython
UPLOAD_PACKAGES: 'True'
- osx_64_python3.8.____cpython:
- CONFIG: osx_64_python3.8.____cpython
+ 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
@@ -32,8 +32,8 @@ jobs:
osx_arm64_python3.12.____cpython:
CONFIG: osx_arm64_python3.12.____cpython
UPLOAD_PACKAGES: 'True'
- osx_arm64_python3.8.____cpython:
- CONFIG: osx_arm64_python3.8.____cpython
+ 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
diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml
index 833c571..13ee5d5 100755
--- a/.azure-pipelines/azure-pipelines-win.yml
+++ b/.azure-pipelines/azure-pipelines-win.yml
@@ -17,8 +17,8 @@ jobs:
win_64_python3.12.____cpython:
CONFIG: win_64_python3.12.____cpython
UPLOAD_PACKAGES: 'True'
- win_64_python3.8.____cpython:
- CONFIG: win_64_python3.8.____cpython
+ 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
@@ -26,31 +26,16 @@ jobs:
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.10.____cpython.yaml b/.ci_support/linux_64_python3.10.____cpython.yaml
index ddacbee..a59df0a 100644
--- a/.ci_support/linux_64_python3.10.____cpython.yaml
+++ b/.ci_support/linux_64_python3.10.____cpython.yaml
@@ -1,7 +1,7 @@
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
diff --git a/.ci_support/linux_64_python3.11.____cpython.yaml b/.ci_support/linux_64_python3.11.____cpython.yaml
index a74c555..d7b4ea2 100644
--- a/.ci_support/linux_64_python3.11.____cpython.yaml
+++ b/.ci_support/linux_64_python3.11.____cpython.yaml
@@ -1,7 +1,7 @@
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
diff --git a/.ci_support/linux_64_python3.8.____cpython.yaml b/.ci_support/linux_64_python3.8.____cpython.yaml
deleted file mode 100644
index a2a3ae1..0000000
--- a/.ci_support/linux_64_python3.8.____cpython.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-c_compiler:
-- gcc
-c_compiler_version:
-- '12'
-c_stdlib:
-- sysroot
-c_stdlib_version:
-- '2.17'
-cdt_name:
-- cos7
-channel_sources:
-- 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.8.* *_cpython
-rust_compiler:
-- rust
-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 21eeb6e..a105738 100644
--- a/.ci_support/linux_64_python3.9.____cpython.yaml
+++ b/.ci_support/linux_64_python3.9.____cpython.yaml
@@ -1,7 +1,7 @@
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
diff --git a/.ci_support/linux_aarch64_python3.10.____cpython.yaml b/.ci_support/linux_aarch64_python3.10.____cpython.yaml
index e93eb36..7c4e404 100644
--- a/.ci_support/linux_aarch64_python3.10.____cpython.yaml
+++ b/.ci_support/linux_aarch64_python3.10.____cpython.yaml
@@ -3,7 +3,7 @@ BUILD:
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
diff --git a/.ci_support/linux_aarch64_python3.11.____cpython.yaml b/.ci_support/linux_aarch64_python3.11.____cpython.yaml
index be82a38..e07e543 100644
--- a/.ci_support/linux_aarch64_python3.11.____cpython.yaml
+++ b/.ci_support/linux_aarch64_python3.11.____cpython.yaml
@@ -3,7 +3,7 @@ BUILD:
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
diff --git a/.ci_support/linux_aarch64_python3.8.____cpython.yaml b/.ci_support/linux_aarch64_python3.8.____cpython.yaml
deleted file mode 100644
index a248e9e..0000000
--- a/.ci_support/linux_aarch64_python3.8.____cpython.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-BUILD:
-- aarch64-conda_cos7-linux-gnu
-c_compiler:
-- gcc
-c_compiler_version:
-- '12'
-c_stdlib:
-- sysroot
-c_stdlib_version:
-- '2.17'
-cdt_arch:
-- aarch64
-cdt_name:
-- cos7
-channel_sources:
-- 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.8.* *_cpython
-rust_compiler:
-- rust
-target_platform:
-- linux-aarch64
-zip_keys:
-- - c_stdlib_version
- - cdt_name
diff --git a/.ci_support/linux_aarch64_python3.9.____cpython.yaml b/.ci_support/linux_aarch64_python3.9.____cpython.yaml
index 356fbdb..1f9f68c 100644
--- a/.ci_support/linux_aarch64_python3.9.____cpython.yaml
+++ b/.ci_support/linux_aarch64_python3.9.____cpython.yaml
@@ -3,7 +3,7 @@ BUILD:
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
diff --git a/.ci_support/linux_ppc64le_python3.10.____cpython.yaml b/.ci_support/linux_ppc64le_python3.10.____cpython.yaml
index 4bbc578..76bcab5 100644
--- a/.ci_support/linux_ppc64le_python3.10.____cpython.yaml
+++ b/.ci_support/linux_ppc64le_python3.10.____cpython.yaml
@@ -1,7 +1,7 @@
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
diff --git a/.ci_support/linux_ppc64le_python3.11.____cpython.yaml b/.ci_support/linux_ppc64le_python3.11.____cpython.yaml
index cb1ff9e..b42fb57 100644
--- a/.ci_support/linux_ppc64le_python3.11.____cpython.yaml
+++ b/.ci_support/linux_ppc64le_python3.11.____cpython.yaml
@@ -1,7 +1,7 @@
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
diff --git a/.ci_support/linux_ppc64le_python3.8.____cpython.yaml b/.ci_support/linux_ppc64le_python3.8.____cpython.yaml
deleted file mode 100644
index 48410c9..0000000
--- a/.ci_support/linux_ppc64le_python3.8.____cpython.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-c_compiler:
-- gcc
-c_compiler_version:
-- '12'
-c_stdlib:
-- sysroot
-c_stdlib_version:
-- '2.17'
-cdt_name:
-- cos7
-channel_sources:
-- 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.8.* *_cpython
-rust_compiler:
-- rust
-target_platform:
-- linux-ppc64le
-zip_keys:
-- - c_stdlib_version
- - cdt_name
diff --git a/.ci_support/linux_ppc64le_python3.9.____cpython.yaml b/.ci_support/linux_ppc64le_python3.9.____cpython.yaml
index d9e7958..5e37509 100644
--- a/.ci_support/linux_ppc64le_python3.9.____cpython.yaml
+++ b/.ci_support/linux_ppc64le_python3.9.____cpython.yaml
@@ -1,7 +1,7 @@
c_compiler:
- gcc
c_compiler_version:
-- '12'
+- '13'
c_stdlib:
- sysroot
c_stdlib_version:
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/.ci_support/osx_64_python3.10.____cpython.yaml b/.ci_support/osx_64_python3.10.____cpython.yaml
index e4defb6..94c78d4 100644
--- a/.ci_support/osx_64_python3.10.____cpython.yaml
+++ b/.ci_support/osx_64_python3.10.____cpython.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
diff --git a/.ci_support/osx_64_python3.11.____cpython.yaml b/.ci_support/osx_64_python3.11.____cpython.yaml
index 96a846d..0c71659 100644
--- a/.ci_support/osx_64_python3.11.____cpython.yaml
+++ b/.ci_support/osx_64_python3.11.____cpython.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
diff --git a/.ci_support/osx_64_python3.12.____cpython.yaml b/.ci_support/osx_64_python3.12.____cpython.yaml
index 03ffe27..227cb88 100644
--- a/.ci_support/osx_64_python3.12.____cpython.yaml
+++ b/.ci_support/osx_64_python3.12.____cpython.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
diff --git a/.ci_support/osx_64_python3.8.____cpython.yaml b/.ci_support/osx_64_python3.13.____cp313.yaml
similarity index 94%
rename from .ci_support/osx_64_python3.8.____cpython.yaml
rename to .ci_support/osx_64_python3.13.____cp313.yaml
index e76b2d5..9887fdc 100644
--- a/.ci_support/osx_64_python3.8.____cpython.yaml
+++ b/.ci_support/osx_64_python3.13.____cp313.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
@@ -21,7 +21,7 @@ pin_run_as_build:
min_pin: x.x
max_pin: x.x
python:
-- 3.8.* *_cpython
+- 3.13.* *_cp313
rust_compiler:
- rust
target_platform:
diff --git a/.ci_support/osx_64_python3.9.____cpython.yaml b/.ci_support/osx_64_python3.9.____cpython.yaml
index fb975f7..a136a05 100644
--- a/.ci_support/osx_64_python3.9.____cpython.yaml
+++ b/.ci_support/osx_64_python3.9.____cpython.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
diff --git a/.ci_support/osx_arm64_python3.10.____cpython.yaml b/.ci_support/osx_arm64_python3.10.____cpython.yaml
index f7b2f32..0cd5d67 100644
--- a/.ci_support/osx_arm64_python3.10.____cpython.yaml
+++ b/.ci_support/osx_arm64_python3.10.____cpython.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
diff --git a/.ci_support/osx_arm64_python3.11.____cpython.yaml b/.ci_support/osx_arm64_python3.11.____cpython.yaml
index ade2d50..fb7402a 100644
--- a/.ci_support/osx_arm64_python3.11.____cpython.yaml
+++ b/.ci_support/osx_arm64_python3.11.____cpython.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
diff --git a/.ci_support/osx_arm64_python3.12.____cpython.yaml b/.ci_support/osx_arm64_python3.12.____cpython.yaml
index db31515..d7d33b8 100644
--- a/.ci_support/osx_arm64_python3.12.____cpython.yaml
+++ b/.ci_support/osx_arm64_python3.12.____cpython.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
diff --git a/.ci_support/osx_arm64_python3.8.____cpython.yaml b/.ci_support/osx_arm64_python3.13.____cp313.yaml
similarity index 94%
rename from .ci_support/osx_arm64_python3.8.____cpython.yaml
rename to .ci_support/osx_arm64_python3.13.____cp313.yaml
index 4e32bdb..1c9d5a5 100644
--- a/.ci_support/osx_arm64_python3.8.____cpython.yaml
+++ b/.ci_support/osx_arm64_python3.13.____cp313.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
@@ -21,7 +21,7 @@ pin_run_as_build:
min_pin: x.x
max_pin: x.x
python:
-- 3.8.* *_cpython
+- 3.13.* *_cp313
rust_compiler:
- rust
target_platform:
diff --git a/.ci_support/osx_arm64_python3.9.____cpython.yaml b/.ci_support/osx_arm64_python3.9.____cpython.yaml
index 1f9877f..747b2e8 100644
--- a/.ci_support/osx_arm64_python3.9.____cpython.yaml
+++ b/.ci_support/osx_arm64_python3.9.____cpython.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '16'
+- '17'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
diff --git a/.ci_support/win_64_python3.8.____cpython.yaml b/.ci_support/win_64_python3.13.____cp313.yaml
similarity index 92%
rename from .ci_support/win_64_python3.8.____cpython.yaml
rename to .ci_support/win_64_python3.13.____cp313.yaml
index adfb38c..ce3678d 100644
--- a/.ci_support/win_64_python3.8.____cpython.yaml
+++ b/.ci_support/win_64_python3.13.____cp313.yaml
@@ -11,7 +11,7 @@ pin_run_as_build:
min_pin: x.x
max_pin: x.x
python:
-- 3.8.* *_cpython
+- 3.13.* *_cp313
rust_compiler:
- rust
target_platform:
diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh
index ba4b251..827a29f 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}"
@@ -74,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 65650bf..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 "python=3.10" 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
@@ -48,7 +70,7 @@ if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] (
)
if NOT [%flow_run_id%] == [] (
- set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%"
+ set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%"
)
call :end_group
@@ -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 baa4c18..0af893e 100644
--- a/README.md
+++ b/README.md
@@ -46,13 +46,6 @@ Current build status
-