diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml deleted file mode 100755 index e23c5870..00000000 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ /dev/null @@ -1,48 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: linux - pool: - vmImage: ubuntu-latest - strategy: - matrix: - linux_64_python3.10.____cpython: - CONFIG: linux_64_python3.10.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_64_python3.8.____cpython: - CONFIG: linux_64_python3.8.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_64_python3.9.____cpython: - CONFIG: linux_64_python3.9.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - timeoutInMinutes: 360 - - steps: - # configure qemu binfmt-misc running. This allows us to run docker containers - # embedded qemu-static - - script: | - docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes - ls /proc/sys/fs/binfmt_misc/ - condition: not(startsWith(variables['CONFIG'], 'linux_64')) - displayName: Configure binfmt_misc - - - script: | - 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: - 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 new file mode 100644 index 00000000..6ba82954 --- /dev/null +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -0,0 +1,42 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +jobs: +- job: osx + pool: + vmImage: macOS-11 + strategy: + matrix: + osx_64_python3.10.____cpython: + CONFIG: osx_64_python3.10.____cpython + UPLOAD_PACKAGES: 'True' + osx_64_python3.11.____cpython: + CONFIG: osx_64_python3.11.____cpython + UPLOAD_PACKAGES: 'True' + osx_64_python3.8.____cpython: + CONFIG: osx_64_python3.8.____cpython + UPLOAD_PACKAGES: 'True' + osx_64_python3.9.____cpython: + CONFIG: osx_64_python3.9.____cpython + UPLOAD_PACKAGES: 'True' + timeoutInMinutes: 360 + + steps: + # TODO: Fast finish on azure pipelines? + - script: | + export CI=azure + 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: + 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-win.yml b/.azure-pipelines/azure-pipelines-win.yml deleted file mode 100755 index 5075c759..00000000 --- a/.azure-pipelines/azure-pipelines-win.yml +++ /dev/null @@ -1,92 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: win - pool: - vmImage: windows-2022 - strategy: - matrix: - win_64_python3.10.____cpython: - CONFIG: win_64_python3.10.____cpython - UPLOAD_PACKAGES: 'True' - win_64_python3.8.____cpython: - CONFIG: win_64_python3.8.____cpython - UPLOAD_PACKAGES: 'True' - win_64_python3.9.____cpython: - CONFIG: win_64_python3.9.____cpython - UPLOAD_PACKAGES: 'True' - timeoutInMinutes: 360 - variables: - CONDA_BLD_PATH: D:\\bld\\ - UPLOAD_TEMP: D:\\tmp - - steps: - - task: PythonScript@0 - displayName: 'Download Miniforge' - inputs: - scriptSource: inline - script: | - import urllib.request - url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Windows-x86_64.exe' - path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe" - urllib.request.urlretrieve(url, path) - - - script: | - start /wait "" %BUILD_ARTIFACTSTAGINGDIRECTORY%\Miniforge.exe /InstallationType=JustMe /RegisterPython=0 /S /D=C:\Miniforge - displayName: Install Miniforge - - - powershell: Write-Host "##vso[task.prependpath]C:\Miniforge\Scripts" - displayName: Add conda to PATH - - - script: | - call activate base - mamba.exe install "python=3.10" conda-build conda pip boa conda-forge-ci-setup=3 -c conda-forge --strict-channel-priority --yes - displayName: Install conda-build - - - script: set PYTHONUNBUFFERED=1 - displayName: Set PYTHONUNBUFFERED - - # Configure the VM - - script: | - call activate base - setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml - displayName: conda-forge CI setup - - # Configure the VM. - - script: | - set "CI=azure" - call activate base - run_conda_forge_build_setup - displayName: conda-forge build setup - - - script: | - call activate base - if EXIST LICENSE.txt ( - copy LICENSE.txt "recipe\\recipe-scripts-license.txt" - ) - conda.exe mambabuild "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% - displayName: Build recipe - env: - PYTHONUNBUFFERED: 1 - - script: | - set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" - call activate base - validate_recipe_outputs "%FEEDSTOCK_NAME%" - displayName: Validate Recipe Outputs - - - script: | - set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" - set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" - set "TEMP=$(UPLOAD_TEMP)" - if not exist "%TEMP%\" md "%TEMP%" - set "TMP=%TEMP%" - call activate base - upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml - displayName: Upload package - env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) - condition: and(succeeded(), not(eq(variables['UPLOAD_PACKAGES'], 'False')), not(eq(variables['Build.Reason'], 'PullRequest'))) \ No newline at end of file diff --git a/.ci_support/migrations/python311.yaml b/.ci_support/migrations/python311.yaml new file mode 100644 index 00000000..c00be95a --- /dev/null +++ b/.ci_support/migrations/python311.yaml @@ -0,0 +1,37 @@ +migrator_ts: 1666686085 +__migrator: + migration_number: 1 + operation: key_add + primary_key: python + ordering: + python: + - 3.6.* *_cpython + - 3.7.* *_cpython + - 3.8.* *_cpython + - 3.9.* *_cpython + - 3.10.* *_cpython + - 3.11.* *_cpython # new entry + - 3.6.* *_73_pypy + - 3.7.* *_73_pypy + - 3.8.* *_73_pypy + - 3.9.* *_73_pypy + paused: false + longterm: True + pr_limit: 60 + max_solver_attempts: 3 # this will make the bot retry "not solvable" stuff 12 times + exclude: + # this shouldn't attempt to modify the python feedstocks + - python + - pypy3.6 + - pypy-meta + - cross-python + - python_abi + exclude_pinned_pkgs: false + +python: + - 3.11.* *_cpython +# additional entries to add for zip_keys +numpy: + - 1.23 +python_impl: + - cpython diff --git a/.ci_support/linux_64_python3.10.____cpython.yaml b/.ci_support/osx_64_python3.10.____cpython.yaml similarity index 68% rename from .ci_support/linux_64_python3.10.____cpython.yaml rename to .ci_support/osx_64_python3.10.____cpython.yaml index 8c1710f9..3082e82e 100644 --- a/.ci_support/linux_64_python3.10.____cpython.yaml +++ b/.ci_support/osx_64_python3.10.____cpython.yaml @@ -1,9 +1,11 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.15' +MACOSX_SDK_VERSION: +- '10.15' c_compiler: -- gcc +- clang c_compiler_version: -- '12' -cdt_name: -- cos7 +- '15' channel_sources: - conda-forge channel_targets: @@ -11,11 +13,11 @@ channel_targets: curl: - '8' cxx_compiler: -- gxx +- clangxx cxx_compiler_version: -- '12' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 +- '15' +macos_machine: +- x86_64-apple-darwin13.4.0 nodejs: - '18' - '20' @@ -26,7 +28,7 @@ pin_run_as_build: python: - 3.10.* *_cpython target_platform: -- linux-64 +- osx-64 zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/osx_64_python3.11.____cpython.yaml b/.ci_support/osx_64_python3.11.____cpython.yaml new file mode 100644 index 00000000..0fa00668 --- /dev/null +++ b/.ci_support/osx_64_python3.11.____cpython.yaml @@ -0,0 +1,34 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.15' +MACOSX_SDK_VERSION: +- '10.15' +c_compiler: +- clang +c_compiler_version: +- '15' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +curl: +- '8' +cxx_compiler: +- clangxx +cxx_compiler_version: +- '15' +macos_machine: +- x86_64-apple-darwin13.4.0 +nodejs: +- '18' +- '20' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.11.* *_cpython +target_platform: +- osx-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/linux_64_python3.8.____cpython.yaml b/.ci_support/osx_64_python3.8.____cpython.yaml similarity index 68% rename from .ci_support/linux_64_python3.8.____cpython.yaml rename to .ci_support/osx_64_python3.8.____cpython.yaml index 8d5f8e8d..617142c5 100644 --- a/.ci_support/linux_64_python3.8.____cpython.yaml +++ b/.ci_support/osx_64_python3.8.____cpython.yaml @@ -1,9 +1,11 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.15' +MACOSX_SDK_VERSION: +- '10.15' c_compiler: -- gcc +- clang c_compiler_version: -- '12' -cdt_name: -- cos7 +- '15' channel_sources: - conda-forge channel_targets: @@ -11,11 +13,11 @@ channel_targets: curl: - '8' cxx_compiler: -- gxx +- clangxx cxx_compiler_version: -- '12' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 +- '15' +macos_machine: +- x86_64-apple-darwin13.4.0 nodejs: - '18' - '20' @@ -26,7 +28,7 @@ pin_run_as_build: python: - 3.8.* *_cpython target_platform: -- linux-64 +- osx-64 zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/linux_64_python3.9.____cpython.yaml b/.ci_support/osx_64_python3.9.____cpython.yaml similarity index 68% rename from .ci_support/linux_64_python3.9.____cpython.yaml rename to .ci_support/osx_64_python3.9.____cpython.yaml index 60c3fa44..917a01d9 100644 --- a/.ci_support/linux_64_python3.9.____cpython.yaml +++ b/.ci_support/osx_64_python3.9.____cpython.yaml @@ -1,9 +1,11 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.15' +MACOSX_SDK_VERSION: +- '10.15' c_compiler: -- gcc +- clang c_compiler_version: -- '12' -cdt_name: -- cos7 +- '15' channel_sources: - conda-forge channel_targets: @@ -11,11 +13,11 @@ channel_targets: curl: - '8' cxx_compiler: -- gxx +- clangxx cxx_compiler_version: -- '12' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 +- '15' +macos_machine: +- x86_64-apple-darwin13.4.0 nodejs: - '18' - '20' @@ -26,7 +28,7 @@ pin_run_as_build: python: - 3.9.* *_cpython target_platform: -- linux-64 +- osx-64 zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/win_64_python3.10.____cpython.yaml b/.ci_support/win_64_python3.10.____cpython.yaml deleted file mode 100644 index 6246c5cb..00000000 --- a/.ci_support/win_64_python3.10.____cpython.yaml +++ /dev/null @@ -1,21 +0,0 @@ -c_compiler: -- vs2019 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -curl: -- '8' -cxx_compiler: -- vs2019 -nodejs: -- '18' -- '20' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -target_platform: -- win-64 diff --git a/.ci_support/win_64_python3.8.____cpython.yaml b/.ci_support/win_64_python3.8.____cpython.yaml deleted file mode 100644 index ce16f527..00000000 --- a/.ci_support/win_64_python3.8.____cpython.yaml +++ /dev/null @@ -1,21 +0,0 @@ -c_compiler: -- vs2019 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -curl: -- '8' -cxx_compiler: -- vs2019 -nodejs: -- '18' -- '20' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.8.* *_cpython -target_platform: -- win-64 diff --git a/.ci_support/win_64_python3.9.____cpython.yaml b/.ci_support/win_64_python3.9.____cpython.yaml deleted file mode 100644 index b4e6fe99..00000000 --- a/.ci_support/win_64_python3.9.____cpython.yaml +++ /dev/null @@ -1,21 +0,0 @@ -c_compiler: -- vs2019 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -curl: -- '8' -cxx_compiler: -- vs2019 -nodejs: -- '18' -- '20' -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.9.* *_cpython -target_platform: -- win-64 diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh deleted file mode 100755 index f6b8686b..00000000 --- a/.scripts/build_steps.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env bash - -# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here -# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent -# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also -# benefit from the improvement. - -# -*- mode: jinja-shell -*- - -set -xeuo pipefail -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" - -cat >~/.condarc < /dev/null - -if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then - cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" -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}" - 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 mambabuild "${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}" - - ( 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/run_docker_build.sh b/.scripts/run_docker_build.sh deleted file mode 100755 index 92362398..00000000 --- a/.scripts/run_docker_build.sh +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env bash - -# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here -# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent -# 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 )" -PROVIDER_DIR="$(basename $THISDIR)" - -FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && 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 -# volumes, we need to run with the same id as the host machine, which is -# normally the owner of the mounted volumes, or at least has write permission -export HOST_USER_ID=$(id -u) -# Check if docker-machine is being used (normally on OSX) and get the uid from -# the VM -if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then - export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) -fi - -ARTIFACTS="$FEEDSTOCK_ROOT/build_artifacts" - -if [ -z "$CONFIG" ]; then - set +x - FILES=`ls .ci_support/linux_*` - CONFIGS="" - for file in $FILES; do - CONFIGS="${CONFIGS}'${file:12:-5}' or "; - done - echo "Need to set CONFIG env variable. Value can be one of ${CONFIGS:0:-4}" - exit 1 -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. 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 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 quay.io/condaforge/linux-anvil-comp7 )" - fi -fi - -mkdir -p "$ARTIFACTS" -DONE_CANARY="$ARTIFACTS/conda-forge-build-done-${CONFIG}" -rm -f "$DONE_CANARY" - -# Allow people to specify extra default arguments to `docker run` (e.g. `--rm`) -DOCKER_RUN_ARGS="${CONDA_FORGE_DOCKER_RUN_ARGS}" -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 \ - -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" - -# verify that the end of the script was reached -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 new file mode 100755 index 00000000..5ef2a19a --- /dev/null +++ b/.scripts/run_osx_build.sh @@ -0,0 +1,90 @@ +#!/usr/bin/env bash + +# -*- mode: jinja-shell -*- + +source .scripts/logging_utils.sh + +set -xe + +MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3} + +( startgroup "Installing a fresh version of Miniforge" ) 2> /dev/null + +MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download" +MINIFORGE_FILE="Mambaforge-MacOSX-$(uname -m).sh" +curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}" +rm -rf ${MINIFORGE_HOME} +bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} + +( endgroup "Installing a fresh version of Miniforge" ) 2> /dev/null + +( startgroup "Configuring conda" ) 2> /dev/null + +source ${MINIFORGE_HOME}/etc/profile.d/conda.sh +conda activate base + +mamba install --update-specs --quiet --yes --channel conda-forge \ + conda-build pip boa conda-forge-ci-setup=3 +mamba update --update-specs --yes --quiet --channel conda-forge \ + conda-build pip boa conda-forge-ci-setup=3 + + + +echo -e "\n\nSetting up the condarc and mangling the compiler." +setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml + +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 + + + +( endgroup "Configuring conda" ) 2> /dev/null + +echo -e "\n\nMaking the build clobber file" +make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml + +if [[ -f LICENSE.txt ]]; then + cp LICENSE.txt "recipe/recipe-scripts-license.txt" +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}" + fi + conda debug ./recipe -m ./.ci_support/${CONFIG}.yaml \ + ${EXTRA_CB_OPTIONS:-} \ + --clobber-file ./.ci_support/clobber_${CONFIG}.yaml + + # Drop into an interactive shell + /bin/bash +else + + conda mambabuild ./recipe -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}" + + ( 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 + + ( endgroup "Uploading packages" ) 2> /dev/null +fi \ No newline at end of file diff --git a/README.md b/README.md index 39bc05c3..925849d4 100644 --- a/README.md +++ b/README.md @@ -37,45 +37,31 @@ Current build status - + - + - + - + - - - - - - diff --git a/azure-pipelines.yml b/azure-pipelines.yml index baa1c2b5..5baab3e5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,5 +3,4 @@ # -*- mode: yaml -*- jobs: - - template: ./.azure-pipelines/azure-pipelines-linux.yml - - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file + - template: ./.azure-pipelines/azure-pipelines-osx.yml \ No newline at end of file diff --git a/recipe/build-core.sh b/recipe/build-core.sh index c7e8ba7d..960563a9 100644 --- a/recipe/build-core.sh +++ b/recipe/build-core.sh @@ -1,6 +1,12 @@ #!/bin/bash set -xe +if [[ "${target_platform}" == osx-* ]]; then + export LDFLAGS="${LDFLAGS} -lz -framework CoreFoundation -Xlinker -undefined -Xlinker dynamic_lookup" +else + export LDFLAGS="${LDFLAGS} -lrt" +fi + cd python/ export SKIP_THIRDPARTY_INSTALL=1 "${PYTHON}" setup.py build diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 8b06253b..9c6022c2 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -16,8 +16,8 @@ source: build: number: 1 - # skip on MacOS, needs macos 10.15 - skip: true # [osx] + # debug: only build osx + skip: true # [not osx] # Need these up here for conda-smithy to handle them properly. requirements: @@ -65,10 +65,11 @@ outputs: - curl - cython >=0.29.32 - make - - m2-bash # [win] + - m2-bash # [win] + - pkg-config # [osx] - psutil - python - - setproctitle ==1.2.2 + - setproctitle ==1.3.2 host: - python - pip @@ -91,7 +92,10 @@ outputs: - psutil - pyyaml - requests - - setproctitle ==1.2.2 + - setproctitle ==1.3.2 + - virtualenv + run_constrained: + - __osx >={{ MACOSX_DEPLOYMENT_TARGET|default("10.15") }} # [osx and x86_64] test: imports:
VariantStatus
linux_64_python3.10.____cpythonosx_64_python3.10.____cpython - variant + variant
linux_64_python3.8.____cpythonosx_64_python3.11.____cpython - variant + variant
linux_64_python3.9.____cpythonosx_64_python3.8.____cpython - variant + variant
win_64_python3.10.____cpythonosx_64_python3.9.____cpython - variant - -
win_64_python3.8.____cpython - - variant - -
win_64_python3.9.____cpython - - variant + variant