diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index cef0f992..bf3e4882 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,20 +8,28 @@ jobs: vmImage: ubuntu-16.04 strategy: matrix: - linux_64_blas_implblisblas_impl_liblibblis.so.3: - CONFIG: linux_64_blas_implblisblas_impl_liblibblis.so.3 + linux_64_blas_implblis: + CONFIG: linux_64_blas_implblis UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 - linux_64_blas_implmklblas_impl_liblibmkl_rt.so: - CONFIG: linux_64_blas_implmklblas_impl_liblibmkl_rt.so + linux_64_blas_implmkl: + CONFIG: linux_64_blas_implmkl UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 - linux_64_blas_implopenblasblas_impl_liblibopenblas.so.0: - CONFIG: linux_64_blas_implopenblasblas_impl_liblibopenblas.so.0 + linux_64_blas_implnetlib: + CONFIG: linux_64_blas_implnetlib UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 - linux_ppc64le_: - CONFIG: linux_ppc64le_ + linux_64_blas_implopenblas: + CONFIG: linux_64_blas_implopenblas + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 + linux_ppc64le_blas_implnetlib: + CONFIG: linux_ppc64le_blas_implnetlib + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-ppc64le + linux_ppc64le_blas_implopenblas: + CONFIG: linux_ppc64le_blas_implopenblas UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-ppc64le timeoutInMinutes: 360 diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index b0a4641c..226189dd 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -8,17 +8,23 @@ jobs: vmImage: macOS-10.15 strategy: matrix: - osx_64_blas_implblisblas_impl_liblibblis.3.dylib: - CONFIG: osx_64_blas_implblisblas_impl_liblibblis.3.dylib + osx_64_blas_implblis: + CONFIG: osx_64_blas_implblis UPLOAD_PACKAGES: 'True' - osx_64_blas_implmklblas_impl_liblibmkl_rt.dylib: - CONFIG: osx_64_blas_implmklblas_impl_liblibmkl_rt.dylib + osx_64_blas_implmkl: + CONFIG: osx_64_blas_implmkl UPLOAD_PACKAGES: 'True' - osx_64_blas_implopenblasblas_impl_liblibopenblas.0.dylib: - CONFIG: osx_64_blas_implopenblasblas_impl_liblibopenblas.0.dylib + osx_64_blas_implnetlib: + CONFIG: osx_64_blas_implnetlib UPLOAD_PACKAGES: 'True' - osx_arm64_: - CONFIG: osx_arm64_ + osx_64_blas_implopenblas: + CONFIG: osx_64_blas_implopenblas + UPLOAD_PACKAGES: 'True' + osx_arm64_blas_implnetlib: + CONFIG: osx_arm64_blas_implnetlib + UPLOAD_PACKAGES: 'True' + osx_arm64_blas_implopenblas: + CONFIG: osx_arm64_blas_implopenblas UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 5b1a72e6..4ea3b0e1 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -14,6 +14,9 @@ jobs: win_64_blas_implmklblas_impl_libmkl_rt.dll: CONFIG: win_64_blas_implmklblas_impl_libmkl_rt.dll UPLOAD_PACKAGES: 'True' + win_64_blas_implnetlibblas_impl_libblas.dll: + CONFIG: win_64_blas_implnetlibblas_impl_libblas.dll + UPLOAD_PACKAGES: 'True' win_64_blas_implopenblasblas_impl_libopenblas.dll: CONFIG: win_64_blas_implopenblasblas_impl_libopenblas.dll UPLOAD_PACKAGES: 'True' diff --git a/.ci_support/linux_64_blas_implblisblas_impl_liblibblis.so.3.yaml b/.ci_support/linux_64_blas_implblis.yaml similarity index 90% rename from .ci_support/linux_64_blas_implblisblas_impl_liblibblis.so.3.yaml rename to .ci_support/linux_64_blas_implblis.yaml index bbc4d694..6c13f1e0 100644 --- a/.ci_support/linux_64_blas_implblisblas_impl_liblibblis.so.3.yaml +++ b/.ci_support/linux_64_blas_implblis.yaml @@ -20,6 +20,8 @@ fortran_compiler: - gfortran fortran_compiler_version: - '9' +openblas: +- 0.3.* target_platform: - linux-64 zip_keys: @@ -27,3 +29,5 @@ zip_keys: - blas_impl_lib - - c_compiler_version - fortran_compiler_version +- - cdt_name + - docker_image diff --git a/.ci_support/linux_64_blas_implmklblas_impl_liblibmkl_rt.so.yaml b/.ci_support/linux_64_blas_implmkl.yaml similarity index 90% rename from .ci_support/linux_64_blas_implmklblas_impl_liblibmkl_rt.so.yaml rename to .ci_support/linux_64_blas_implmkl.yaml index fe899bdc..9f300a02 100644 --- a/.ci_support/linux_64_blas_implmklblas_impl_liblibmkl_rt.so.yaml +++ b/.ci_support/linux_64_blas_implmkl.yaml @@ -20,6 +20,8 @@ fortran_compiler: - gfortran fortran_compiler_version: - '9' +openblas: +- 0.3.* target_platform: - linux-64 zip_keys: @@ -27,3 +29,5 @@ zip_keys: - blas_impl_lib - - c_compiler_version - fortran_compiler_version +- - cdt_name + - docker_image diff --git a/.ci_support/linux_64_blas_implnetlib.yaml b/.ci_support/linux_64_blas_implnetlib.yaml new file mode 100644 index 00000000..ced70a0d --- /dev/null +++ b/.ci_support/linux_64_blas_implnetlib.yaml @@ -0,0 +1,33 @@ +blas_default_impl: +- openblas +blas_impl: +- netlib +blas_impl_lib: +- libblas.so +c_compiler: +- gcc +c_compiler_version: +- '9' +cdt_name: +- cos6 +channel_sources: +- conda-forge,defaults +channel_targets: +- conda-forge main +docker_image: +- quay.io/condaforge/linux-anvil-comp7 +fortran_compiler: +- gfortran +fortran_compiler_version: +- '9' +openblas: +- 0.3.* +target_platform: +- linux-64 +zip_keys: +- - blas_impl + - blas_impl_lib +- - c_compiler_version + - fortran_compiler_version +- - cdt_name + - docker_image diff --git a/.ci_support/linux_64_blas_implopenblasblas_impl_liblibopenblas.so.0.yaml b/.ci_support/linux_64_blas_implopenblas.yaml similarity index 90% rename from .ci_support/linux_64_blas_implopenblasblas_impl_liblibopenblas.so.0.yaml rename to .ci_support/linux_64_blas_implopenblas.yaml index 9cbb6117..50c16f99 100644 --- a/.ci_support/linux_64_blas_implopenblasblas_impl_liblibopenblas.so.0.yaml +++ b/.ci_support/linux_64_blas_implopenblas.yaml @@ -20,6 +20,8 @@ fortran_compiler: - gfortran fortran_compiler_version: - '9' +openblas: +- 0.3.* target_platform: - linux-64 zip_keys: @@ -27,3 +29,5 @@ zip_keys: - blas_impl_lib - - c_compiler_version - fortran_compiler_version +- - cdt_name + - docker_image diff --git a/.ci_support/linux_aarch64_blas_implnetlib.yaml b/.ci_support/linux_aarch64_blas_implnetlib.yaml new file mode 100644 index 00000000..448c56ce --- /dev/null +++ b/.ci_support/linux_aarch64_blas_implnetlib.yaml @@ -0,0 +1,35 @@ +BUILD: +- aarch64-conda_cos7-linux-gnu +blas_default_impl: +- openblas +blas_impl: +- netlib +blas_impl_lib: +- libblas.so +c_compiler: +- gcc +c_compiler_version: +- '9' +cdt_arch: +- aarch64 +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +docker_image: +- quay.io/condaforge/linux-anvil-aarch64 +fortran_compiler: +- gfortran +fortran_compiler_version: +- '9' +openblas: +- 0.3.* +target_platform: +- linux-aarch64 +zip_keys: +- - blas_impl + - blas_impl_lib +- - c_compiler_version + - fortran_compiler_version diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_blas_implopenblas.yaml similarity index 96% rename from .ci_support/linux_aarch64_.yaml rename to .ci_support/linux_aarch64_blas_implopenblas.yaml index 30f85f08..fc21d28c 100644 --- a/.ci_support/linux_aarch64_.yaml +++ b/.ci_support/linux_aarch64_blas_implopenblas.yaml @@ -24,6 +24,8 @@ fortran_compiler: - gfortran fortran_compiler_version: - '9' +openblas: +- 0.3.* target_platform: - linux-aarch64 zip_keys: diff --git a/.ci_support/linux_ppc64le_blas_implnetlib.yaml b/.ci_support/linux_ppc64le_blas_implnetlib.yaml new file mode 100644 index 00000000..9f3e7757 --- /dev/null +++ b/.ci_support/linux_ppc64le_blas_implnetlib.yaml @@ -0,0 +1,31 @@ +blas_default_impl: +- openblas +blas_impl: +- netlib +blas_impl_lib: +- libblas.so +c_compiler: +- gcc +c_compiler_version: +- '9' +cdt_name: +- cos7 +channel_sources: +- conda-forge,defaults +channel_targets: +- conda-forge main +docker_image: +- quay.io/condaforge/linux-anvil-ppc64le +fortran_compiler: +- gfortran +fortran_compiler_version: +- '9' +openblas: +- 0.3.* +target_platform: +- linux-ppc64le +zip_keys: +- - blas_impl + - blas_impl_lib +- - c_compiler_version + - fortran_compiler_version diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_blas_implopenblas.yaml similarity index 96% rename from .ci_support/linux_ppc64le_.yaml rename to .ci_support/linux_ppc64le_blas_implopenblas.yaml index f7a181db..7b6126b7 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_blas_implopenblas.yaml @@ -20,6 +20,8 @@ fortran_compiler: - gfortran fortran_compiler_version: - '9' +openblas: +- 0.3.* target_platform: - linux-ppc64le zip_keys: diff --git a/.ci_support/osx_64_blas_implblisblas_impl_liblibblis.3.dylib.yaml b/.ci_support/osx_64_blas_implblis.yaml similarity index 96% rename from .ci_support/osx_64_blas_implblisblas_impl_liblibblis.3.dylib.yaml rename to .ci_support/osx_64_blas_implblis.yaml index 91f0b3c0..822f8d47 100644 --- a/.ci_support/osx_64_blas_implblisblas_impl_liblibblis.3.dylib.yaml +++ b/.ci_support/osx_64_blas_implblis.yaml @@ -20,6 +20,8 @@ fortran_compiler_version: - '9' macos_machine: - x86_64-apple-darwin13.4.0 +openblas: +- 0.3.* target_platform: - osx-64 zip_keys: diff --git a/.ci_support/osx_64_blas_implmklblas_impl_liblibmkl_rt.dylib.yaml b/.ci_support/osx_64_blas_implmkl.yaml similarity index 96% rename from .ci_support/osx_64_blas_implmklblas_impl_liblibmkl_rt.dylib.yaml rename to .ci_support/osx_64_blas_implmkl.yaml index 73d5646a..3336f601 100644 --- a/.ci_support/osx_64_blas_implmklblas_impl_liblibmkl_rt.dylib.yaml +++ b/.ci_support/osx_64_blas_implmkl.yaml @@ -20,6 +20,8 @@ fortran_compiler_version: - '9' macos_machine: - x86_64-apple-darwin13.4.0 +openblas: +- 0.3.* target_platform: - osx-64 zip_keys: diff --git a/.ci_support/osx_64_blas_implnetlib.yaml b/.ci_support/osx_64_blas_implnetlib.yaml new file mode 100644 index 00000000..a1cc3062 --- /dev/null +++ b/.ci_support/osx_64_blas_implnetlib.yaml @@ -0,0 +1,31 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.9' +blas_default_impl: +- openblas +blas_impl: +- netlib +blas_impl_lib: +- libblas.dylib +c_compiler: +- clang +c_compiler_version: +- '11' +channel_sources: +- conda-forge,defaults +channel_targets: +- conda-forge main +fortran_compiler: +- gfortran +fortran_compiler_version: +- '9' +macos_machine: +- x86_64-apple-darwin13.4.0 +openblas: +- 0.3.* +target_platform: +- osx-64 +zip_keys: +- - blas_impl + - blas_impl_lib +- - c_compiler_version + - fortran_compiler_version diff --git a/.ci_support/osx_64_blas_implopenblasblas_impl_liblibopenblas.0.dylib.yaml b/.ci_support/osx_64_blas_implopenblas.yaml similarity index 96% rename from .ci_support/osx_64_blas_implopenblasblas_impl_liblibopenblas.0.dylib.yaml rename to .ci_support/osx_64_blas_implopenblas.yaml index 271ae247..45443003 100644 --- a/.ci_support/osx_64_blas_implopenblasblas_impl_liblibopenblas.0.dylib.yaml +++ b/.ci_support/osx_64_blas_implopenblas.yaml @@ -20,6 +20,8 @@ fortran_compiler_version: - '9' macos_machine: - x86_64-apple-darwin13.4.0 +openblas: +- 0.3.* target_platform: - osx-64 zip_keys: diff --git a/.ci_support/osx_arm64_blas_implnetlib.yaml b/.ci_support/osx_arm64_blas_implnetlib.yaml new file mode 100644 index 00000000..d420a106 --- /dev/null +++ b/.ci_support/osx_arm64_blas_implnetlib.yaml @@ -0,0 +1,31 @@ +MACOSX_DEPLOYMENT_TARGET: +- '11.0' +blas_default_impl: +- openblas +blas_impl: +- netlib +blas_impl_lib: +- libblas.dylib +c_compiler: +- clang +c_compiler_version: +- '11' +channel_sources: +- conda-forge/label/rust_dev,conda-forge +channel_targets: +- conda-forge main +fortran_compiler: +- gfortran +fortran_compiler_version: +- '11' +macos_machine: +- arm64-apple-darwin20.0.0 +openblas: +- 0.3.* +target_platform: +- osx-arm64 +zip_keys: +- - blas_impl + - blas_impl_lib +- - c_compiler_version + - fortran_compiler_version diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_blas_implopenblas.yaml similarity index 88% rename from .ci_support/osx_arm64_.yaml rename to .ci_support/osx_arm64_blas_implopenblas.yaml index 8771bbec..db0cf46f 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_blas_implopenblas.yaml @@ -11,7 +11,7 @@ c_compiler: c_compiler_version: - '11' channel_sources: -- conda-forge +- conda-forge/label/rust_dev,conda-forge channel_targets: - conda-forge main fortran_compiler: @@ -20,6 +20,8 @@ fortran_compiler_version: - '11' macos_machine: - arm64-apple-darwin20.0.0 +openblas: +- 0.3.* target_platform: - osx-arm64 zip_keys: diff --git a/.ci_support/win_64_blas_implblisblas_impl_liblibblis.3.dll.yaml b/.ci_support/win_64_blas_implblisblas_impl_liblibblis.3.dll.yaml index c40078d7..5b39ba13 100644 --- a/.ci_support/win_64_blas_implblisblas_impl_liblibblis.3.dll.yaml +++ b/.ci_support/win_64_blas_implblisblas_impl_liblibblis.3.dll.yaml @@ -12,6 +12,8 @@ m2w64_c_compiler: - m2w64-toolchain m2w64_fortran_compiler: - m2w64-toolchain +openblas: +- 0.3.* target_platform: - win-64 zip_keys: diff --git a/.ci_support/win_64_blas_implmklblas_impl_libmkl_rt.dll.yaml b/.ci_support/win_64_blas_implmklblas_impl_libmkl_rt.dll.yaml index 786f3c1a..8b205678 100644 --- a/.ci_support/win_64_blas_implmklblas_impl_libmkl_rt.dll.yaml +++ b/.ci_support/win_64_blas_implmklblas_impl_libmkl_rt.dll.yaml @@ -12,6 +12,8 @@ m2w64_c_compiler: - m2w64-toolchain m2w64_fortran_compiler: - m2w64-toolchain +openblas: +- 0.3.* target_platform: - win-64 zip_keys: diff --git a/.ci_support/win_64_blas_implnetlibblas_impl_libblas.dll.yaml b/.ci_support/win_64_blas_implnetlibblas_impl_libblas.dll.yaml new file mode 100644 index 00000000..5e42273b --- /dev/null +++ b/.ci_support/win_64_blas_implnetlibblas_impl_libblas.dll.yaml @@ -0,0 +1,21 @@ +blas_default_impl: +- mkl +blas_impl: +- netlib +blas_impl_lib: +- blas.dll +channel_sources: +- conda-forge,defaults +channel_targets: +- conda-forge main +m2w64_c_compiler: +- m2w64-toolchain +m2w64_fortran_compiler: +- m2w64-toolchain +openblas: +- 0.3.* +target_platform: +- win-64 +zip_keys: +- - blas_impl + - blas_impl_lib diff --git a/.ci_support/win_64_blas_implopenblasblas_impl_libopenblas.dll.yaml b/.ci_support/win_64_blas_implopenblasblas_impl_libopenblas.dll.yaml index 70efdae1..bd9f73d0 100644 --- a/.ci_support/win_64_blas_implopenblasblas_impl_libopenblas.dll.yaml +++ b/.ci_support/win_64_blas_implopenblasblas_impl_libopenblas.dll.yaml @@ -12,6 +12,8 @@ m2w64_c_compiler: - m2w64-toolchain m2w64_fortran_compiler: - m2w64-toolchain +openblas: +- 0.3.* target_platform: - win-64 zip_keys: diff --git a/.drone.yml b/.drone.yml index af150917..5c7ad6f6 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,6 +1,6 @@ --- kind: pipeline -name: linux_aarch64_ +name: linux_aarch64_blas_implnetlib platform: os: linux @@ -10,7 +10,38 @@ steps: - name: Install and build image: quay.io/condaforge/linux-anvil-aarch64 environment: - CONFIG: linux_aarch64_ + CONFIG: linux_aarch64_blas_implnetlib + UPLOAD_PACKAGES: True + PLATFORM: linux-aarch64 + BINSTAR_TOKEN: + from_secret: BINSTAR_TOKEN + FEEDSTOCK_TOKEN: + from_secret: FEEDSTOCK_TOKEN + STAGING_BINSTAR_TOKEN: + from_secret: STAGING_BINSTAR_TOKEN + commands: + - export FEEDSTOCK_ROOT="$DRONE_WORKSPACE" + - export RECIPE_ROOT="$FEEDSTOCK_ROOT/recipe" + - export CI=drone + - export GIT_BRANCH="$DRONE_BRANCH" + - export FEEDSTOCK_NAME=$(basename ${DRONE_REPO_NAME}) + - sed -i '$ichown -R conda:conda "$FEEDSTOCK_ROOT"' /opt/docker/bin/entrypoint + - /opt/docker/bin/entrypoint $FEEDSTOCK_ROOT/.scripts/build_steps.sh + - echo "Done building" + +--- +kind: pipeline +name: linux_aarch64_blas_implopenblas + +platform: + os: linux + arch: arm64 + +steps: +- name: Install and build + image: quay.io/condaforge/linux-anvil-aarch64 + environment: + CONFIG: linux_aarch64_blas_implopenblas UPLOAD_PACKAGES: True PLATFORM: linux-aarch64 BINSTAR_TOKEN: diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 82c9af3c..17825cb3 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @isuruf @jakirkham @ocefpaf @pelson \ No newline at end of file +* @h-vetinari @isuruf @jakirkham @ocefpaf @pelson \ No newline at end of file diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 8a4b0d37..7fbce051 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,28 +36,37 @@ source run_conda_forge_build_setup # make the build number clobber make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" -if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then +if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" fi +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 36dacd6e..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 )" @@ -65,7 +69,9 @@ 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,delegated \ diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 3675dacf..7688497f 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,23 +34,26 @@ 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 if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" fi -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 29e0d373..3b26c2ad 100644 --- a/README.md +++ b/README.md @@ -34,66 +34,101 @@ Current build status
| Variant | Status | |
|---|---|---|
| linux_64_blas_implblisblas_impl_liblibblis.so.3 | +linux_64_blas_implblis |
- |
| linux_64_blas_implmklblas_impl_liblibmkl_rt.so | +linux_64_blas_implmkl |
- |
| linux_64_blas_implopenblasblas_impl_liblibopenblas.so.0 | +linux_64_blas_implnetlib |
- |
| linux_aarch64 | +linux_64_blas_implopenblas |
- |
| linux_ppc64le | +linux_aarch64_blas_implnetlib |
- |
| osx_64_blas_implblisblas_impl_liblibblis.3.dylib | +linux_aarch64_blas_implopenblas |
- |
| osx_64_blas_implmklblas_impl_liblibmkl_rt.dylib | +linux_ppc64le_blas_implnetlib |
- |
| osx_64_blas_implopenblasblas_impl_liblibopenblas.0.dylib | +linux_ppc64le_blas_implopenblas |
- |
| osx_arm64 | +osx_64_blas_implblis |
- |
+
| osx_64_blas_implmkl | +
+
+ |
+ |
| osx_64_blas_implnetlib | +
+
+ |
+ |
| osx_64_blas_implopenblas | +
+
+ |
+ |
| osx_arm64_blas_implnetlib | +
+
+ |
+ |
| osx_arm64_blas_implopenblas | +
+
+ |
|
| win_64_blas_implnetlibblas_impl_libblas.dll | +
+
+ |
|
| win_64_blas_implopenblasblas_impl_libopenblas.dll | @@ -214,14 +256,15 @@ 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 ===================== +* [@h-vetinari](https://github.com/h-vetinari/) * [@isuruf](https://github.com/isuruf/) * [@jakirkham](https://github.com/jakirkham/) * [@ocefpaf](https://github.com/ocefpaf/) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index fb171e0c..3081b1d8 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -1,8 +1,13 @@ blas_impl: +- netlib - openblas - mkl # [x86 or x86_64] - blis # [x86 or x86_64] blas_impl_lib: +- libblas.so # [linux] +- libblas.dylib # [osx] +- blas.dll # [win] + - libopenblas.so.0 # [linux] - libopenblas.0.dylib # [osx] - openblas.dll # [win] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index f7fab613..84dc99a1 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,12 +1,16 @@ {% set version = "3.9.0" %} # if build_num is reset to 0 (for new version), update increment for blas_minor below -{% set build_num = 8 %} +{% set build_num = 9 %} {% set version_major = version.split(".")[0] %} {% set blas_major = "2" %} # make sure we do not create colliding version strings of output "blas" # for builds across lapack-versions within the same blas_major {% set blas_minor = build_num + 100 %} +# the recipe depends on the netlib builds for blas,cblas,lapack,lapacke; +# specify the exact build number to make the meta-package selection unique +{% set netlib_build_num = 3 %} + # blas_major denotes major infrastructural change to how blas is managed package: name: blas-split @@ -48,6 +52,7 @@ requirements: # - liblapacke {{ version }} *netlib outputs: + {% if blas_impl != 'netlib' %} - name: libblas script: build_pkg.sh # [unix] script: build_pkg.bat # [win] @@ -178,7 +183,8 @@ outputs: - test -f $PREFIX/lib/liblapacke.so.{{ version_major }} # [linux] - test -f $PREFIX/lib/liblapacke.{{ version_major }}.dylib # [osx] - if not exist %LIBRARY_BIN%/liblapacke.dll exit 1 # [win] - {% endif %} + {% endif %} # blas_impl != 'blis' + {% endif %} # blas_impl != 'netlib' - name: blas-devel # uses lapack {{ version }}, not {{ blas_major }} @@ -192,18 +198,27 @@ outputs: run: - openblas # [blas_impl == "openblas"] - mkl-devel # [blas_impl == "mkl"] - - {{ pin_subpackage("liblapack", exact=True) }} # [blas_impl != 'blis'] - - {{ pin_subpackage("liblapacke", exact=True) }} # [blas_impl != 'blis'] - - liblapack {{ version }} *netlib # [blas_impl == 'blis'] - - liblapacke {{ version }} *netlib # [blas_impl == 'blis'] - - {{ pin_subpackage("libcblas", exact=True) }} - - {{ pin_subpackage("libblas", exact=True) }} + # netlib builds are built in lapack-feedstock + - libblas ={{ version }}={{ netlib_build_num }}*netlib # [blas_impl == 'netlib'] + - libcblas ={{ version }}={{ netlib_build_num }}*netlib # [blas_impl == 'netlib'] + - {{ pin_subpackage("libblas", exact=True) }} # [blas_impl != 'netlib'] + - {{ pin_subpackage("libcblas", exact=True) }} # [blas_impl != 'netlib'] + - {{ pin_subpackage("liblapack", exact=True) }} # [blas_impl not in ('blis', 'netlib')] + - {{ pin_subpackage("liblapacke", exact=True) }} # [blas_impl not in ('blis', 'netlib')] + - liblapack ={{ version }}={{ netlib_build_num }}*netlib # [blas_impl in ('blis', 'netlib')] + - liblapacke ={{ version }}={{ netlib_build_num }}*netlib # [blas_impl in ('blis', 'netlib')] test: commands: - - test -f $PREFIX/lib/pkgconfig/blas.pc # [unix and blas_impl == "openblas"] - - test -f $PREFIX/lib/liblapack.so # [linux] - - test -f $PREFIX/lib/liblapack.dylib # [osx] - - if not exist %LIBRARY_BIN%/liblapack.dll exit 1 # [win] + {% for each_lib in ['blas', 'cblas', 'lapack', 'lapacke'] %} + - test -f $PREFIX/lib/lib{{ each_lib }}.so # [linux] + - test -f $PREFIX/lib/lib{{ each_lib }}.so.{{ version_major }} # [linux] + - test -f $PREFIX/lib/lib{{ each_lib }}.dylib # [osx] + - test -f $PREFIX/lib/lib{{ each_lib }}.{{ version_major }}.dylib # [osx] + - test -f $PREFIX/lib/pkgconfig/{{ each_lib }}.pc # [unix and blas_impl != "mkl"] + - if not exist "%LIBRARY_LIB%\\pkgconfig\\{{ each_lib }}.pc" exit 1 # [win and blas_impl != "mkl"] + - if not exist "%LIBRARY_LIB%\\{{ each_lib }}.lib" exit 1 # [win] + - if not exist "%LIBRARY_BIN%\\lib{{ each_lib }}.dll" exit 1 # [win] + {% endfor %} # For compatiblity @@ -226,29 +241,25 @@ outputs: - llvm-openmp # [linux and ((blas_impl == "openblas") or (blas_impl == "mkl"))] host: # Building with blis fails due to a conda-build bug - {% if blas_impl != 'blis' %} + {% if blas_impl == 'blis' %} + - blis 0.8.0 + {% elif blas_impl == 'netlib' %} + - libblas ={{ version }}={{ netlib_build_num }}*netlib + - libcblas ={{ version }}={{ netlib_build_num }}*netlib + - liblapack ={{ version }}={{ netlib_build_num }}*netlib + - liblapacke ={{ version }}={{ netlib_build_num }}*netlib + {% else %} + - {{ pin_subpackage("libblas", exact=True) }} + - {{ pin_subpackage("libcblas", exact=True) }} - {{ pin_subpackage("liblapack", exact=True) }} - {{ pin_subpackage("liblapacke", exact=True) }} - - {{ pin_subpackage("libcblas", exact=True) }} - - {{ pin_subpackage("libblas", exact=True) }} - {% else %} - - blis 0.8.0 {% endif %} run: - - {{ pin_subpackage("liblapack", exact=True) }} # [blas_impl != 'blis'] - - {{ pin_subpackage("liblapacke", exact=True) }} # [blas_impl != 'blis'] - - liblapack {{ version }} *netlib # [blas_impl == 'blis'] - - liblapacke {{ version }} *netlib # [blas_impl == 'blis'] - - {{ pin_subpackage("libcblas", exact=True) }} - - {{ pin_subpackage("libblas", exact=True) }} - {{ pin_subpackage("blas-devel", exact=True) }} test: commands: - - test -f $PREFIX/lib/liblapacke.so # [linux] - - test -f $PREFIX/lib/liblapacke.so.{{ version_major }} # [linux] - - test -f $PREFIX/lib/liblapacke.dylib # [osx] - - test -f $PREFIX/lib/liblapacke.{{ version_major }}.dylib # [osx] - - if not exist %LIBRARY_BIN%/liblapacke.dll exit 1 # [win] + # see tests in blas-devel + - exit 0 about: home: https://github.com/conda-forge/blas-feedstock |