diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index b882cf53..adce9a51 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,14 +8,10 @@ jobs: vmImage: ubuntu-16.04 strategy: matrix: - linux_64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7: - CONFIG: linux_64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7 + linux_64_: + CONFIG: linux_64_ UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: condaforge/linux-anvil-comp7 - linux_64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9: - CONFIG: linux_64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: condaforge/linux-anvil-comp7 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 timeoutInMinutes: 360 steps: diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 264a38fa..0c892401 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -8,11 +8,8 @@ jobs: vmImage: macOS-10.15 strategy: matrix: - osx_64_fortran_compiler_version7: - CONFIG: osx_64_fortran_compiler_version7 - UPLOAD_PACKAGES: 'True' - osx_64_fortran_compiler_version9: - CONFIG: osx_64_fortran_compiler_version9 + osx_64_: + CONFIG: osx_64_ UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 diff --git a/.ci_support/linux_64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml b/.ci_support/linux_64_.yaml similarity index 87% rename from .ci_support/linux_64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml rename to .ci_support/linux_64_.yaml index e2c56865..3a2a5ab8 100644 --- a/.ci_support/linux_64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml +++ b/.ci_support/linux_64_.yaml @@ -4,6 +4,8 @@ c_compiler: - gcc c_compiler_version: - '9' +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: @@ -15,7 +17,7 @@ cxx_compiler: cxx_compiler_version: - '9' docker_image: -- condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-comp7 fftw: - '3' fortran_compiler: @@ -29,7 +31,7 @@ libblas: libcblas: - 3.8 *netlib liblapack: -- 3.8.0 *netlib +- 3.8 *netlib mpfr: - '4' perl: @@ -57,5 +59,7 @@ zip_keys: - - c_compiler_version - cxx_compiler_version - fortran_compiler_version +- - cdt_name + - docker_image zlib: - '1.2' diff --git a/.ci_support/linux_64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7.yaml b/.ci_support/linux_64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7.yaml deleted file mode 100644 index e506cdb4..00000000 --- a/.ci_support/linux_64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7.yaml +++ /dev/null @@ -1,61 +0,0 @@ -arpack: -- '3.7' -c_compiler: -- gcc -c_compiler_version: -- '7' -channel_sources: -- conda-forge,defaults -channel_targets: -- conda-forge main -curl: -- '7' -cxx_compiler: -- gxx -cxx_compiler_version: -- '7' -docker_image: -- condaforge/linux-anvil-comp7 -fftw: -- '3' -fortran_compiler: -- gfortran -fortran_compiler_version: -- '7' -gmp: -- '6' -libblas: -- 3.8 *netlib -libcblas: -- 3.8 *netlib -liblapack: -- 3.8.0 *netlib -mpfr: -- '4' -perl: -- 5.26.2 -pin_run_as_build: - arpack: - max_pin: x.x.x - curl: - max_pin: x - fftw: - max_pin: x - gmp: - max_pin: x - mpfr: - max_pin: x - perl: - max_pin: x.x.x - zlib: - max_pin: x.x -suitesparse: -- '5.6' -target_platform: -- linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - fortran_compiler_version -zlib: -- '1.2' diff --git a/.ci_support/migrations/gcc930.yaml b/.ci_support/migrations/gcc930.yaml deleted file mode 100644 index abac6247..00000000 --- a/.ci_support/migrations/gcc930.yaml +++ /dev/null @@ -1,60 +0,0 @@ -migrator_ts: 1602079781 - -__migrator: - kind: - version - migration_number: 1 - build_number: 1 - override_cbc_keys: - - fortran_compiler_stub - paused: false - -c_compiler_version: # [unix] - - 11 # [osx and arm64] - - - 10 # [osx and x86_64] - - 10 # [osx and x86_64] - - - 9 # [linux64] - - 9 # [aarch64] - - 9 # [ppc64le] - - # we are keeping both versions for a while during the migration - # we need to remove 7/8 when the migration is done - - 7 # [linux64] - - 7 # [aarch64] - - 8 # [ppc64le] - -cxx_compiler_version: # [unix] - - 11 # [osx and arm64] - - - 10 # [osx and x86_64] - - 10 # [osx and x86_64] - - - 9 # [linux64] - - 9 # [aarch64] - - 9 # [ppc64le] - - # we are keeping both versions for a while during the migration - # we need to remove 7/8 when the migration is done - - 7 # [linux64] - - 7 # [aarch64] - - 8 # [ppc64le] - -fortran_compiler_version: # [unix or win64] - - 11 # [osx and arm64] - - - 9 # [osx and x86_64] - - 7 # [osx and x86_64] - - - 9 # [linux64] - - 9 # [aarch64] - - 9 # [ppc64le] - - # we are keeping both versions for a while during the migration - # we need to remove 7/8 when the migration is done - - 7 # [linux64] - - 7 # [aarch64] - - 8 # [ppc64le] - - - 5 # [win64] diff --git a/.ci_support/migrations/pcre2_1036.yaml b/.ci_support/migrations/pcre2_1036.yaml new file mode 100644 index 00000000..428b241d --- /dev/null +++ b/.ci_support/migrations/pcre2_1036.yaml @@ -0,0 +1,12 @@ +migrator_ts: 1614603878 +__migrator: + kind: + version + migration_number: + 1 + bump_number: + 1 + +pcre2: + - '10.36' + diff --git a/.ci_support/osx_64_fortran_compiler_version9.yaml b/.ci_support/osx_64_.yaml similarity index 96% rename from .ci_support/osx_64_fortran_compiler_version9.yaml rename to .ci_support/osx_64_.yaml index 6827d3d9..b00e822f 100644 --- a/.ci_support/osx_64_fortran_compiler_version9.yaml +++ b/.ci_support/osx_64_.yaml @@ -5,7 +5,7 @@ arpack: c_compiler: - clang c_compiler_version: -- '10' +- '11' channel_sources: - conda-forge,defaults channel_targets: @@ -15,7 +15,7 @@ curl: cxx_compiler: - clangxx cxx_compiler_version: -- '10' +- '11' fftw: - '3' fortran_compiler: @@ -29,7 +29,7 @@ libblas: libcblas: - 3.8 *netlib liblapack: -- 3.8.0 *netlib +- 3.8 *netlib macos_machine: - x86_64-apple-darwin13.4.0 mpfr: diff --git a/.ci_support/osx_64_fortran_compiler_version7.yaml b/.ci_support/osx_64_fortran_compiler_version7.yaml deleted file mode 100644 index fd43309d..00000000 --- a/.ci_support/osx_64_fortran_compiler_version7.yaml +++ /dev/null @@ -1,63 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '10.9' -arpack: -- '3.7' -c_compiler: -- clang -c_compiler_version: -- '10' -channel_sources: -- conda-forge,defaults -channel_targets: -- conda-forge main -curl: -- '7' -cxx_compiler: -- clangxx -cxx_compiler_version: -- '10' -fftw: -- '3' -fortran_compiler: -- gfortran -fortran_compiler_version: -- '7' -gmp: -- '6' -libblas: -- 3.8 *netlib -libcblas: -- 3.8 *netlib -liblapack: -- 3.8.0 *netlib -macos_machine: -- x86_64-apple-darwin13.4.0 -mpfr: -- '4' -perl: -- 5.26.2 -pin_run_as_build: - arpack: - max_pin: x.x.x - curl: - max_pin: x - fftw: - max_pin: x - gmp: - max_pin: x - mpfr: - max_pin: x - perl: - max_pin: x.x.x - zlib: - max_pin: x.x -suitesparse: -- '5.6' -target_platform: -- osx-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - fortran_compiler_version -zlib: -- '1.2' diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index aa9727b9..522eabcf 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -6,8 +6,14 @@ # 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" + +startgroup "Configuring conda" +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 +24,9 @@ conda-build: root-dir: ${FEEDSTOCK_ROOT}/build_artifacts CONDARC +BUILD_CMD=build -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}" @@ -29,24 +36,33 @@ source run_conda_forge_build_setup # make the build number clobber make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" +endgroup "Configuring conda" if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then + startgroup "Running conda debug" if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" fi conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ ${EXTRA_CB_OPTIONS:-} \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" + endgroup "Running conda debug" # Drop into an interactive shell /bin/bash else - conda build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + startgroup "Running conda $BUILD_CMD" + conda $BUILD_CMD "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" + endgroup "Running conda build" + startgroup "Validating outputs" validate_recipe_outputs "${FEEDSTOCK_NAME}" + endgroup "Validating outputs" if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then + startgroup "Uploading packages" upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" + endgroup "Uploading packages" fi fi diff --git a/.scripts/logging_utils.sh b/.scripts/logging_utils.sh new file mode 100644 index 00000000..a53ef3f2 --- /dev/null +++ b/.scripts/logging_utils.sh @@ -0,0 +1,30 @@ +#!/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';; + * ) + echo "$1";; + esac +} + +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';; + esac +} diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 87ba4db0..16d6c15a 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" + set -xeo pipefail THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" @@ -45,8 +49,12 @@ fi if [ -z "${DOCKER_IMAGE}" ]; then SHYAML_INSTALLED="$(shyaml -h || echo NO)" if [ "${SHYAML_INSTALLED}" == "NO" ]; then - echo "WARNING: DOCKER_IMAGE variable not set and shyaml not installed. Falling back to condaforge/linux-anvil-comp7" - DOCKER_IMAGE="condaforge/linux-anvil-comp7" + 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" + fi else DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 condaforge/linux-anvil-comp7 )" fi @@ -61,11 +69,13 @@ DOCKER_RUN_ARGS="${CONDA_FORGE_DOCKER_RUN_ARGS}" if [ -z "${CI}" ]; then DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" fi +endgroup "Configure Docker" +startgroup "Start Docker" export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" docker run ${DOCKER_RUN_ARGS} \ - -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z \ - -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z \ + -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 \ diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index c299b792..614ca844 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -1,29 +1,24 @@ #!/usr/bin/env bash +source .scripts/logging_utils.sh + set -x -echo -e "\n\nInstalling a fresh version of Miniforge." -if [[ ${CI} == "travis" ]]; then - echo -en 'travis_fold:start:install_miniforge\\r' -fi +startgroup "Installing a fresh version of Miniforge" MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download" MINIFORGE_FILE="Miniforge3-MacOSX-x86_64.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 +endgroup "Installing a fresh version of Miniforge" -echo -e "\n\nConfiguring conda." -if [[ ${CI} == "travis" ]]; then - echo -en 'travis_fold:start:configure_conda\\r' -fi +startgroup "Configuring conda" +BUILD_CMD=build source ${HOME}/miniforge3/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:-} @@ -39,19 +34,22 @@ 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 +endgroup "Configuring conda" set -e -echo -e "\n\nMaking the build clobber file and running the build." +startgroup "Running conda $BUILD_CMD" +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:-} +endgroup "Running conda build" +startgroup "Validating outputs" validate_recipe_outputs "${FEEDSTOCK_NAME}" +endgroup "Validating outputs" if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then - echo -e "\n\nUploading the packages." + startgroup "Uploading packages" upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml + endgroup "Uploading packages" fi \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt index 5f302793..ed3f451e 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 1ebbbcdf..4efbc18b 100644 --- a/README.md +++ b/README.md @@ -27,31 +27,17 @@ Current build status
Variant | Status | |
---|---|---|
linux_64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7 | +linux_64 | - + |
linux_64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9 | +osx_64 | - - - | -
osx_64_fortran_compiler_version7 | -- - - - | -|
osx_64_fortran_compiler_version9 | -- - + |