From 66a260dd903a1804dfb877daf978ddf17b0a612f Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Thu, 16 May 2024 11:21:13 +0000 Subject: [PATCH 1/3] Rebuild for numpy 2.0 TL;DR: The way we build against numpy has changed as of numpy 2.0. This bot PR has updated the recipe to account for the changes (see below for details). The numpy 2.0 package itself is currently only available from a special release channel (`conda-forge/label/numpy_rc`) and will not be available on the main `conda-forge` channel until the release of numpy 2.0 GA. The biggest change is that we no longer need to use the oldest available numpy version at build time in order to support old numpy version at runtime - numpy will by default use a compatible ABI for the oldest still-supported numpy versions. Additionally, we no longer need to use `{{ pin_compatible("numpy") }}` as a run requirement - this has been handled for more than two years now by a run-export on the numpy package itself. The migrator will therefore remove any occurrences of this. However, by default, building against numpy 2.0 will assume that the package is compatible with numpy 2.0, which is not necessarily the case. You should check that the upstream package explicitly supports numpy 2.0, otherwise you need to add a `- numpy <2` run requirement until that happens (check numpy issue 26191 for an overview of the most important packages). Note that the numpy release candidate promises to be ABI-compatible with the final 2.0 release. This means that building against 2.0.0rc1 produces packages that can be published to our main channels. If you already want to use the numpy 2.0 release candidate yourself, you can do ``` conda config --add channels conda-forge/label/numpy_rc ``` or add this channel to your `.condarc` file directly. ### To-Dos: * [ ] Match run-requirements for numpy (i.e. check upstream `pyproject.toml` or however the project specifies numpy compatibility) * If upstream is not yet compatible with numpy 2.0, add `numpy <2` upper bound under `run:`. * If upstream is already compatible with numpy 2.0, nothing else should be necessary in most cases. * If upstream requires a minimum numpy version newer than 1.19, you can add `numpy >=x.y` under `run:`. * [ ] Remove any remaining occurrences of `{{ pin_compatible("numpy") }}` that the bot may have missed. PS. If the build does not compile anymore, this is almost certainly a sign that the upstream project is not yet ready for numpy 2.0; do not close this PR until a version compatible with numpy 2.0 has been released upstream and on this feedstock (in the meantime, you can keep the bot from reopening this PR in case of git conflicts by marking it as a draft). --- .ci_support/migrations/numpy2.yaml | 72 ++++++++++++++++++++++++++++++ recipe/meta.yaml | 5 ++- 2 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 .ci_support/migrations/numpy2.yaml diff --git a/.ci_support/migrations/numpy2.yaml b/.ci_support/migrations/numpy2.yaml new file mode 100644 index 0000000..d19357f --- /dev/null +++ b/.ci_support/migrations/numpy2.yaml @@ -0,0 +1,72 @@ +__migrator: + build_number: 1 + kind: version + commit_message: | + Rebuild for numpy 2.0 + + TL;DR: The way we build against numpy has changed as of numpy 2.0. This bot + PR has updated the recipe to account for the changes (see below for details). + The numpy 2.0 package itself is currently only available from a special release + channel (`conda-forge/label/numpy_rc`) and will not be available on the main + `conda-forge` channel until the release of numpy 2.0 GA. + + The biggest change is that we no longer need to use the oldest available numpy + version at build time in order to support old numpy version at runtime - numpy + will by default use a compatible ABI for the oldest still-supported numpy versions. + + Additionally, we no longer need to use `{{ pin_compatible("numpy") }}` as a + run requirement - this has been handled for more than two years now by a + run-export on the numpy package itself. The migrator will therefore remove + any occurrences of this. + + However, by default, building against numpy 2.0 will assume that the package + is compatible with numpy 2.0, which is not necessarily the case. You should + check that the upstream package explicitly supports numpy 2.0, otherwise you + need to add a `- numpy <2` run requirement until that happens (check numpy + issue 26191 for an overview of the most important packages). + + Note that the numpy release candidate promises to be ABI-compatible with the + final 2.0 release. This means that building against 2.0.0rc1 produces packages + that can be published to our main channels. + + If you already want to use the numpy 2.0 release candidate yourself, you can do + ``` + conda config --add channels conda-forge/label/numpy_rc + ``` + or add this channel to your `.condarc` file directly. + + ### To-Dos: + * [ ] Match run-requirements for numpy (i.e. check upstream `pyproject.toml` or however the project specifies numpy compatibility) + * If upstream is not yet compatible with numpy 2.0, add `numpy <2` upper bound under `run:`. + * If upstream is already compatible with numpy 2.0, nothing else should be necessary in most cases. + * If upstream requires a minimum numpy version newer than 1.19, you can add `numpy >=x.y` under `run:`. + * [ ] Remove any remaining occurrences of `{{ pin_compatible("numpy") }}` that the bot may have missed. + + PS. If the build does not compile anymore, this is almost certainly a sign that + the upstream project is not yet ready for numpy 2.0; do not close this PR until + a version compatible with numpy 2.0 has been released upstream and on this + feedstock (in the meantime, you can keep the bot from reopening this PR in + case of git conflicts by marking it as a draft). + + migration_number: 1 + exclude: + # needs local overrides that get stomped on by the migrator, which then fails + - scipy + ordering: + # prefer channels including numpy_rc (otherwise smithy doesn't + # know which of the two values should be taken on merge) + channel_sources: + - conda-forge + - conda-forge/label/numpy_rc,conda-forge + +# needs to match length of zip {python, python_impl, numpy} +# as it is in global CBC in order to override it +numpy: + - 1.22 # no py38 support for numpy 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 +channel_sources: + - conda-forge/label/numpy_rc,conda-forge +migrator_ts: 1713572489.295986 diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5b3d618..47ae95a 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -19,7 +19,7 @@ source: - fix_find_python_stuff.patch build: - number: 0 + number: 1 script: source ${RECIPE_DIR}/build_zfp.sh # [unix] script: {{ RECIPE_DIR }}\bld_zfp.bat # [win] run_exports: @@ -29,6 +29,7 @@ build: requirements: build: - {{ compiler('c') }} + - {{ stdlib("c") }} - {{ compiler('cxx') }} - cmake - make # [unix] @@ -61,6 +62,7 @@ outputs: requirements: build: - {{ compiler('c') }} + - {{ stdlib("c") }} - {{ compiler('cxx') }} - cmake - make # [unix] @@ -76,7 +78,6 @@ outputs: - {{ pin_subpackage('zfp', exact=True) }} run: - python - - {{ pin_compatible('numpy') }} # I don't think run exports work with pin exact subpackage - {{ pin_subpackage('zfp', exact=True) }} test: From cb237bcc7f081061f42eed7df23a4e12df73bc58 Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Thu, 16 May 2024 11:23:28 +0000 Subject: [PATCH 2/3] MNT: Re-rendered with conda-build 24.5.0, conda-smithy 3.35.1, and conda-forge-pinning 2024.05.16.11.05.29 --- .azure-pipelines/azure-pipelines-linux.yml | 1 + .azure-pipelines/azure-pipelines-osx.yml | 3 ++- .ci_support/linux_64_.yaml | 16 +++++++++----- .ci_support/linux_aarch64_.yaml | 16 +++++++++----- .ci_support/linux_ppc64le_.yaml | 16 +++++++++----- .ci_support/osx_64_.yaml | 16 ++++++++------ .ci_support/osx_arm64_.yaml | 14 +++++++----- .ci_support/win_64_.yaml | 12 ++++++----- .gitignore | 25 ++++++++++++++++++++-- .scripts/build_steps.sh | 12 +++-------- .scripts/run_docker_build.sh | 6 ++++++ .scripts/run_osx_build.sh | 6 +++--- .scripts/run_win_build.bat | 4 ++-- azure-pipelines.yml | 4 ++-- build-locally.py | 5 +++-- 15 files changed, 104 insertions(+), 52 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 5ae4cca..bdf1723 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -21,6 +21,7 @@ jobs: UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-ppc64le timeoutInMinutes: 360 + variables: {} steps: # configure qemu binfmt-misc running. This allows us to run docker containers diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index f3ff063..7708e23 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-11 + vmImage: macOS-12 strategy: matrix: osx_64_: @@ -15,6 +15,7 @@ jobs: CONFIG: osx_arm64_ UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 + variables: {} steps: # TODO: Fast finish on azure pipelines? diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 02fd2e4..fbcb8d1 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -2,10 +2,14 @@ c_compiler: - gcc c_compiler_version: - '12' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.12' cdt_name: - cos6 channel_sources: -- conda-forge +- conda-forge/label/numpy_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -15,12 +19,12 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 numpy: -- '1.22' -- '1.23' -- '1.26' -- '1.22' +- '2.0' +- '2.0' +- '2.0' - '1.22' - '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x @@ -37,5 +41,7 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version +- - c_stdlib_version + - cdt_name - - python - numpy diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml index e8b8f97..af87caf 100644 --- a/.ci_support/linux_aarch64_.yaml +++ b/.ci_support/linux_aarch64_.yaml @@ -4,12 +4,16 @@ 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 +- conda-forge/label/numpy_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -19,12 +23,12 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-aarch64 numpy: -- '1.22' -- '1.23' -- '1.26' -- '1.22' +- '2.0' +- '2.0' +- '2.0' - '1.22' - '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x @@ -41,5 +45,7 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version +- - c_stdlib_version + - cdt_name - - python - numpy diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index 1b8cc06..82df684 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -2,10 +2,14 @@ c_compiler: - gcc c_compiler_version: - '12' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' cdt_name: - cos7 channel_sources: -- conda-forge +- conda-forge/label/numpy_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -15,12 +19,12 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-ppc64le numpy: -- '1.22' -- '1.23' -- '1.26' -- '1.22' +- '2.0' +- '2.0' +- '2.0' - '1.22' - '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x @@ -37,5 +41,7 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version +- - c_stdlib_version + - cdt_name - - python - numpy diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index 798d6fc..612d039 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -1,11 +1,15 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.9' +- '10.13' c_compiler: - clang c_compiler_version: - '16' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '10.13' channel_sources: -- conda-forge +- conda-forge/label/numpy_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -17,12 +21,12 @@ llvm_openmp: macos_machine: - x86_64-apple-darwin13.4.0 numpy: -- '1.22' -- '1.23' -- '1.26' -- '1.22' +- '2.0' +- '2.0' +- '2.0' - '1.22' - '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index 265dbc8..c3b2d6d 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -4,8 +4,12 @@ c_compiler: - clang c_compiler_version: - '16' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '11.0' channel_sources: -- conda-forge +- conda-forge/label/numpy_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -17,11 +21,11 @@ llvm_openmp: macos_machine: - arm64-apple-darwin20.0.0 numpy: +- '2.0' +- '2.0' +- '2.0' - '1.22' -- '1.23' -- '1.26' -- '1.22' -- '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index 6718d9b..b277ed2 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -1,18 +1,20 @@ c_compiler: - vs2019 +c_stdlib: +- vs channel_sources: -- conda-forge +- conda-forge/label/numpy_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: - vs2019 numpy: -- '1.22' -- '1.23' -- '1.26' -- '1.22' +- '2.0' +- '2.0' +- '2.0' - '1.22' - '1.22' +- '2.0' pin_run_as_build: python: min_pin: x.x diff --git a/.gitignore b/.gitignore index c89ecb7..179afe5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,24 @@ -*.pyc +# User content belongs under recipe/. +# Feedstock configuration goes in `conda-forge.yml` +# Everything else is managed by the conda-smithy rerender process. +# Please do not modify + +# Ignore all files and folders in root +* +!/conda-forge.yml + +# Don't ignore any files/folders if the parent folder is 'un-ignored' +# This also avoids warnings when adding an already-checked file with an ignored parent. +!/**/ +# Don't ignore any files/folders recursively in the following folders +!/recipe/** +!/.ci_support/** -build_artifacts +# Since we ignore files/folders recursively, any folders inside +# build_artifacts gets ignored which trips some build systems. +# To avoid that we 'un-ignore' all files/folders recursively +# and only ignore the root build_artifacts folder. +!/build_artifacts/** +/build_artifacts + +*.pyc diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index eba1dfd..899ba03 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -34,9 +34,9 @@ CONDARC 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 boa conda-forge-ci-setup=4 + 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 boa conda-forge-ci-setup=4 + 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}" @@ -57,12 +57,6 @@ if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" fi -if [[ "${sha:-}" == "" ]]; then - pushd ${FEEDSTOCK_ROOT} - sha=$(git rev-parse HEAD) - popd -fi - if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" @@ -74,7 +68,7 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then # Drop into an interactive shell /bin/bash else - conda mambabuild "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ --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:-}" diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index b70ef01..00f377a 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -21,6 +21,12 @@ if [ -z ${FEEDSTOCK_NAME} ]; then export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) fi +if [[ "${sha:-}" == "" ]]; then + pushd "${FEEDSTOCK_ROOT}" + sha=$(git rev-parse HEAD) + popd +fi + docker info # In order for the conda-build process in the container to write to the mounted diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 9259eb9..07dff21 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -26,9 +26,9 @@ 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 boa conda-forge-ci-setup=4 + 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 boa conda-forge-ci-setup=4 + pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" @@ -81,7 +81,7 @@ else EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" fi - conda mambabuild ./recipe -m ./.ci_support/${CONFIG}.yaml \ + conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ --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" diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 48734de..6d54697 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -24,7 +24,7 @@ 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 boa conda-forge-ci-setup=4 -c conda-forge --strict-channel-priority --yes +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 @@ -55,7 +55,7 @@ call :end_group :: Build the recipe echo Building recipe -conda.exe mambabuild "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% +conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% if !errorlevel! neq 0 exit /b !errorlevel! :: Prepare some environment variables for the upload step diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6b346f5..e5306da 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,5 +4,5 @@ jobs: - template: ./.azure-pipelines/azure-pipelines-linux.yml - - template: ./.azure-pipelines/azure-pipelines-win.yml - - template: ./.azure-pipelines/azure-pipelines-osx.yml \ No newline at end of file + - template: ./.azure-pipelines/azure-pipelines-osx.yml + - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file diff --git a/build-locally.py b/build-locally.py index 3f4b7a7..e0d408d 100755 --- a/build-locally.py +++ b/build-locally.py @@ -64,8 +64,9 @@ def verify_config(ns): elif ns.config.startswith("osx"): if "OSX_SDK_DIR" not in os.environ: raise RuntimeError( - "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=SDKs' " - "to download the SDK automatically to 'SDKs/MacOSX.sdk'. " + "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=$PWD/SDKs' " + "to download the SDK automatically to '$PWD/SDKs/MacOSX.sdk'. " + "Note: OSX_SDK_DIR must be set to an absolute path. " "Setting this variable implies agreement to the licensing terms of the SDK by Apple." ) From a7da016b81a921e847298cd7750c1ac5feac10fb Mon Sep 17 00:00:00 2001 From: "conda-forge-webservices[bot]" <91080706+conda-forge-webservices[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:24:34 +0000 Subject: [PATCH 3/3] MNT: Re-rendered with conda-build 24.5.1, conda-smithy 3.36.2, and conda-forge-pinning 2024.06.19.09.09.47 --- .ci_support/linux_64_.yaml | 2 +- .ci_support/linux_aarch64_.yaml | 2 +- .ci_support/linux_ppc64le_.yaml | 2 +- .ci_support/osx_64_.yaml | 4 +++- .ci_support/osx_arm64_.yaml | 4 +++- .ci_support/win_64_.yaml | 2 +- .gitattributes | 4 ++-- .scripts/build_steps.sh | 7 +++++++ .scripts/run_osx_build.sh | 7 +++++++ .scripts/run_win_build.bat | 5 +++++ 10 files changed, 31 insertions(+), 8 deletions(-) diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index fbcb8d1..06f65ef 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -9,7 +9,7 @@ c_stdlib_version: cdt_name: - cos6 channel_sources: -- conda-forge/label/numpy_rc,conda-forge +- conda-forge channel_targets: - conda-forge main cxx_compiler: diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml index af87caf..56deeab 100644 --- a/.ci_support/linux_aarch64_.yaml +++ b/.ci_support/linux_aarch64_.yaml @@ -13,7 +13,7 @@ cdt_arch: cdt_name: - cos7 channel_sources: -- conda-forge/label/numpy_rc,conda-forge +- conda-forge channel_targets: - conda-forge main cxx_compiler: diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index 82df684..bf619c3 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -9,7 +9,7 @@ c_stdlib_version: cdt_name: - cos7 channel_sources: -- conda-forge/label/numpy_rc,conda-forge +- conda-forge channel_targets: - conda-forge main cxx_compiler: diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index 612d039..eba5f02 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -1,5 +1,7 @@ MACOSX_DEPLOYMENT_TARGET: - '10.13' +MACOSX_SDK_VERSION: +- '10.13' c_compiler: - clang c_compiler_version: @@ -9,7 +11,7 @@ c_stdlib: c_stdlib_version: - '10.13' channel_sources: -- conda-forge/label/numpy_rc,conda-forge +- conda-forge channel_targets: - conda-forge main cxx_compiler: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index c3b2d6d..9784335 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -1,5 +1,7 @@ MACOSX_DEPLOYMENT_TARGET: - '11.0' +MACOSX_SDK_VERSION: +- '11.0' c_compiler: - clang c_compiler_version: @@ -9,7 +11,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge/label/numpy_rc,conda-forge +- conda-forge channel_targets: - conda-forge main cxx_compiler: diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index b277ed2..0561dca 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -3,7 +3,7 @@ c_compiler: c_stdlib: - vs channel_sources: -- conda-forge/label/numpy_rc,conda-forge +- conda-forge channel_targets: - conda-forge main cxx_compiler: diff --git a/.gitattributes b/.gitattributes index 7f32763..18f114a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -20,8 +20,8 @@ bld.bat text eol=crlf .travis.yml linguist-generated=true .scripts/* linguist-generated=true .woodpecker.yml linguist-generated=true -LICENSE.txt linguist-generated=true -README.md linguist-generated=true +/LICENSE.txt linguist-generated=true +/README.md linguist-generated=true azure-pipelines.yml linguist-generated=true build-locally.py linguist-generated=true shippable.yml linguist-generated=true diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 899ba03..a5836e8 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -72,6 +72,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.6.0 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + + ( 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 07dff21..ba0c879 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -85,6 +85,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.6.0 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 6d54697..65650bf 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -58,6 +58,11 @@ echo Building recipe conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% 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" +call :end_group + :: Prepare some environment variables for the upload step if /i "%CI%" == "github_actions" ( set "FEEDSTOCK_NAME=%GITHUB_REPOSITORY:*/=%"