diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 9ffb709e..b882cf53 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -6,15 +6,24 @@ jobs: - job: linux pool: vmImage: ubuntu-16.04 - timeoutInMinutes: 360 strategy: - maxParallel: 8 matrix: - linux_: - CONFIG: linux_ - UPLOAD_PACKAGES: True + linux_64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7: + CONFIG: linux_64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7 + 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 + timeoutInMinutes: 360 + steps: + - script: | + rm -rf /opt/ghc + df -h + displayName: Manage disk space + # configure qemu binfmt-misc running. This allows us to run docker containers # embedded qemu-static - script: | @@ -26,7 +35,10 @@ jobs: - script: | export CI=azure export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) .scripts/run_docker_build.sh displayName: Run docker build env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) \ No newline at end of file + BINSTAR_TOKEN: $(BINSTAR_TOKEN) + FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 0808a1ad..264a38fa 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -5,71 +5,27 @@ jobs: - job: osx pool: - vmImage: macOS-10.14 - timeoutInMinutes: 360 + vmImage: macOS-10.15 strategy: - maxParallel: 8 matrix: - osx_: - CONFIG: osx_ - UPLOAD_PACKAGES: True + 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 + UPLOAD_PACKAGES: 'True' + timeoutInMinutes: 360 steps: # TODO: Fast finish on azure pipelines? - script: | - echo "Fast Finish" - - - - bash: | - echo "##vso[task.prependpath]$CONDA/bin" - sudo chown -R $USER $CONDA - displayName: Add conda to PATH - - - script: | - source activate base - conda install -n base -c conda-forge --quiet --yes conda-forge-ci-setup=2 conda-build - displayName: 'Add conda-forge-ci-setup=2' - - - script: | - echo "Mangling homebrew from Azure to avoid conflicts." - source activate base - /usr/bin/sudo mangle_homebrew - /usr/bin/sudo -k - displayName: Mangle homebrew - - - script: | - source activate base - echo "Configuring conda." - - setup_conda_rc ./ "./recipe" ./.ci_support/${CONFIG}.yaml export CI=azure - source run_conda_forge_build_setup - conda update --yes --quiet --override-channels -c conda-forge -c defaults --all - env: { - OSX_FORCE_SDK_DOWNLOAD: "1" - } - displayName: Configure conda and conda-build - - - script: | - source activate base - mangle_compiler ./ "./recipe" ./.ci_support/${CONFIG}.yaml - displayName: Mangle compiler - - - script: | - source activate base - make_build_number ./ "./recipe" ./.ci_support/${CONFIG}.yaml - displayName: Generate build number clobber file - - - script: | - source activate base - conda build "./recipe" -m ./.ci_support/${CONFIG}.yaml --clobber-file ./.ci_support/clobber_${CONFIG}.yaml - displayName: Build recipe - - - script: | - source activate base + export OSX_FORCE_SDK_DOWNLOAD="1" export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - upload_package ./ "./recipe" ./.ci_support/${CONFIG}.yaml - displayName: Upload package + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + ./.scripts/run_osx_build.sh + displayName: Run OSX build env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) - condition: and(succeeded(), not(eq(variables['UPLOAD_PACKAGES'], 'False'))) \ No newline at end of file + FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file diff --git a/.ci_support/linux_.yaml b/.ci_support/linux_64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7.yaml similarity index 84% rename from .ci_support/linux_.yaml rename to .ci_support/linux_64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7.yaml index 43e3ac3e..e506cdb4 100644 --- a/.ci_support/linux_.yaml +++ b/.ci_support/linux_64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7.yaml @@ -51,5 +51,11 @@ pin_run_as_build: 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/linux_64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml b/.ci_support/linux_64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml new file mode 100644 index 00000000..e2c56865 --- /dev/null +++ b/.ci_support/linux_64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml @@ -0,0 +1,61 @@ +arpack: +- '3.7' +c_compiler: +- gcc +c_compiler_version: +- '9' +channel_sources: +- conda-forge,defaults +channel_targets: +- conda-forge main +curl: +- '7' +cxx_compiler: +- gxx +cxx_compiler_version: +- '9' +docker_image: +- condaforge/linux-anvil-comp7 +fftw: +- '3' +fortran_compiler: +- gfortran +fortran_compiler_version: +- '9' +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/arpack37.yaml b/.ci_support/migrations/arpack37.yaml deleted file mode 100644 index b54534bd..00000000 --- a/.ci_support/migrations/arpack37.yaml +++ /dev/null @@ -1,7 +0,0 @@ -__migrator: - build_number: 1 - kind: version - migration_number: 1 -arpack: -- '3.7' -migrator_ts: 1586036033.4359639 diff --git a/.ci_support/migrations/gcc930.yaml b/.ci_support/migrations/gcc930.yaml new file mode 100644 index 00000000..abac6247 --- /dev/null +++ b/.ci_support/migrations/gcc930.yaml @@ -0,0 +1,60 @@ +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/pcre21034.yaml b/.ci_support/migrations/pcre21034.yaml deleted file mode 100644 index b25c82ed..00000000 --- a/.ci_support/migrations/pcre21034.yaml +++ /dev/null @@ -1,23 +0,0 @@ -# To learn more about migrations read CFEP-09 -# https://github.com/conda-forge/conda-forge-enhancement-proposals/blob/master/cfep-09.md -# The timestamp of when the migration was made -# Can be obtained by copying the output of -# python -c "import time; print(f'{time.time():.0f}')" -migrator_ts: 1587594708 -__migrator: - kind: - version - # Only change the migration_number if the bot messes up, - # changing this will cause a complete rerun of the migration - migration_number: - 1 - # This determines the increment to the build number when the - # migration runs. - # Change this to zero if the new pin increases the number of builds - build_number: - 1 - -# The name of the feedstock you wish to migrate with dashes replaced by -# underscores -pcre2: - - 10.34 diff --git a/.ci_support/osx_.yaml b/.ci_support/osx_64_fortran_compiler_version7.yaml similarity index 84% rename from .ci_support/osx_.yaml rename to .ci_support/osx_64_fortran_compiler_version7.yaml index dc88d73f..fd43309d 100644 --- a/.ci_support/osx_.yaml +++ b/.ci_support/osx_64_fortran_compiler_version7.yaml @@ -5,7 +5,7 @@ arpack: c_compiler: - clang c_compiler_version: -- '9' +- '10' channel_sources: - conda-forge,defaults channel_targets: @@ -15,7 +15,7 @@ curl: cxx_compiler: - clangxx cxx_compiler_version: -- '9' +- '10' fftw: - '3' fortran_compiler: @@ -32,8 +32,6 @@ liblapack: - 3.8.0 *netlib macos_machine: - x86_64-apple-darwin13.4.0 -macos_min_version: -- '10.9' mpfr: - '4' perl: @@ -55,5 +53,11 @@ pin_run_as_build: 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/.ci_support/osx_64_fortran_compiler_version9.yaml b/.ci_support/osx_64_fortran_compiler_version9.yaml new file mode 100644 index 00000000..6827d3d9 --- /dev/null +++ b/.ci_support/osx_64_fortran_compiler_version9.yaml @@ -0,0 +1,63 @@ +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: +- '9' +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/.gitattributes b/.gitattributes index ac943c18..9060b272 100644 --- a/.gitattributes +++ b/.gitattributes @@ -17,7 +17,7 @@ bld.bat text eol=crlf .gitattributes linguist-generated=true .gitignore linguist-generated=true .travis.yml linguist-generated=true -.scripts linguist-generated=true +.scripts/* linguist-generated=true LICENSE.txt linguist-generated=true README.md linguist-generated=true azure-pipelines.yml linguist-generated=true diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 8a4af44f..aa9727b9 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -19,7 +19,7 @@ conda-build: CONDARC -conda install --yes --quiet conda-forge-ci-setup=2 conda-build -c conda-forge +conda install --yes --quiet "conda-forge-ci-setup=3" conda-build pip -c conda-forge # set up the condarc setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" @@ -29,11 +29,25 @@ source run_conda_forge_build_setup # make the build number clobber make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" -conda build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" -if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then - upload_package "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" +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}" + fi + 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" \ + --suppress-variables ${EXTRA_CB_OPTIONS:-} \ + --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" + validate_recipe_outputs "${FEEDSTOCK_NAME}" + + if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then + upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" + fi fi touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" \ No newline at end of file diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 253723c8..87ba4db0 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -13,6 +13,10 @@ PROVIDER_DIR="$(basename $THISDIR)" FEEDSTOCK_ROOT=$(cd "$(dirname "$0")/.."; pwd;) RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" +if [ -z ${FEEDSTOCK_NAME} ]; then + export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) +fi + docker info # In order for the conda-build process in the container to write to the mounted @@ -60,15 +64,21 @@ fi export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" docker run ${DOCKER_RUN_ARGS} \ - -v "${RECIPE_ROOT}":/home/conda/recipe_root:ro,z \ + -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z \ -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z \ -e CONFIG \ - -e BINSTAR_TOKEN \ -e HOST_USER_ID \ -e UPLOAD_PACKAGES \ -e GIT_BRANCH \ -e UPLOAD_ON_BRANCH \ -e CI \ + -e FEEDSTOCK_NAME \ + -e CPU_COUNT \ + -e BUILD_WITH_CONDA_DEBUG \ + -e BUILD_OUTPUT_ID \ + -e BINSTAR_TOKEN \ + -e FEEDSTOCK_TOKEN \ + -e STAGING_BINSTAR_TOKEN \ $DOCKER_IMAGE \ bash \ /home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh new file mode 100755 index 00000000..c299b792 --- /dev/null +++ b/.scripts/run_osx_build.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env bash + +set -x + +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" +curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}" +bash $MINIFORGE_FILE -b +if [[ ${CI} == "travis" ]]; then + echo -en 'travis_fold:end:install_miniforge\\r' +fi + +echo -e "\n\nConfiguring conda." +if [[ ${CI} == "travis" ]]; then + echo -en 'travis_fold:start:configure_conda\\r' +fi + +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 + + + +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 + +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 + +echo -e "\n\nMaking the build clobber file and running the build." +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:-} +validate_recipe_outputs "${FEEDSTOCK_NAME}" + +if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then + echo -e "\n\nUploading the packages." + upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml +fi \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt index cba42cff..5f302793 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,5 +1,5 @@ BSD 3-clause license -Copyright (c) 2015-2019, conda-forge +Copyright (c) 2015-2020, 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 78a0bf9a..1ebbbcdf 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,10 @@ Home: http://julialang.org/ Package license: MIT -Feedstock license: BSD 3-Clause +Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/julia-feedstock/blob/master/LICENSE.txt) Summary: A high-performance dynamic programming language for data science - - Current build status ==================== @@ -29,17 +27,31 @@ Current build status - + + + + + + + - + @@ -48,18 +60,6 @@ Current build status - - - - - - - -
VariantStatus
linuxlinux_64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7 + + variant + +
linux_64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9 + + variant + +
osx_64_fortran_compiler_version7 - variant + variant
osxosx_64_fortran_compiler_version9 - variant + variant
Windows - Windows disabled -
Linux_ppc64le - ppc64le disabled -
Current release info diff --git a/build-locally.py b/build-locally.py index 8f7ecca4..3453cfe6 100755 --- a/build-locally.py +++ b/build-locally.py @@ -12,6 +12,10 @@ def setup_environment(ns): os.environ["CONFIG"] = ns.config os.environ["UPLOAD_PACKAGES"] = "False" + if ns.debug: + os.environ["BUILD_WITH_CONDA_DEBUG"] = "1" + if ns.output_id: + os.environ["BUILD_OUTPUT_ID"] = ns.output_id def run_docker_build(ns): @@ -51,6 +55,14 @@ def verify_config(ns): def main(args=None): p = ArgumentParser("build-locally") p.add_argument("config", default=None, nargs="?") + p.add_argument( + "--debug", + action="store_true", + help="Setup debug environment using `conda debug`", + ) + p.add_argument( + "--output-id", help="If running debug, specify the output to setup." + ) ns = p.parse_args(args=args) verify_config(ns) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 6968588a..714d52b0 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -13,7 +13,7 @@ source: build: skip: True # [win] - number: 4 + number: 5 features: requirements: