From 09ba94196fa2e6a767dd4d23dd16c15a0bc377de Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Tue, 9 Nov 2021 21:34:29 +0000 Subject: [PATCH 1/2] updated v5.1 --- recipe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 8e74dc1..51e60ee 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,5 @@ {% set name = "coremltools" %} -{% set version = "4.1" %} +{% set version = "5.1" %} package: name: {{ name|lower }} @@ -11,10 +11,10 @@ source: # - CMakeLists.txt # so we use GitHub releases. url: https://github.com/apple/{{ name }}/archive/{{ version }}.tar.gz - sha256: fdbc1e96bdeda0b23222864cb802053c67d8165a9e000e873d9b4028815ce61b + sha256: da9dba5a00f5c892cb5d673a81f23bdb37cc4a806e4319decc8380acc9dbf6d9 build: - number: 2 + number: 0 # The upstream package does not support Windows. skip: true # [win] From ad542e111e514f835b67fbc055ffe0d328894ede Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Tue, 9 Nov 2021 21:35:01 +0000 Subject: [PATCH 2/2] MNT: Re-rendered with conda-build 3.21.6, conda-smithy 3.14.3, and conda-forge-pinning 2021.11.09.18.53.34 --- .azure-pipelines/azure-pipelines-linux.yml | 19 ++--- .azure-pipelines/azure-pipelines-osx.yml | 16 +++-- ...nux_64_numpy1.16python3.6.____cpython.yaml | 33 --------- ...ux_64_numpy1.18python3.7.____cpython.yaml} | 4 +- ...ux_64_numpy1.18python3.8.____cpython.yaml} | 4 +- ...nux_64_numpy1.19python3.9.____cpython.yaml | 2 +- .ci_support/migrations/python39.yaml | 26 ------- ...osx_64_numpy1.16python3.6.____cpython.yaml | 31 -------- ...sx_64_numpy1.18python3.7.____cpython.yaml} | 4 +- ...sx_64_numpy1.18python3.8.____cpython.yaml} | 4 +- ...osx_64_numpy1.19python3.9.____cpython.yaml | 2 +- .gitattributes | 1 + .github/CODEOWNERS | 2 +- .scripts/build_steps.sh | 31 ++++++-- .scripts/logging_utils.sh | 35 +++++++++ .scripts/run_docker_build.sh | 26 +++++-- .scripts/run_osx_build.sh | 72 +++++++++++-------- LICENSE.txt | 2 +- README.md | 40 ++++------- build-locally.py | 32 ++++++++- 20 files changed, 200 insertions(+), 186 deletions(-) delete mode 100644 .ci_support/linux_64_numpy1.16python3.6.____cpython.yaml rename .ci_support/{linux_64_numpy1.16python3.7.____cpython.yaml => linux_64_numpy1.18python3.7.____cpython.yaml} (93%) rename .ci_support/{linux_64_numpy1.16python3.8.____cpython.yaml => linux_64_numpy1.18python3.8.____cpython.yaml} (93%) delete mode 100644 .ci_support/migrations/python39.yaml delete mode 100644 .ci_support/osx_64_numpy1.16python3.6.____cpython.yaml rename .ci_support/{osx_64_numpy1.16python3.7.____cpython.yaml => osx_64_numpy1.18python3.7.____cpython.yaml} (93%) rename .ci_support/{osx_64_numpy1.16python3.8.____cpython.yaml => osx_64_numpy1.18python3.8.____cpython.yaml} (93%) create mode 100644 .scripts/logging_utils.sh diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 706a4de..5efadb7 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -5,19 +5,15 @@ jobs: - job: linux pool: - vmImage: ubuntu-16.04 + vmImage: ubuntu-latest strategy: matrix: - linux_64_numpy1.16python3.6.____cpython: - CONFIG: linux_64_numpy1.16python3.6.____cpython + linux_64_numpy1.18python3.7.____cpython: + CONFIG: linux_64_numpy1.18python3.7.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 - linux_64_numpy1.16python3.7.____cpython: - CONFIG: linux_64_numpy1.16python3.7.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 - linux_64_numpy1.16python3.8.____cpython: - CONFIG: linux_64_numpy1.16python3.8.____cpython + linux_64_numpy1.18python3.8.____cpython: + CONFIG: linux_64_numpy1.18python3.8.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 linux_64_numpy1.19python3.9.____cpython: @@ -44,6 +40,11 @@ jobs: export CI=azure export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then + export IS_PR_BUILD="True" + else + export IS_PR_BUILD="False" + fi .scripts/run_docker_build.sh displayName: Run docker build env: diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 727e82e..ee4bebf 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -8,14 +8,11 @@ jobs: vmImage: macOS-10.15 strategy: matrix: - osx_64_numpy1.16python3.6.____cpython: - CONFIG: osx_64_numpy1.16python3.6.____cpython + osx_64_numpy1.18python3.7.____cpython: + CONFIG: osx_64_numpy1.18python3.7.____cpython UPLOAD_PACKAGES: 'True' - osx_64_numpy1.16python3.7.____cpython: - CONFIG: osx_64_numpy1.16python3.7.____cpython - UPLOAD_PACKAGES: 'True' - osx_64_numpy1.16python3.8.____cpython: - CONFIG: osx_64_numpy1.16python3.8.____cpython + osx_64_numpy1.18python3.8.____cpython: + CONFIG: osx_64_numpy1.18python3.8.____cpython UPLOAD_PACKAGES: 'True' osx_64_numpy1.19python3.9.____cpython: CONFIG: osx_64_numpy1.19python3.9.____cpython @@ -29,6 +26,11 @@ jobs: export OSX_FORCE_SDK_DOWNLOAD="1" export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then + export IS_PR_BUILD="True" + else + export IS_PR_BUILD="False" + fi ./.scripts/run_osx_build.sh displayName: Run OSX build env: diff --git a/.ci_support/linux_64_numpy1.16python3.6.____cpython.yaml b/.ci_support/linux_64_numpy1.16python3.6.____cpython.yaml deleted file mode 100644 index 8c9e501..0000000 --- a/.ci_support/linux_64_numpy1.16python3.6.____cpython.yaml +++ /dev/null @@ -1,33 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '9' -cdt_name: -- cos6 -channel_sources: -- conda-forge,defaults -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '9' -docker_image: -- quay.io/condaforge/linux-anvil-comp7 -numpy: -- '1.16' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.6.* *_cpython -target_platform: -- linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - cdt_name - - docker_image -- - python - - numpy diff --git a/.ci_support/linux_64_numpy1.16python3.7.____cpython.yaml b/.ci_support/linux_64_numpy1.18python3.7.____cpython.yaml similarity index 93% rename from .ci_support/linux_64_numpy1.16python3.7.____cpython.yaml rename to .ci_support/linux_64_numpy1.18python3.7.____cpython.yaml index 7dfc6ea..d3f9dda 100644 --- a/.ci_support/linux_64_numpy1.16python3.7.____cpython.yaml +++ b/.ci_support/linux_64_numpy1.18python3.7.____cpython.yaml @@ -5,7 +5,7 @@ c_compiler_version: cdt_name: - cos6 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -15,7 +15,7 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-comp7 numpy: -- '1.16' +- '1.18' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_64_numpy1.16python3.8.____cpython.yaml b/.ci_support/linux_64_numpy1.18python3.8.____cpython.yaml similarity index 93% rename from .ci_support/linux_64_numpy1.16python3.8.____cpython.yaml rename to .ci_support/linux_64_numpy1.18python3.8.____cpython.yaml index 29ad7a7..db6c64b 100644 --- a/.ci_support/linux_64_numpy1.16python3.8.____cpython.yaml +++ b/.ci_support/linux_64_numpy1.18python3.8.____cpython.yaml @@ -5,7 +5,7 @@ c_compiler_version: cdt_name: - cos6 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -15,7 +15,7 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-comp7 numpy: -- '1.16' +- '1.18' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/linux_64_numpy1.19python3.9.____cpython.yaml b/.ci_support/linux_64_numpy1.19python3.9.____cpython.yaml index 0c64032..b8dfd6a 100644 --- a/.ci_support/linux_64_numpy1.19python3.9.____cpython.yaml +++ b/.ci_support/linux_64_numpy1.19python3.9.____cpython.yaml @@ -5,7 +5,7 @@ c_compiler_version: cdt_name: - cos6 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: diff --git a/.ci_support/migrations/python39.yaml b/.ci_support/migrations/python39.yaml deleted file mode 100644 index 3eff5c7..0000000 --- a/.ci_support/migrations/python39.yaml +++ /dev/null @@ -1,26 +0,0 @@ -migrator_ts: 1602104489 -__migrator: - migration_number: 2 - operation: key_add - primary_key: python - ordering: - python: - - 3.6.* *_cpython - - 3.7.* *_cpython - - 3.8.* *_cpython - - 3.9.* *_cpython # new entry - - 3.6.* *_73_pypy - paused: false - pr_limit: 50 - exclude: - # this shouldn't attempt to modify the python feedstocks - - python - - pypy3.6 - - pypy-meta -python: - - 3.9.* *_cpython -# additional entries to add for zip_keys -numpy: - - 1.19 -python_impl: - - cpython diff --git a/.ci_support/osx_64_numpy1.16python3.6.____cpython.yaml b/.ci_support/osx_64_numpy1.16python3.6.____cpython.yaml deleted file mode 100644 index e3bf7c4..0000000 --- a/.ci_support/osx_64_numpy1.16python3.6.____cpython.yaml +++ /dev/null @@ -1,31 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '10.14' -c_compiler: -- clang -c_compiler_version: -- '11' -channel_sources: -- conda-forge,defaults -channel_targets: -- conda-forge main -cxx_compiler: -- clangxx -cxx_compiler_version: -- '11' -macos_machine: -- x86_64-apple-darwin13.4.0 -numpy: -- '1.16' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.6.* *_cpython -target_platform: -- osx-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy diff --git a/.ci_support/osx_64_numpy1.16python3.7.____cpython.yaml b/.ci_support/osx_64_numpy1.18python3.7.____cpython.yaml similarity index 93% rename from .ci_support/osx_64_numpy1.16python3.7.____cpython.yaml rename to .ci_support/osx_64_numpy1.18python3.7.____cpython.yaml index b40791d..770e10f 100644 --- a/.ci_support/osx_64_numpy1.16python3.7.____cpython.yaml +++ b/.ci_support/osx_64_numpy1.18python3.7.____cpython.yaml @@ -5,7 +5,7 @@ c_compiler: c_compiler_version: - '11' channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -15,7 +15,7 @@ cxx_compiler_version: macos_machine: - x86_64-apple-darwin13.4.0 numpy: -- '1.16' +- '1.18' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/osx_64_numpy1.16python3.8.____cpython.yaml b/.ci_support/osx_64_numpy1.18python3.8.____cpython.yaml similarity index 93% rename from .ci_support/osx_64_numpy1.16python3.8.____cpython.yaml rename to .ci_support/osx_64_numpy1.18python3.8.____cpython.yaml index 8bfa278..7bb47a0 100644 --- a/.ci_support/osx_64_numpy1.16python3.8.____cpython.yaml +++ b/.ci_support/osx_64_numpy1.18python3.8.____cpython.yaml @@ -5,7 +5,7 @@ c_compiler: c_compiler_version: - '11' channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: @@ -15,7 +15,7 @@ cxx_compiler_version: macos_machine: - x86_64-apple-darwin13.4.0 numpy: -- '1.16' +- '1.18' pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/osx_64_numpy1.19python3.9.____cpython.yaml b/.ci_support/osx_64_numpy1.19python3.9.____cpython.yaml index 47fd030..587ab06 100644 --- a/.ci_support/osx_64_numpy1.19python3.9.____cpython.yaml +++ b/.ci_support/osx_64_numpy1.19python3.9.____cpython.yaml @@ -5,7 +5,7 @@ c_compiler: c_compiler_version: - '11' channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: diff --git a/.gitattributes b/.gitattributes index 9060b27..ce52713 100644 --- a/.gitattributes +++ b/.gitattributes @@ -18,6 +18,7 @@ bld.bat text eol=crlf .gitignore linguist-generated=true .travis.yml linguist-generated=true .scripts/* linguist-generated=true +.woodpecker.yml linguist-generated=true LICENSE.txt linguist-generated=true README.md linguist-generated=true azure-pipelines.yml linguist-generated=true diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d938615..7a03417 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @1duo @TomAugspurger @aseemw @seibert \ No newline at end of file +* @1duo @TobyRoseman @aseemw @seibert \ No newline at end of file diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index aa9727b..a85ae38 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -6,8 +6,15 @@ # benefit from the improvement. set -xeuo pipefail -export PYTHONUNBUFFERED=1 export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" +source ${FEEDSTOCK_ROOT}/.scripts/logging_utils.sh + + +( endgroup "Start Docker" ) 2> /dev/null + +( startgroup "Configuring conda" ) 2> /dev/null + +export PYTHONUNBUFFERED=1 export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" @@ -18,8 +25,10 @@ conda-build: root-dir: ${FEEDSTOCK_ROOT}/build_artifacts CONDARC +GET_BOA=boa +BUILD_CMD=mambabuild -conda install --yes --quiet "conda-forge-ci-setup=3" conda-build pip -c conda-forge +conda install --yes --quiet "conda-forge-ci-setup=3" conda-build pip ${GET_BOA:-} -c conda-forge # set up the condarc setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" @@ -30,6 +39,9 @@ source run_conda_forge_build_setup make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" + +( endgroup "Configuring conda" ) 2> /dev/null + 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}" @@ -37,17 +49,28 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ ${EXTRA_CB_OPTIONS:-} \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" + # Drop into an interactive shell /bin/bash else - conda build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + conda $BUILD_CMD "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" + ( startgroup "Validating outputs" ) 2> /dev/null + validate_recipe_outputs "${FEEDSTOCK_NAME}" - if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then + ( endgroup "Validating outputs" ) 2> /dev/null + + ( startgroup "Uploading packages" ) 2> /dev/null + + if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" fi + + ( endgroup "Uploading packages" ) 2> /dev/null fi +( startgroup "Final checks" ) 2> /dev/null + touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" \ No newline at end of file diff --git a/.scripts/logging_utils.sh b/.scripts/logging_utils.sh new file mode 100644 index 0000000..57bc95c --- /dev/null +++ b/.scripts/logging_utils.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Provide a unified interface for the different logging +# utilities CI providers offer. If unavailable, provide +# a compatible fallback (e.g. bare `echo xxxxxx`). + +function startgroup { + # Start a foldable group of log lines + # Pass a single argument, quoted + case ${CI:-} in + azure ) + echo "##[group]$1";; + travis ) + echo "$1" + echo -en 'travis_fold:start:'"${1// /}"'\\r';; + github_actions ) + echo "::group::$1";; + * ) + echo "$1";; + esac +} 2> /dev/null + +function endgroup { + # End a foldable group of log lines + # Pass a single argument, quoted + + case ${CI:-} in + azure ) + echo "##[endgroup]";; + travis ) + echo -en 'travis_fold:end:'"${1// /}"'\\r';; + github_actions ) + echo "::endgroup::";; + esac +} 2> /dev/null diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 36dacd6..0c6515f 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -5,6 +5,10 @@ # changes to this script, consider a proposal to conda-smithy so that other feedstocks can also # benefit from the improvement. +source .scripts/logging_utils.sh + +( startgroup "Configure Docker" ) 2> /dev/null + set -xeo pipefail THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" @@ -48,11 +52,11 @@ if [ -z "${DOCKER_IMAGE}" ]; then echo "WARNING: DOCKER_IMAGE variable not set and shyaml not installed. Trying to parse with coreutils" DOCKER_IMAGE=$(cat .ci_support/${CONFIG}.yaml | grep '^docker_image:$' -A 1 | tail -n 1 | cut -b 3-) if [ "${DOCKER_IMAGE}" = "" ]; then - echo "No docker_image entry found in ${CONFIG}. Falling back to condaforge/linux-anvil-comp7" - DOCKER_IMAGE="condaforge/linux-anvil-comp7" + echo "No docker_image entry found in ${CONFIG}. Falling back to quay.io/condaforge/linux-anvil-comp7" + DOCKER_IMAGE="quay.io/condaforge/linux-anvil-comp7" fi else - DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 condaforge/linux-anvil-comp7 )" + DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 quay.io/condaforge/linux-anvil-comp7 )" fi fi @@ -66,13 +70,20 @@ if [ -z "${CI}" ]; then DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" fi +( endgroup "Configure Docker" ) 2> /dev/null + +( startgroup "Start Docker" ) 2> /dev/null + export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" +export IS_PR_BUILD="${IS_PR_BUILD:-False}" +docker pull "${DOCKER_IMAGE}" docker run ${DOCKER_RUN_ARGS} \ -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ -e CONFIG \ -e HOST_USER_ID \ -e UPLOAD_PACKAGES \ + -e IS_PR_BUILD \ -e GIT_BRANCH \ -e UPLOAD_ON_BRANCH \ -e CI \ @@ -83,9 +94,12 @@ docker run ${DOCKER_RUN_ARGS} \ -e BINSTAR_TOKEN \ -e FEEDSTOCK_TOKEN \ -e STAGING_BINSTAR_TOKEN \ - $DOCKER_IMAGE \ + "${DOCKER_IMAGE}" \ bash \ - /home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh + "/home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh" # verify that the end of the script was reached -test -f "$DONE_CANARY" \ No newline at end of file +test -f "$DONE_CANARY" + +# This closes the last group opened in `build_steps.sh` +( endgroup "Final checks" ) 2> /dev/null \ No newline at end of file diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index c299b79..d6de123 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -1,57 +1,71 @@ #!/usr/bin/env bash -set -x +source .scripts/logging_utils.sh + +set -xe + +MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3} + +( startgroup "Installing a fresh version of Miniforge" ) 2> /dev/null -echo -e "\n\nInstalling a fresh version of Miniforge." -if [[ ${CI} == "travis" ]]; then - echo -en 'travis_fold:start:install_miniforge\\r' -fi MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download" -MINIFORGE_FILE="Miniforge3-MacOSX-x86_64.sh" +MINIFORGE_FILE="Miniforge3-MacOSX-$(uname -m).sh" curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}" -bash $MINIFORGE_FILE -b -if [[ ${CI} == "travis" ]]; then - echo -en 'travis_fold:end:install_miniforge\\r' -fi +rm -rf ${MINIFORGE_HOME} +bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} -echo -e "\n\nConfiguring conda." -if [[ ${CI} == "travis" ]]; then - echo -en 'travis_fold:start:configure_conda\\r' -fi +( endgroup "Installing a fresh version of Miniforge" ) 2> /dev/null + +( startgroup "Configuring conda" ) 2> /dev/null -source ${HOME}/miniforge3/etc/profile.d/conda.sh +GET_BOA=boa +BUILD_CMD=mambabuild + +source ${MINIFORGE_HOME}/etc/profile.d/conda.sh conda activate base echo -e "\n\nInstalling conda-forge-ci-setup=3 and conda-build." -conda install -n base --quiet --yes "conda-forge-ci-setup=3" conda-build pip +conda install -n base --quiet --yes "conda-forge-ci-setup=3" conda-build pip ${GET_BOA:-} echo -e "\n\nSetting up the condarc and mangling the compiler." setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml -mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml -echo -e "\n\nMangling homebrew in the CI to avoid conflicts." -/usr/bin/sudo mangle_homebrew -/usr/bin/sudo -k +if [[ "${CI:-}" != "" ]]; then + mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml +fi + +if [[ "${CI:-}" != "" ]]; then + echo -e "\n\nMangling homebrew in the CI to avoid conflicts." + /usr/bin/sudo mangle_homebrew + /usr/bin/sudo -k +else + echo -e "\n\nNot mangling homebrew as we are not running in CI" +fi echo -e "\n\nRunning the build setup script." source run_conda_forge_build_setup -if [[ ${CI} == "travis" ]]; then - echo -en 'travis_fold:end:configure_conda\\r' -fi -set -e +( endgroup "Configuring conda" ) 2> /dev/null -echo -e "\n\nMaking the build clobber file and running the build." + +echo -e "\n\nMaking the build clobber file" make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml -conda build ./recipe -m ./.ci_support/${CONFIG}.yaml --suppress-variables --clobber-file ./.ci_support/clobber_${CONFIG}.yaml ${EXTRA_CB_OPTIONS:-} +conda $BUILD_CMD ./recipe -m ./.ci_support/${CONFIG}.yaml --suppress-variables --clobber-file ./.ci_support/clobber_${CONFIG}.yaml ${EXTRA_CB_OPTIONS:-} +( startgroup "Validating outputs" ) 2> /dev/null + validate_recipe_outputs "${FEEDSTOCK_NAME}" -if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then - echo -e "\n\nUploading the packages." +( endgroup "Validating outputs" ) 2> /dev/null + +( startgroup "Uploading packages" ) 2> /dev/null + +if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml -fi \ No newline at end of file +fi + +( endgroup "Uploading packages" ) 2> /dev/null \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt index 5f30279..ed3f451 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,5 +1,5 @@ BSD 3-clause license -Copyright (c) 2015-2020, conda-forge contributors +Copyright (c) 2015-2021, conda-forge contributors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/README.md b/README.md index 2752adb..396b680 100644 --- a/README.md +++ b/README.md @@ -40,24 +40,17 @@ Current build status - + - + - - - @@ -68,24 +61,17 @@ Current build status - - - - + - + @@ -117,6 +103,7 @@ Installing `coremltools` from the `conda-forge` channel can be achieved by addin ``` conda config --add channels conda-forge +conda config --set channel_priority strict ``` Once the `conda-forge` channel has been enabled, `coremltools` can be installed with: @@ -135,7 +122,8 @@ conda search coremltools --channel conda-forge About conda-forge ================= -[![Powered by NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](http://numfocus.org) +[![Powered by +NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](https://numfocus.org) conda-forge is a community-led conda channel of installable packages. In order to provide high-quality builds, the process has been automated into the @@ -187,16 +175,16 @@ build distinct package versions. In order to produce a uniquely identifiable distribution: * If the version of a package **is not** being increased, please add or increase - the [``build/number``](https://conda.io/docs/user-guide/tasks/build-packages/define-metadata.html#build-number-and-string). + the [``build/number``](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-number-and-string). * If the version of a package **is** being increased, please remember to return - the [``build/number``](https://conda.io/docs/user-guide/tasks/build-packages/define-metadata.html#build-number-and-string) + the [``build/number``](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-number-and-string) back to 0. Feedstock Maintainers ===================== * [@1duo](https://github.com/1duo/) -* [@TomAugspurger](https://github.com/TomAugspurger/) +* [@TobyRoseman](https://github.com/TobyRoseman/) * [@aseemw](https://github.com/aseemw/) * [@seibert](https://github.com/seibert/) diff --git a/build-locally.py b/build-locally.py index 3453cfe..8b74348 100755 --- a/build-locally.py +++ b/build-locally.py @@ -7,15 +7,25 @@ import glob import subprocess from argparse import ArgumentParser +import platform def setup_environment(ns): os.environ["CONFIG"] = ns.config os.environ["UPLOAD_PACKAGES"] = "False" + os.environ["IS_PR_BUILD"] = "True" if ns.debug: os.environ["BUILD_WITH_CONDA_DEBUG"] = "1" if ns.output_id: os.environ["BUILD_OUTPUT_ID"] = ns.output_id + if "MINIFORGE_HOME" not in os.environ: + os.environ["MINIFORGE_HOME"] = os.path.join( + os.path.dirname(__file__), "miniforge3" + ) + if "OSX_SDK_DIR" not in os.environ: + os.environ["OSX_SDK_DIR"] = os.path.join( + os.path.dirname(__file__), "SDKs" + ) def run_docker_build(ns): @@ -23,6 +33,11 @@ def run_docker_build(ns): subprocess.check_call([script]) +def run_osx_build(ns): + script = ".scripts/run_osx_build.sh" + subprocess.check_call([script]) + + def verify_config(ns): valid_configs = { os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml") @@ -46,10 +61,16 @@ def verify_config(ns): else: raise ValueError("config " + ns.config + " is not valid") # Remove the following, as implemented - if not ns.config.startswith("linux"): + if ns.config.startswith("win"): raise ValueError( - f"only Linux configs currently supported, got {ns.config}" + f"only Linux/macOS configs currently supported, got {ns.config}" ) + elif ns.config.startswith("osx") and platform.system() == "Darwin": + if "OSX_SDK_DIR" not in os.environ: + raise RuntimeError( + "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=/opt'" + "to download the SDK automatically to '/opt/MacOSX.sdk'" + ) def main(args=None): @@ -68,7 +89,12 @@ def main(args=None): verify_config(ns) setup_environment(ns) - run_docker_build(ns) + if ns.config.startswith("linux") or ( + ns.config.startswith("osx") and platform.system() == "Linux" + ): + run_docker_build(ns) + elif ns.config.startswith("osx"): + run_osx_build(ns) if __name__ == "__main__":
VariantStatus
linux_64_numpy1.16python3.6.____cpythonlinux_64_numpy1.18python3.7.____cpython - variant + variant
linux_64_numpy1.16python3.7.____cpythonlinux_64_numpy1.18python3.8.____cpython - variant - -
linux_64_numpy1.16python3.8.____cpython - - variant + variant
osx_64_numpy1.16python3.6.____cpython - - variant - -
osx_64_numpy1.16python3.7.____cpythonosx_64_numpy1.18python3.7.____cpython - variant + variant
osx_64_numpy1.16python3.8.____cpythonosx_64_numpy1.18python3.8.____cpython - variant + variant