From 1953cf94b8cda46cbfb35f0810084abd331ce208 Mon Sep 17 00:00:00 2001 From: K Lauer Date: Thu, 16 Apr 2020 09:29:22 -0700 Subject: [PATCH 1/7] Try running tests as well --- recipe/meta.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index c8f056f..5b4ce9b 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -10,7 +10,7 @@ source: sha256: 98d4aed8e7b04fdc9d359d9025a0efde090aa7b726ccc94c09cb99c8ac75f6c2 build: - number: 1 + number: 2 script: "{{ PYTHON }} -m pip install . -vv" requirements: @@ -28,6 +28,8 @@ requirements: test: imports: - fuzzysearch + script: + - "{{ PYTHON }} -m unittest discover tests -v" about: home: https://github.com/taleinat/fuzzysearch From 58dd156c4810af05a15f9fcf253284e9c5f001de Mon Sep 17 00:00:00 2001 From: K Lauer Date: Thu, 16 Apr 2020 09:32:06 -0700 Subject: [PATCH 2/7] Test "commands", not "script" --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5b4ce9b..76af079 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -28,7 +28,7 @@ requirements: test: imports: - fuzzysearch - script: + commands: - "{{ PYTHON }} -m unittest discover tests -v" about: From b31821c8796c7518d03866d964c12ea50f117e16 Mon Sep 17 00:00:00 2001 From: K Lauer Date: Thu, 16 Apr 2020 09:39:24 -0700 Subject: [PATCH 3/7] Use 'python' and not {{PYTHON}} --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 76af079..8e351a7 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -29,7 +29,7 @@ test: imports: - fuzzysearch commands: - - "{{ PYTHON }} -m unittest discover tests -v" + - "python -m unittest discover tests -v" about: home: https://github.com/taleinat/fuzzysearch From 6767294f318ded5d595e482ea314ea3a436502f7 Mon Sep 17 00:00:00 2001 From: K Lauer Date: Thu, 16 Apr 2020 10:07:44 -0700 Subject: [PATCH 4/7] Copy over tests from the source --- recipe/meta.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 8e351a7..d3e4402 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -28,6 +28,8 @@ requirements: test: imports: - fuzzysearch + source_files: + - tests commands: - "python -m unittest discover tests -v" From e424bcb4985f216ad8e10c09ce6f7b52772c974d Mon Sep 17 00:00:00 2001 From: conda-forge-linter Date: Tue, 13 Oct 2020 22:06:37 +0000 Subject: [PATCH 5/7] MNT: Re-rendered with conda-build 3.20.3, conda-smithy 3.8.2, and conda-forge-pinning 2020.10.13.19.09.25 --- .azure-pipelines/azure-pipelines-linux.yml | 23 ++++---- .azure-pipelines/azure-pipelines-osx.yml | 20 +++---- .azure-pipelines/azure-pipelines-win.yml | 21 ++++---- ...ml => linux_64_python3.6.____73_pypy.yaml} | 5 ++ ...ml => linux_64_python3.6.____cpython.yaml} | 5 ++ ...ml => linux_64_python3.7.____cpython.yaml} | 5 ++ ...ml => linux_64_python3.8.____cpython.yaml} | 5 ++ .ci_support/migrations/python38.yaml | 16 ------ ...yaml => osx_64_python3.6.____73_pypy.yaml} | 11 ++-- ...yaml => osx_64_python3.6.____cpython.yaml} | 11 ++-- ...yaml => osx_64_python3.7.____cpython.yaml} | 11 ++-- ...yaml => osx_64_python3.8.____cpython.yaml} | 11 ++-- ...yaml => win_64_python3.6.____cpython.yaml} | 2 + ...yaml => win_64_python3.7.____cpython.yaml} | 2 + ...yaml => win_64_python3.8.____cpython.yaml} | 2 + .scripts/build_steps.sh | 25 ++++++--- .scripts/run_docker_build.sh | 10 +++- .scripts/run_osx_build.sh | 9 ++-- LICENSE.txt | 2 +- README.md | 54 +++++++++---------- azure-pipelines.yml | 4 +- build-locally.py | 12 +++++ 22 files changed, 161 insertions(+), 105 deletions(-) rename .ci_support/{linux_python3.6.____73_pypy.yaml => linux_64_python3.6.____73_pypy.yaml} (77%) rename .ci_support/{linux_python3.6.____cpython.yaml => linux_64_python3.6.____cpython.yaml} (77%) rename .ci_support/{linux_python3.7.____cpython.yaml => linux_64_python3.7.____cpython.yaml} (77%) rename .ci_support/{linux_python3.8.____cpython.yaml => linux_64_python3.8.____cpython.yaml} (77%) delete mode 100644 .ci_support/migrations/python38.yaml rename .ci_support/{osx_python3.6.____73_pypy.yaml => osx_64_python3.6.____73_pypy.yaml} (76%) rename .ci_support/{osx_python3.6.____cpython.yaml => osx_64_python3.6.____cpython.yaml} (76%) rename .ci_support/{osx_python3.7.____cpython.yaml => osx_64_python3.7.____cpython.yaml} (76%) rename .ci_support/{osx_python3.8.____cpython.yaml => osx_64_python3.8.____cpython.yaml} (76%) rename .ci_support/{win_python3.6.____cpython.yaml => win_64_python3.6.____cpython.yaml} (88%) rename .ci_support/{win_python3.7.____cpython.yaml => win_64_python3.7.____cpython.yaml} (88%) rename .ci_support/{win_python3.8.____cpython.yaml => win_64_python3.8.____cpython.yaml} (88%) diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index e59732e..fd9a241 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,26 +8,30 @@ jobs: vmImage: ubuntu-16.04 strategy: matrix: - linux_python3.6.____73_pypy: - CONFIG: linux_python3.6.____73_pypy + linux_64_python3.6.____73_pypy: + CONFIG: linux_64_python3.6.____73_pypy UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: condaforge/linux-anvil-comp7 - linux_python3.6.____cpython: - CONFIG: linux_python3.6.____cpython + linux_64_python3.6.____cpython: + CONFIG: linux_64_python3.6.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: condaforge/linux-anvil-comp7 - linux_python3.7.____cpython: - CONFIG: linux_python3.7.____cpython + linux_64_python3.7.____cpython: + CONFIG: linux_64_python3.7.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: condaforge/linux-anvil-comp7 - linux_python3.8.____cpython: - CONFIG: linux_python3.8.____cpython + linux_64_python3.8.____cpython: + CONFIG: linux_64_python3.8.____cpython UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: condaforge/linux-anvil-comp7 - maxParallel: 8 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: | @@ -39,6 +43,7 @@ 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: diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index b3a194e..c50c293 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -5,22 +5,21 @@ jobs: - job: osx pool: - vmImage: macOS-10.14 + vmImage: macOS-10.15 strategy: matrix: - osx_python3.6.____73_pypy: - CONFIG: osx_python3.6.____73_pypy + osx_64_python3.6.____73_pypy: + CONFIG: osx_64_python3.6.____73_pypy UPLOAD_PACKAGES: 'True' - osx_python3.6.____cpython: - CONFIG: osx_python3.6.____cpython + osx_64_python3.6.____cpython: + CONFIG: osx_64_python3.6.____cpython UPLOAD_PACKAGES: 'True' - osx_python3.7.____cpython: - CONFIG: osx_python3.7.____cpython + osx_64_python3.7.____cpython: + CONFIG: osx_64_python3.7.____cpython UPLOAD_PACKAGES: 'True' - osx_python3.8.____cpython: - CONFIG: osx_python3.8.____cpython + osx_64_python3.8.____cpython: + CONFIG: osx_64_python3.8.____cpython UPLOAD_PACKAGES: 'True' - maxParallel: 8 timeoutInMinutes: 360 steps: @@ -29,6 +28,7 @@ jobs: export CI=azure export OSX_FORCE_SDK_DOWNLOAD="1" export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) ./.scripts/run_osx_build.sh displayName: Run OSX build env: diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 6d18f55..1244454 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -8,16 +8,15 @@ jobs: vmImage: vs2017-win2016 strategy: matrix: - win_python3.6.____cpython: - CONFIG: win_python3.6.____cpython + win_64_python3.6.____cpython: + CONFIG: win_64_python3.6.____cpython UPLOAD_PACKAGES: 'True' - win_python3.7.____cpython: - CONFIG: win_python3.7.____cpython + win_64_python3.7.____cpython: + CONFIG: win_64_python3.7.____cpython UPLOAD_PACKAGES: 'True' - win_python3.8.____cpython: - CONFIG: win_python3.8.____cpython + win_64_python3.8.____cpython: + CONFIG: win_64_python3.8.____cpython UPLOAD_PACKAGES: 'True' - maxParallel: 4 timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ @@ -59,7 +58,7 @@ jobs: - task: CondaEnvironment@1 inputs: - packageSpecs: 'python=3.6 conda-build conda conda-forge::conda-forge-ci-setup=3 pip' # Optional + packageSpecs: 'python=3.6 conda-build conda "conda-forge-ci-setup=3" pip' # Optional installOptions: "-c conda-forge" updateConda: true displayName: Install conda-build and activate environment @@ -99,14 +98,16 @@ jobs: PYTHONUNBUFFERED: 1 condition: not(contains(variables['CONFIG'], 'vs2008')) - script: | + set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" call activate base - validate_recipe_outputs "fuzzysearch-feedstock" + validate_recipe_outputs "%FEEDSTOCK_NAME%" displayName: Validate Recipe Outputs - script: | set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" + set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" call activate base - upload_package --validate --feedstock-name="fuzzysearch-feedstock" .\ ".\recipe" .ci_support\%CONFIG%.yaml + upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml displayName: Upload package env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) diff --git a/.ci_support/linux_python3.6.____73_pypy.yaml b/.ci_support/linux_64_python3.6.____73_pypy.yaml similarity index 77% rename from .ci_support/linux_python3.6.____73_pypy.yaml rename to .ci_support/linux_64_python3.6.____73_pypy.yaml index 2cbe21c..bade0fc 100644 --- a/.ci_support/linux_python3.6.____73_pypy.yaml +++ b/.ci_support/linux_64_python3.6.____73_pypy.yaml @@ -18,3 +18,8 @@ pin_run_as_build: max_pin: x.x python: - 3.6.* *_73_pypy +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/linux_python3.6.____cpython.yaml b/.ci_support/linux_64_python3.6.____cpython.yaml similarity index 77% rename from .ci_support/linux_python3.6.____cpython.yaml rename to .ci_support/linux_64_python3.6.____cpython.yaml index ed53753..bb23d92 100644 --- a/.ci_support/linux_python3.6.____cpython.yaml +++ b/.ci_support/linux_64_python3.6.____cpython.yaml @@ -18,3 +18,8 @@ pin_run_as_build: max_pin: x.x python: - 3.6.* *_cpython +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/linux_python3.7.____cpython.yaml b/.ci_support/linux_64_python3.7.____cpython.yaml similarity index 77% rename from .ci_support/linux_python3.7.____cpython.yaml rename to .ci_support/linux_64_python3.7.____cpython.yaml index cc1d2c4..8aeb4b6 100644 --- a/.ci_support/linux_python3.7.____cpython.yaml +++ b/.ci_support/linux_64_python3.7.____cpython.yaml @@ -18,3 +18,8 @@ pin_run_as_build: max_pin: x.x python: - 3.7.* *_cpython +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/linux_python3.8.____cpython.yaml b/.ci_support/linux_64_python3.8.____cpython.yaml similarity index 77% rename from .ci_support/linux_python3.8.____cpython.yaml rename to .ci_support/linux_64_python3.8.____cpython.yaml index fef4441..7541c4f 100644 --- a/.ci_support/linux_python3.8.____cpython.yaml +++ b/.ci_support/linux_64_python3.8.____cpython.yaml @@ -18,3 +18,8 @@ pin_run_as_build: max_pin: x.x python: - 3.8.* *_cpython +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/migrations/python38.yaml b/.ci_support/migrations/python38.yaml deleted file mode 100644 index 39ebf95..0000000 --- a/.ci_support/migrations/python38.yaml +++ /dev/null @@ -1,16 +0,0 @@ -migrator_ts: 1569538102 # The timestamp of when the migration was made -__migrator: - kind: - version - exclude: - - c_compiler - - vc - - cxx_compiler - migration_number: # Only use this if the bot messes up, putting this in will cause a complete rerun of the migration - 1 - bump_number: 0 - -python: - - 3.6.* *_cpython - - 3.7.* *_cpython - - 3.8.* *_cpython diff --git a/.ci_support/osx_python3.6.____73_pypy.yaml b/.ci_support/osx_64_python3.6.____73_pypy.yaml similarity index 76% rename from .ci_support/osx_python3.6.____73_pypy.yaml rename to .ci_support/osx_64_python3.6.____73_pypy.yaml index 682df9f..a4d52db 100644 --- a/.ci_support/osx_python3.6.____73_pypy.yaml +++ b/.ci_support/osx_64_python3.6.____73_pypy.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '9' +- '10' channel_sources: - conda-forge,defaults channel_targets: @@ -11,14 +11,17 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '9' +- '10' macos_machine: - x86_64-apple-darwin13.4.0 -macos_min_version: -- '10.9' pin_run_as_build: python: min_pin: x.x max_pin: x.x python: - 3.6.* *_73_pypy +target_platform: +- osx-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/osx_python3.6.____cpython.yaml b/.ci_support/osx_64_python3.6.____cpython.yaml similarity index 76% rename from .ci_support/osx_python3.6.____cpython.yaml rename to .ci_support/osx_64_python3.6.____cpython.yaml index 6b7455d..59562a6 100644 --- a/.ci_support/osx_python3.6.____cpython.yaml +++ b/.ci_support/osx_64_python3.6.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '9' +- '10' channel_sources: - conda-forge,defaults channel_targets: @@ -11,14 +11,17 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '9' +- '10' macos_machine: - x86_64-apple-darwin13.4.0 -macos_min_version: -- '10.9' 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 diff --git a/.ci_support/osx_python3.7.____cpython.yaml b/.ci_support/osx_64_python3.7.____cpython.yaml similarity index 76% rename from .ci_support/osx_python3.7.____cpython.yaml rename to .ci_support/osx_64_python3.7.____cpython.yaml index 9fe9d4b..3f2cce3 100644 --- a/.ci_support/osx_python3.7.____cpython.yaml +++ b/.ci_support/osx_64_python3.7.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '9' +- '10' channel_sources: - conda-forge,defaults channel_targets: @@ -11,14 +11,17 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '9' +- '10' macos_machine: - x86_64-apple-darwin13.4.0 -macos_min_version: -- '10.9' pin_run_as_build: python: min_pin: x.x max_pin: x.x python: - 3.7.* *_cpython +target_platform: +- osx-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/osx_python3.8.____cpython.yaml b/.ci_support/osx_64_python3.8.____cpython.yaml similarity index 76% rename from .ci_support/osx_python3.8.____cpython.yaml rename to .ci_support/osx_64_python3.8.____cpython.yaml index 25b35e5..2f9a585 100644 --- a/.ci_support/osx_python3.8.____cpython.yaml +++ b/.ci_support/osx_64_python3.8.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '9' +- '10' channel_sources: - conda-forge,defaults channel_targets: @@ -11,14 +11,17 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '9' +- '10' macos_machine: - x86_64-apple-darwin13.4.0 -macos_min_version: -- '10.9' pin_run_as_build: python: min_pin: x.x max_pin: x.x python: - 3.8.* *_cpython +target_platform: +- osx-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/win_python3.6.____cpython.yaml b/.ci_support/win_64_python3.6.____cpython.yaml similarity index 88% rename from .ci_support/win_python3.6.____cpython.yaml rename to .ci_support/win_64_python3.6.____cpython.yaml index d30b44a..283a972 100644 --- a/.ci_support/win_python3.6.____cpython.yaml +++ b/.ci_support/win_64_python3.6.____cpython.yaml @@ -12,3 +12,5 @@ pin_run_as_build: max_pin: x.x python: - 3.6.* *_cpython +target_platform: +- win-64 diff --git a/.ci_support/win_python3.7.____cpython.yaml b/.ci_support/win_64_python3.7.____cpython.yaml similarity index 88% rename from .ci_support/win_python3.7.____cpython.yaml rename to .ci_support/win_64_python3.7.____cpython.yaml index eaf1a95..fd0c20f 100644 --- a/.ci_support/win_python3.7.____cpython.yaml +++ b/.ci_support/win_64_python3.7.____cpython.yaml @@ -12,3 +12,5 @@ pin_run_as_build: max_pin: x.x python: - 3.7.* *_cpython +target_platform: +- win-64 diff --git a/.ci_support/win_python3.8.____cpython.yaml b/.ci_support/win_64_python3.8.____cpython.yaml similarity index 88% rename from .ci_support/win_python3.8.____cpython.yaml rename to .ci_support/win_64_python3.8.____cpython.yaml index 92f7b4c..79a7e02 100644 --- a/.ci_support/win_python3.8.____cpython.yaml +++ b/.ci_support/win_64_python3.8.____cpython.yaml @@ -12,3 +12,5 @@ pin_run_as_build: max_pin: x.x python: - 3.8.* *_cpython +target_platform: +- win-64 diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 080e586..aa9727b 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=3 conda-build pip -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,12 +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" -validate_recipe_outputs "fuzzysearch-feedstock" -if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then - upload_package --validate --feedstock-name="fuzzysearch-feedstock" "${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 360fc69..87ba4db 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 @@ -63,12 +67,16 @@ docker run ${DOCKER_RUN_ARGS} \ -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 \ diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index f201e32..c299b79 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -23,7 +23,7 @@ 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 @@ -47,10 +47,11 @@ 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 --clobber-file ./.ci_support/clobber_${CONFIG}.yaml -validate_recipe_outputs "fuzzysearch-feedstock" + +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="fuzzysearch-feedstock" ./ ./recipe ./.ci_support/${CONFIG}.yaml + 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 cba42cf..5f30279 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 18e6ae6..7582950 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,11 @@ Home: https://github.com/taleinat/fuzzysearch Package license: MIT -Feedstock license: BSD 3-Clause +Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/fuzzysearch-feedstock/blob/master/LICENSE.txt) Summary: Easy fuzzy search that just works, fast! - +Development: https://github.com/taleinat/fuzzysearch Current build status ==================== @@ -29,80 +29,80 @@ Current build status - + - + - + - + - + - + - + - + - + - + - + @@ -111,12 +111,6 @@ Current build status - - - -
VariantStatus
linux_python3.6.____73_pypylinux_64_python3.6.____73_pypy - variant + variant
linux_python3.6.____cpythonlinux_64_python3.6.____cpython - variant + variant
linux_python3.7.____cpythonlinux_64_python3.7.____cpython - variant + variant
linux_python3.8.____cpythonlinux_64_python3.8.____cpython - variant + variant
osx_python3.6.____73_pypyosx_64_python3.6.____73_pypy - variant + variant
osx_python3.6.____cpythonosx_64_python3.6.____cpython - variant + variant
osx_python3.7.____cpythonosx_64_python3.7.____cpython - variant + variant
osx_python3.8.____cpythonosx_64_python3.8.____cpython - variant + variant
win_python3.6.____cpythonwin_64_python3.6.____cpython - variant + variant
win_python3.7.____cpythonwin_64_python3.7.____cpython - variant + variant
win_python3.8.____cpythonwin_64_python3.8.____cpython - variant + variant
Linux_ppc64le - ppc64le disabled -
Current release info diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e5306da..6b346f5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,5 +4,5 @@ jobs: - template: ./.azure-pipelines/azure-pipelines-linux.yml - - template: ./.azure-pipelines/azure-pipelines-osx.yml - - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file + - template: ./.azure-pipelines/azure-pipelines-win.yml + - template: ./.azure-pipelines/azure-pipelines-osx.yml \ No newline at end of file diff --git a/build-locally.py b/build-locally.py index 8f7ecca..3453cfe 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) From 218451d67bbcd7c054f97ac3a134676f407d9899 Mon Sep 17 00:00:00 2001 From: conda-forge-linter Date: Wed, 7 Jul 2021 22:16:38 +0000 Subject: [PATCH 6/7] MNT: Re-rendered with conda-build 3.21.4, conda-smithy 3.10.3, and conda-forge-pinning 2021.07.07.15.42.36 --- .azure-pipelines/azure-pipelines-linux.yml | 14 ++-- .azure-pipelines/azure-pipelines-osx.yml | 3 - .../linux_64_python3.6.____73_pypy.yaml | 25 ------- .../linux_64_python3.6.____cpython.yaml | 10 ++- .../linux_64_python3.7.____cpython.yaml | 10 ++- .../linux_64_python3.8.____cpython.yaml | 10 ++- .../linux_64_python3.9.____cpython.yaml | 10 ++- .ci_support/migrations/pypy.yaml | 44 ------------- .ci_support/migrations/python39.yaml | 26 -------- .ci_support/osx_64_python3.6.____73_pypy.yaml | 27 -------- .ci_support/osx_64_python3.6.____cpython.yaml | 4 +- .ci_support/osx_64_python3.7.____cpython.yaml | 4 +- .ci_support/osx_64_python3.8.____cpython.yaml | 4 +- .ci_support/osx_64_python3.9.____cpython.yaml | 4 +- .scripts/build_steps.sh | 27 +++++++- .scripts/logging_utils.sh | 35 ++++++++++ .scripts/run_docker_build.sh | 27 ++++++-- .scripts/run_osx_build.sh | 66 +++++++++++-------- LICENSE.txt | 2 +- README.md | 19 +----- build-locally.py | 27 +++++++- 21 files changed, 188 insertions(+), 210 deletions(-) delete mode 100644 .ci_support/linux_64_python3.6.____73_pypy.yaml delete mode 100644 .ci_support/migrations/pypy.yaml delete mode 100644 .ci_support/migrations/python39.yaml delete mode 100644 .ci_support/osx_64_python3.6.____73_pypy.yaml create mode 100644 .scripts/logging_utils.sh diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 1f0eda0..d432bd4 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -5,29 +5,25 @@ jobs: - job: linux pool: - vmImage: ubuntu-16.04 + vmImage: ubuntu-latest strategy: matrix: - linux_64_python3.6.____73_pypy: - CONFIG: linux_64_python3.6.____73_pypy - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: condaforge/linux-anvil-comp7 linux_64_python3.6.____cpython: CONFIG: linux_64_python3.6.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: condaforge/linux-anvil-comp7 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 linux_64_python3.7.____cpython: CONFIG: linux_64_python3.7.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: condaforge/linux-anvil-comp7 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 linux_64_python3.8.____cpython: CONFIG: linux_64_python3.8.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: condaforge/linux-anvil-comp7 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 linux_64_python3.9.____cpython: CONFIG: linux_64_python3.9.____cpython 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 d4c9ef2..8aadc55 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -8,9 +8,6 @@ jobs: vmImage: macOS-10.15 strategy: matrix: - osx_64_python3.6.____73_pypy: - CONFIG: osx_64_python3.6.____73_pypy - UPLOAD_PACKAGES: 'True' osx_64_python3.6.____cpython: CONFIG: osx_64_python3.6.____cpython UPLOAD_PACKAGES: 'True' diff --git a/.ci_support/linux_64_python3.6.____73_pypy.yaml b/.ci_support/linux_64_python3.6.____73_pypy.yaml deleted file mode 100644 index bade0fc..0000000 --- a/.ci_support/linux_64_python3.6.____73_pypy.yaml +++ /dev/null @@ -1,25 +0,0 @@ -c_compiler: -- gcc -c_compiler_version: -- '7' -channel_sources: -- conda-forge,defaults -channel_targets: -- conda-forge main -cxx_compiler: -- gxx -cxx_compiler_version: -- '7' -docker_image: -- condaforge/linux-anvil-comp7 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.6.* *_73_pypy -target_platform: -- linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version diff --git a/.ci_support/linux_64_python3.6.____cpython.yaml b/.ci_support/linux_64_python3.6.____cpython.yaml index bb23d92..ddfa786 100644 --- a/.ci_support/linux_64_python3.6.____cpython.yaml +++ b/.ci_support/linux_64_python3.6.____cpython.yaml @@ -1,7 +1,9 @@ c_compiler: - gcc c_compiler_version: -- '7' +- '9' +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: @@ -9,9 +11,9 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '7' +- '9' docker_image: -- condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-comp7 pin_run_as_build: python: min_pin: x.x @@ -23,3 +25,5 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version +- - cdt_name + - docker_image diff --git a/.ci_support/linux_64_python3.7.____cpython.yaml b/.ci_support/linux_64_python3.7.____cpython.yaml index 8aeb4b6..869e5aa 100644 --- a/.ci_support/linux_64_python3.7.____cpython.yaml +++ b/.ci_support/linux_64_python3.7.____cpython.yaml @@ -1,7 +1,9 @@ c_compiler: - gcc c_compiler_version: -- '7' +- '9' +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: @@ -9,9 +11,9 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '7' +- '9' docker_image: -- condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-comp7 pin_run_as_build: python: min_pin: x.x @@ -23,3 +25,5 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version +- - cdt_name + - docker_image diff --git a/.ci_support/linux_64_python3.8.____cpython.yaml b/.ci_support/linux_64_python3.8.____cpython.yaml index 7541c4f..fac4f36 100644 --- a/.ci_support/linux_64_python3.8.____cpython.yaml +++ b/.ci_support/linux_64_python3.8.____cpython.yaml @@ -1,7 +1,9 @@ c_compiler: - gcc c_compiler_version: -- '7' +- '9' +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: @@ -9,9 +11,9 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '7' +- '9' docker_image: -- condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-comp7 pin_run_as_build: python: min_pin: x.x @@ -23,3 +25,5 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version +- - cdt_name + - docker_image diff --git a/.ci_support/linux_64_python3.9.____cpython.yaml b/.ci_support/linux_64_python3.9.____cpython.yaml index ff7750d..a11ffdf 100644 --- a/.ci_support/linux_64_python3.9.____cpython.yaml +++ b/.ci_support/linux_64_python3.9.____cpython.yaml @@ -1,7 +1,9 @@ c_compiler: - gcc c_compiler_version: -- '7' +- '9' +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: @@ -9,9 +11,9 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '7' +- '9' docker_image: -- condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-comp7 pin_run_as_build: python: min_pin: x.x @@ -23,3 +25,5 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version +- - cdt_name + - docker_image diff --git a/.ci_support/migrations/pypy.yaml b/.ci_support/migrations/pypy.yaml deleted file mode 100644 index 1c41a8c..0000000 --- a/.ci_support/migrations/pypy.yaml +++ /dev/null @@ -1,44 +0,0 @@ -migrator_ts: 1580746218 # The timestamp of when the migration was made -__migrator: - kind: - version - exclude: - - c_compiler - - vc - - cxx_compiler - - cuda_compiler_version - - docker_image - migration_number: # Only use this if the bot messes up, putting this in will cause a complete rerun of the migration - 1 - bump_number: 1 # Hashes changed for cpython, so it's better to bump build numbers. - -python: - - 3.6.* *_cpython - - 3.7.* *_cpython - - 3.8.* *_cpython - - 3.6.* *_73_pypy # [not win64] - -numpy: - - 1.14 # [not (aarch64 or ppc64le)] - - 1.14 # [not (aarch64 or ppc64le)] - - 1.14 # [not (aarch64 or ppc64le)] - - 1.16 # [aarch64 or ppc64le] - - 1.16 # [aarch64 or ppc64le] - - 1.16 # [aarch64 or ppc64le] - - 1.18 # [not win64] - -python_impl: - - cpython - - cpython - - cpython - - pypy # [not win64] - - -zip_keys: - - - - python - - numpy - - python_impl - - # [linux64] - - cuda_compiler_version # [linux64] - - docker_image # [linux64] 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_python3.6.____73_pypy.yaml b/.ci_support/osx_64_python3.6.____73_pypy.yaml deleted file mode 100644 index a4d52db..0000000 --- a/.ci_support/osx_64_python3.6.____73_pypy.yaml +++ /dev/null @@ -1,27 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '10.9' -c_compiler: -- clang -c_compiler_version: -- '10' -channel_sources: -- conda-forge,defaults -channel_targets: -- conda-forge main -cxx_compiler: -- clangxx -cxx_compiler_version: -- '10' -macos_machine: -- x86_64-apple-darwin13.4.0 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.6.* *_73_pypy -target_platform: -- osx-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version diff --git a/.ci_support/osx_64_python3.6.____cpython.yaml b/.ci_support/osx_64_python3.6.____cpython.yaml index 59562a6..d40c41c 100644 --- a/.ci_support/osx_64_python3.6.____cpython.yaml +++ b/.ci_support/osx_64_python3.6.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '10' +- '11' channel_sources: - conda-forge,defaults channel_targets: @@ -11,7 +11,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '10' +- '11' macos_machine: - x86_64-apple-darwin13.4.0 pin_run_as_build: diff --git a/.ci_support/osx_64_python3.7.____cpython.yaml b/.ci_support/osx_64_python3.7.____cpython.yaml index 3f2cce3..ad89a3a 100644 --- a/.ci_support/osx_64_python3.7.____cpython.yaml +++ b/.ci_support/osx_64_python3.7.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '10' +- '11' channel_sources: - conda-forge,defaults channel_targets: @@ -11,7 +11,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '10' +- '11' macos_machine: - x86_64-apple-darwin13.4.0 pin_run_as_build: diff --git a/.ci_support/osx_64_python3.8.____cpython.yaml b/.ci_support/osx_64_python3.8.____cpython.yaml index 2f9a585..fa3bf4b 100644 --- a/.ci_support/osx_64_python3.8.____cpython.yaml +++ b/.ci_support/osx_64_python3.8.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '10' +- '11' channel_sources: - conda-forge,defaults channel_targets: @@ -11,7 +11,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '10' +- '11' macos_machine: - x86_64-apple-darwin13.4.0 pin_run_as_build: diff --git a/.ci_support/osx_64_python3.9.____cpython.yaml b/.ci_support/osx_64_python3.9.____cpython.yaml index f4654fe..6470ff0 100644 --- a/.ci_support/osx_64_python3.9.____cpython.yaml +++ b/.ci_support/osx_64_python3.9.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '10' +- '11' channel_sources: - conda-forge,defaults channel_targets: @@ -11,7 +11,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '10' +- '11' macos_machine: - x86_64-apple-darwin13.4.0 pin_run_as_build: diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index aa9727b..71a0686 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,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}" @@ -30,6 +38,8 @@ 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 +47,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}" + ( endgroup "Validating outputs" ) 2> /dev/null + + ( startgroup "Uploading packages" ) 2> /dev/null + if [[ "${UPLOAD_PACKAGES}" != "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 87ba4db..244ccd1 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 )" @@ -45,10 +49,14 @@ 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 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 @@ -62,10 +70,14 @@ 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}" 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 \ @@ -84,4 +96,7 @@ docker run ${DOCKER_RUN_ARGS} \ /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..96d0278 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -1,57 +1,69 @@ #!/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" curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}" -bash $MINIFORGE_FILE -b -if [[ ${CI} == "travis" ]]; then - echo -en 'travis_fold:end:install_miniforge\\r' -fi +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 +BUILD_CMD=build + +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}" +( endgroup "Validating outputs" ) 2> /dev/null + +( startgroup "Uploading packages" ) 2> /dev/null + 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 +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 d99d100..5975640 100644 --- a/README.md +++ b/README.md @@ -29,13 +29,6 @@ Current build status - - - - - -
VariantStatus
linux_64_python3.6.____73_pypy - - variant - -
linux_64_python3.6.____cpython @@ -63,13 +56,6 @@ Current build status variant
osx_64_python3.6.____73_pypy - - variant - -
osx_64_python3.6.____cpython @@ -148,6 +134,7 @@ Installing `fuzzysearch` 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, `fuzzysearch` can be installed with: @@ -218,9 +205,9 @@ 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 diff --git a/build-locally.py b/build-locally.py index 3453cfe..00eeb34 100755 --- a/build-locally.py +++ b/build-locally.py @@ -7,6 +7,7 @@ import glob import subprocess from argparse import ArgumentParser +import platform def setup_environment(ns): @@ -16,6 +17,10 @@ def setup_environment(ns): 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" + ) def run_docker_build(ns): @@ -23,6 +28,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 +56,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 +84,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__": From ebb4b80856ee23a1351af5a2085509fddcdbccc4 Mon Sep 17 00:00:00 2001 From: "conda-forge-webservices[bot]" <91080706+conda-forge-webservices[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 18:56:23 +0000 Subject: [PATCH 7/7] MNT: Re-rendered with conda-build 3.27.0, conda-smithy 3.28.0, and conda-forge-pinning 2023.11.07.18.09.01 --- .azure-pipelines/azure-pipelines-linux.yml | 33 +++-- .azure-pipelines/azure-pipelines-osx.yml | 21 +-- .azure-pipelines/azure-pipelines-win.yml | 117 ++++----------- .ci_support/README | 7 +- ...l => linux_64_python3.10.____cpython.yaml} | 12 +- ...l => linux_64_python3.11.____cpython.yaml} | 12 +- .../linux_64_python3.7.____cpython.yaml | 29 ---- .../linux_64_python3.8.____cpython.yaml | 10 +- .../linux_64_python3.9.____cpython.yaml | 10 +- .ci_support/migrations/pypy37-windows.yaml | 33 ----- .ci_support/migrations/pypy37.yaml | 30 ---- ...aml => osx_64_python3.10.____cpython.yaml} | 8 +- ...aml => osx_64_python3.11.____cpython.yaml} | 8 +- .ci_support/osx_64_python3.6.____cpython.yaml | 27 ---- .ci_support/osx_64_python3.8.____cpython.yaml | 6 +- .ci_support/osx_64_python3.9.____cpython.yaml | 6 +- ...aml => win_64_python3.10.____cpython.yaml} | 8 +- ...aml => win_64_python3.11.____cpython.yaml} | 8 +- .ci_support/win_64_python3.6.____cpython.yaml | 16 --- .ci_support/win_64_python3.8.____cpython.yaml | 6 +- .ci_support/win_64_python3.9.____cpython.yaml | 6 +- .circleci/config.yml | 5 +- .gitattributes | 2 + .scripts/build_steps.sh | 33 ++++- .scripts/logging_utils.sh | 4 +- .scripts/run_docker_build.sh | 12 +- .scripts/run_osx_build.sh | 58 ++++++-- .scripts/run_win_build.bat | 120 ++++++++++++++++ LICENSE.txt | 32 +++-- README.md | 135 +++++++++--------- build-locally.py | 27 ++-- 31 files changed, 427 insertions(+), 414 deletions(-) rename .ci_support/{linux_64_python3.6.____cpython.yaml => linux_64_python3.10.____cpython.yaml} (72%) rename .ci_support/{linux_64_python3.7.____73_pypy.yaml => linux_64_python3.11.____cpython.yaml} (72%) delete mode 100644 .ci_support/linux_64_python3.7.____cpython.yaml delete mode 100644 .ci_support/migrations/pypy37-windows.yaml delete mode 100644 .ci_support/migrations/pypy37.yaml rename .ci_support/{osx_64_python3.7.____73_pypy.yaml => osx_64_python3.10.____cpython.yaml} (87%) rename .ci_support/{osx_64_python3.7.____cpython.yaml => osx_64_python3.11.____cpython.yaml} (87%) delete mode 100644 .ci_support/osx_64_python3.6.____cpython.yaml rename .ci_support/{win_64_python3.7.____73_pypy.yaml => win_64_python3.10.____cpython.yaml} (74%) rename .ci_support/{win_64_python3.7.____cpython.yaml => win_64_python3.11.____cpython.yaml} (74%) delete mode 100644 .ci_support/win_64_python3.6.____cpython.yaml create mode 100755 .scripts/run_win_build.bat diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 6e43082..0b775f3 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,34 +8,25 @@ jobs: vmImage: ubuntu-latest strategy: matrix: - linux_64_python3.6.____cpython: - CONFIG: linux_64_python3.6.____cpython + linux_64_python3.10.____cpython: + CONFIG: linux_64_python3.10.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 - linux_64_python3.7.____73_pypy: - CONFIG: linux_64_python3.7.____73_pypy + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + linux_64_python3.11.____cpython: + CONFIG: linux_64_python3.11.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 - linux_64_python3.7.____cpython: - CONFIG: linux_64_python3.7.____cpython - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 + 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-comp7 + 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-comp7 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 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: | @@ -46,8 +37,16 @@ jobs: - script: | export CI=azure + export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) + export remote_url=$(Build.Repository.Uri) + export sha=$(Build.SourceVersion) 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 c01d76d..0afa9b2 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -5,17 +5,14 @@ jobs: - job: osx pool: - vmImage: macOS-10.15 + vmImage: macOS-11 strategy: matrix: - osx_64_python3.6.____cpython: - CONFIG: osx_64_python3.6.____cpython + osx_64_python3.10.____cpython: + CONFIG: osx_64_python3.10.____cpython UPLOAD_PACKAGES: 'True' - osx_64_python3.7.____73_pypy: - CONFIG: osx_64_python3.7.____73_pypy - UPLOAD_PACKAGES: 'True' - osx_64_python3.7.____cpython: - CONFIG: osx_64_python3.7.____cpython + 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 @@ -29,9 +26,17 @@ jobs: # TODO: Fast finish on azure pipelines? - script: | export CI=azure + export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) + export remote_url=$(Build.Repository.Uri) + export sha=$(Build.SourceVersion) 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/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index af6e4f3..7374368 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -5,17 +5,14 @@ jobs: - job: win pool: - vmImage: vs2017-win2016 + vmImage: windows-2022 strategy: matrix: - win_64_python3.6.____cpython: - CONFIG: win_64_python3.6.____cpython + win_64_python3.10.____cpython: + CONFIG: win_64_python3.10.____cpython UPLOAD_PACKAGES: 'True' - win_64_python3.7.____73_pypy: - CONFIG: win_64_python3.7.____73_pypy - UPLOAD_PACKAGES: 'True' - win_64_python3.7.____cpython: - CONFIG: win_64_python3.7.____cpython + win_64_python3.11.____cpython: + CONFIG: win_64_python3.11.____cpython UPLOAD_PACKAGES: 'True' win_64_python3.8.____cpython: CONFIG: win_64_python3.8.____cpython @@ -26,97 +23,39 @@ jobs: timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ + UPLOAD_TEMP: D:\\tmp steps: - - script: | - choco install vcpython27 -fdv -y --debug - condition: contains(variables['CONFIG'], 'vs2008') - displayName: Install vcpython27.msi (if needed) - - # Cygwin's git breaks conda-build. (See https://github.com/conda-forge/conda-smithy-feedstock/pull/2.) - # - script: rmdir C:\cygwin /s /q - # continueOnError: true - - - powershell: | - Set-PSDebug -Trace 1 - - $batchcontent = @" - ECHO ON - SET vcpython=C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0 - - DIR "%vcpython%" - - CALL "%vcpython%\vcvarsall.bat" %* - "@ - - $batchDir = "C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0\VC" - $batchPath = "$batchDir" + "\vcvarsall.bat" - New-Item -Path $batchPath -ItemType "file" -Force - - Set-Content -Value $batchcontent -Path $batchPath - - Get-ChildItem -Path $batchDir - - Get-ChildItem -Path ($batchDir + '\..') - condition: contains(variables['CONFIG'], 'vs2008') - displayName: Patch vs2008 (if needed) - - - task: CondaEnvironment@1 + - task: PythonScript@0 + displayName: 'Download Miniforge' inputs: - packageSpecs: 'python=3.6 conda-build conda "conda-forge-ci-setup=3" pip' # Optional - installOptions: "-c conda-forge" - updateConda: true - displayName: Install conda-build and activate environment - - - script: set PYTHONUNBUFFERED=1 - displayName: Set PYTHONUNBUFFERED + 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) - # Configure the VM - script: | - call activate base - setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml - displayName: conda-forge CI setup + start /wait "" %BUILD_ARTIFACTSTAGINGDIRECTORY%\Miniforge.exe /InstallationType=JustMe /RegisterPython=0 /S /D=C:\Miniforge + displayName: Install Miniforge - # Configure the VM. - - script: | - set "CI=azure" - call activate base - run_conda_forge_build_setup - displayName: conda-forge build setup - + - powershell: Write-Host "##vso[task.prependpath]C:\Miniforge\Scripts" + displayName: Add conda to PATH - # Special cased version setting some more things! - script: | - call activate base - conda.exe build "recipe" -m .ci_support\%CONFIG%.yaml - displayName: Build recipe (vs2008) + call ".scripts\run_win_build.bat" + displayName: Run Windows build env: - VS90COMNTOOLS: "C:\\Program Files (x86)\\Common Files\\Microsoft\\Visual C++ for Python\\9.0\\VC\\bin" PYTHONUNBUFFERED: 1 - condition: contains(variables['CONFIG'], 'vs2008') - - - script: | - call activate base - conda.exe build "recipe" -m .ci_support\%CONFIG%.yaml - displayName: Build recipe - env: - PYTHONUNBUFFERED: 1 - condition: not(contains(variables['CONFIG'], 'vs2008')) - - 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:*/=%" - call activate base - upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml - displayName: Upload package - env: + CONFIG: $(CONFIG) + CI: azure + flow_run_id: azure_$(Build.BuildNumber).$(System.JobAttempt) + remote_url: $(Build.Repository.Uri) + sha: $(Build.SourceVersion) + UPLOAD_PACKAGES: $(UPLOAD_PACKAGES) + UPLOAD_TEMP: $(UPLOAD_TEMP) BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) - condition: and(succeeded(), not(eq(variables['UPLOAD_PACKAGES'], 'False'))) \ No newline at end of file + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file diff --git a/.ci_support/README b/.ci_support/README index e4e2dce..a47316b 100644 --- a/.ci_support/README +++ b/.ci_support/README @@ -1 +1,6 @@ -This file is automatically generated by conda-smithy. To change any matrix elements, you should change conda-smithy's input conda_build_config.yaml and re-render the recipe, rather than editing these files directly. \ No newline at end of file +This file is automatically generated by conda-smithy. If any +particular build configuration is expected, but it is not found, +please make sure all dependencies are satisfiable. To add/modify any +matrix elements, you should create/change conda-smithy's input +recipe/conda_build_config.yaml and re-render the recipe, rather than +editing these files directly. diff --git a/.ci_support/linux_64_python3.6.____cpython.yaml b/.ci_support/linux_64_python3.10.____cpython.yaml similarity index 72% rename from .ci_support/linux_64_python3.6.____cpython.yaml rename to .ci_support/linux_64_python3.10.____cpython.yaml index ddfa786..378d085 100644 --- a/.ci_support/linux_64_python3.6.____cpython.yaml +++ b/.ci_support/linux_64_python3.10.____cpython.yaml @@ -1,29 +1,27 @@ c_compiler: - gcc c_compiler_version: -- '9' +- '12' cdt_name: - cos6 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: - gxx cxx_compiler_version: -- '9' +- '12' docker_image: -- quay.io/condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-cos7-x86_64 pin_run_as_build: python: min_pin: x.x max_pin: x.x python: -- 3.6.* *_cpython +- 3.10.* *_cpython target_platform: - linux-64 zip_keys: - - c_compiler_version - cxx_compiler_version -- - cdt_name - - docker_image diff --git a/.ci_support/linux_64_python3.7.____73_pypy.yaml b/.ci_support/linux_64_python3.11.____cpython.yaml similarity index 72% rename from .ci_support/linux_64_python3.7.____73_pypy.yaml rename to .ci_support/linux_64_python3.11.____cpython.yaml index 877d14c..4d5782a 100644 --- a/.ci_support/linux_64_python3.7.____73_pypy.yaml +++ b/.ci_support/linux_64_python3.11.____cpython.yaml @@ -1,29 +1,27 @@ c_compiler: - gcc c_compiler_version: -- '9' +- '12' cdt_name: - cos6 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: - gxx cxx_compiler_version: -- '9' +- '12' docker_image: -- quay.io/condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-cos7-x86_64 pin_run_as_build: python: min_pin: x.x max_pin: x.x python: -- 3.7.* *_73_pypy +- 3.11.* *_cpython target_platform: - linux-64 zip_keys: - - c_compiler_version - cxx_compiler_version -- - cdt_name - - docker_image diff --git a/.ci_support/linux_64_python3.7.____cpython.yaml b/.ci_support/linux_64_python3.7.____cpython.yaml deleted file mode 100644 index 869e5aa..0000000 --- a/.ci_support/linux_64_python3.7.____cpython.yaml +++ /dev/null @@ -1,29 +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 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.7.* *_cpython -target_platform: -- linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - cdt_name - - docker_image diff --git a/.ci_support/linux_64_python3.8.____cpython.yaml b/.ci_support/linux_64_python3.8.____cpython.yaml index fac4f36..1a48c0c 100644 --- a/.ci_support/linux_64_python3.8.____cpython.yaml +++ b/.ci_support/linux_64_python3.8.____cpython.yaml @@ -1,19 +1,19 @@ c_compiler: - gcc c_compiler_version: -- '9' +- '12' cdt_name: - cos6 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: - gxx cxx_compiler_version: -- '9' +- '12' docker_image: -- quay.io/condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-cos7-x86_64 pin_run_as_build: python: min_pin: x.x @@ -25,5 +25,3 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version -- - cdt_name - - docker_image diff --git a/.ci_support/linux_64_python3.9.____cpython.yaml b/.ci_support/linux_64_python3.9.____cpython.yaml index a11ffdf..9275917 100644 --- a/.ci_support/linux_64_python3.9.____cpython.yaml +++ b/.ci_support/linux_64_python3.9.____cpython.yaml @@ -1,19 +1,19 @@ c_compiler: - gcc c_compiler_version: -- '9' +- '12' cdt_name: - cos6 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: - gxx cxx_compiler_version: -- '9' +- '12' docker_image: -- quay.io/condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-cos7-x86_64 pin_run_as_build: python: min_pin: x.x @@ -25,5 +25,3 @@ target_platform: zip_keys: - - c_compiler_version - cxx_compiler_version -- - cdt_name - - docker_image diff --git a/.ci_support/migrations/pypy37-windows.yaml b/.ci_support/migrations/pypy37-windows.yaml deleted file mode 100644 index d3a08fa..0000000 --- a/.ci_support/migrations/pypy37-windows.yaml +++ /dev/null @@ -1,33 +0,0 @@ -migrator_ts: 1623865877 -__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.6.* *_73_pypy - - 3.7.* *_73_pypy # new entry - paused: False - longterm: True - pr_limit: 6 - bump_number: 0 - wait_for_migrators: - - pypy37 - commit_message: "Rebuild for PyPy3.7 for windows" - exclude: - # this shouldn't attempt to modify the python feedstocks - - python - - pypy3.6 - - pypy-meta - -python: # [win] - - 3.7.* *_73_pypy # [win] -# additional entries to add for zip_keys -numpy: # [win] - - 1.19 # [win] -python_impl: # [win] - - pypy # [win] diff --git a/.ci_support/migrations/pypy37.yaml b/.ci_support/migrations/pypy37.yaml deleted file mode 100644 index d0998ab..0000000 --- a/.ci_support/migrations/pypy37.yaml +++ /dev/null @@ -1,30 +0,0 @@ -migrator_ts: 1608144114 -__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.6.* *_73_pypy - - 3.7.* *_73_pypy # new entry - paused: False - longterm: True - pr_limit: 8 - bump_number: 0 - exclude: - # this shouldn't attempt to modify the python feedstocks - - python - - pypy3.6 - - pypy-meta - -python: # [not (win or arm64)] - - 3.7.* *_73_pypy # [not (win or arm64)] -# additional entries to add for zip_keys -numpy: # [not (win or arm64)] - - 1.19 # [not (win or arm64)] -python_impl: # [not (win or arm64)] - - pypy # [not (win or arm64)] diff --git a/.ci_support/osx_64_python3.7.____73_pypy.yaml b/.ci_support/osx_64_python3.10.____cpython.yaml similarity index 87% rename from .ci_support/osx_64_python3.7.____73_pypy.yaml rename to .ci_support/osx_64_python3.10.____cpython.yaml index 3504400..08d4fd8 100644 --- a/.ci_support/osx_64_python3.7.____73_pypy.yaml +++ b/.ci_support/osx_64_python3.10.____cpython.yaml @@ -3,15 +3,15 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '11' +- '16' channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: - clangxx cxx_compiler_version: -- '11' +- '16' macos_machine: - x86_64-apple-darwin13.4.0 pin_run_as_build: @@ -19,7 +19,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.7.* *_73_pypy +- 3.10.* *_cpython target_platform: - osx-64 zip_keys: diff --git a/.ci_support/osx_64_python3.7.____cpython.yaml b/.ci_support/osx_64_python3.11.____cpython.yaml similarity index 87% rename from .ci_support/osx_64_python3.7.____cpython.yaml rename to .ci_support/osx_64_python3.11.____cpython.yaml index ad89a3a..fba419f 100644 --- a/.ci_support/osx_64_python3.7.____cpython.yaml +++ b/.ci_support/osx_64_python3.11.____cpython.yaml @@ -3,15 +3,15 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '11' +- '16' channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: - clangxx cxx_compiler_version: -- '11' +- '16' macos_machine: - x86_64-apple-darwin13.4.0 pin_run_as_build: @@ -19,7 +19,7 @@ pin_run_as_build: min_pin: x.x max_pin: x.x python: -- 3.7.* *_cpython +- 3.11.* *_cpython target_platform: - osx-64 zip_keys: diff --git a/.ci_support/osx_64_python3.6.____cpython.yaml b/.ci_support/osx_64_python3.6.____cpython.yaml deleted file mode 100644 index d40c41c..0000000 --- a/.ci_support/osx_64_python3.6.____cpython.yaml +++ /dev/null @@ -1,27 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '10.9' -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 -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 diff --git a/.ci_support/osx_64_python3.8.____cpython.yaml b/.ci_support/osx_64_python3.8.____cpython.yaml index fa3bf4b..e42dbd2 100644 --- a/.ci_support/osx_64_python3.8.____cpython.yaml +++ b/.ci_support/osx_64_python3.8.____cpython.yaml @@ -3,15 +3,15 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '11' +- '16' channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: - clangxx cxx_compiler_version: -- '11' +- '16' macos_machine: - x86_64-apple-darwin13.4.0 pin_run_as_build: diff --git a/.ci_support/osx_64_python3.9.____cpython.yaml b/.ci_support/osx_64_python3.9.____cpython.yaml index 6470ff0..3b3ee4c 100644 --- a/.ci_support/osx_64_python3.9.____cpython.yaml +++ b/.ci_support/osx_64_python3.9.____cpython.yaml @@ -3,15 +3,15 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '11' +- '16' channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: - clangxx cxx_compiler_version: -- '11' +- '16' macos_machine: - x86_64-apple-darwin13.4.0 pin_run_as_build: diff --git a/.ci_support/win_64_python3.7.____73_pypy.yaml b/.ci_support/win_64_python3.10.____cpython.yaml similarity index 74% rename from .ci_support/win_64_python3.7.____73_pypy.yaml rename to .ci_support/win_64_python3.10.____cpython.yaml index 24fa771..ac8a535 100644 --- a/.ci_support/win_64_python3.7.____73_pypy.yaml +++ b/.ci_support/win_64_python3.10.____cpython.yaml @@ -1,16 +1,16 @@ c_compiler: -- vs2017 +- vs2019 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: -- vs2017 +- vs2019 pin_run_as_build: python: min_pin: x.x max_pin: x.x python: -- 3.7.* *_73_pypy +- 3.10.* *_cpython target_platform: - win-64 diff --git a/.ci_support/win_64_python3.7.____cpython.yaml b/.ci_support/win_64_python3.11.____cpython.yaml similarity index 74% rename from .ci_support/win_64_python3.7.____cpython.yaml rename to .ci_support/win_64_python3.11.____cpython.yaml index fd0c20f..f4ccc08 100644 --- a/.ci_support/win_64_python3.7.____cpython.yaml +++ b/.ci_support/win_64_python3.11.____cpython.yaml @@ -1,16 +1,16 @@ c_compiler: -- vs2017 +- vs2019 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: -- vs2017 +- vs2019 pin_run_as_build: python: min_pin: x.x max_pin: x.x python: -- 3.7.* *_cpython +- 3.11.* *_cpython target_platform: - win-64 diff --git a/.ci_support/win_64_python3.6.____cpython.yaml b/.ci_support/win_64_python3.6.____cpython.yaml deleted file mode 100644 index 283a972..0000000 --- a/.ci_support/win_64_python3.6.____cpython.yaml +++ /dev/null @@ -1,16 +0,0 @@ -c_compiler: -- vs2017 -channel_sources: -- conda-forge,defaults -channel_targets: -- conda-forge main -cxx_compiler: -- vs2017 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.6.* *_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 index 79a7e02..8e868f8 100644 --- a/.ci_support/win_64_python3.8.____cpython.yaml +++ b/.ci_support/win_64_python3.8.____cpython.yaml @@ -1,11 +1,11 @@ c_compiler: -- vs2017 +- vs2019 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: -- vs2017 +- vs2019 pin_run_as_build: python: min_pin: x.x diff --git a/.ci_support/win_64_python3.9.____cpython.yaml b/.ci_support/win_64_python3.9.____cpython.yaml index 7a364d4..bdcfae1 100644 --- a/.ci_support/win_64_python3.9.____cpython.yaml +++ b/.ci_support/win_64_python3.9.____cpython.yaml @@ -1,11 +1,11 @@ c_compiler: -- vs2017 +- vs2019 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: -- vs2017 +- vs2019 pin_run_as_build: python: min_pin: x.x diff --git a/.circleci/config.yml b/.circleci/config.yml index 6ad461b..8b4ef2f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,13 +1,14 @@ # 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 -*- +# -*- mode: jinja-yaml -*- version: 2 jobs: build: working_directory: ~/test - machine: true + machine: + image: ubuntu-2004:current steps: - run: # The Circle-CI build should not be active, but if this is not true for some reason, do a fast finish. diff --git a/.gitattributes b/.gitattributes index 9060b27..7f32763 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,6 +9,7 @@ bld.bat text eol=crlf # github helper pieces to make some files not show up in diffs automatically .azure-pipelines/* linguist-generated=true .circleci/* linguist-generated=true +.ci_support/README linguist-generated=true .drone/* linguist-generated=true .drone.yml linguist-generated=true .github/* linguist-generated=true @@ -18,6 +19,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/.scripts/build_steps.sh b/.scripts/build_steps.sh index 71a0686..ab7bc8f 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -5,6 +5,8 @@ # 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 @@ -22,12 +24,19 @@ 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 [[ "${sha:-}" == "" ]]; then + pushd ${FEEDSTOCK_ROOT} + sha=$(git rev-parse HEAD) + popd +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}" @@ -51,9 +71,10 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then # Drop into an interactive shell /bin/bash else - conda $BUILD_CMD "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + conda build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" + --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ + --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" @@ -62,7 +83,7 @@ else ( startgroup "Uploading packages" ) 2> /dev/null - if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then + if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" fi diff --git a/.scripts/logging_utils.sh b/.scripts/logging_utils.sh index 57bc95c..aff009f 100644 --- a/.scripts/logging_utils.sh +++ b/.scripts/logging_utils.sh @@ -12,7 +12,7 @@ function startgroup { echo "##[group]$1";; travis ) echo "$1" - echo -en 'travis_fold:start:'"${1// /}"'\\r';; + echo -en 'travis_fold:start:'"${1// /}"'\r';; github_actions ) echo "::group::$1";; * ) @@ -28,7 +28,7 @@ function endgroup { azure ) echo "##[endgroup]";; travis ) - echo -en 'travis_fold:end:'"${1// /}"'\\r';; + echo -en 'travis_fold:end:'"${1// /}"'\r';; github_actions ) echo "::endgroup::";; esac diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 244ccd1..b70ef01 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -14,7 +14,7 @@ set -xeo pipefail THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" PROVIDER_DIR="$(basename $THISDIR)" -FEEDSTOCK_ROOT=$(cd "$(dirname "$0")/.."; pwd;) +FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" if [ -z ${FEEDSTOCK_NAME} ]; then @@ -75,12 +75,15 @@ fi ( 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 \ @@ -88,12 +91,15 @@ docker run ${DOCKER_RUN_ARGS} \ -e CPU_COUNT \ -e BUILD_WITH_CONDA_DEBUG \ -e BUILD_OUTPUT_ID \ + -e flow_run_id \ + -e remote_url \ + -e sha \ -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" diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 96d0278..24983bc 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -1,5 +1,7 @@ #!/usr/bin/env bash +# -*- mode: jinja-shell -*- + source .scripts/logging_utils.sh set -xe @@ -9,21 +11,24 @@ 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="Miniforge3-MacOSX-x86_64.sh" +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 -BUILD_CMD=build - source ${MINIFORGE_HOME}/etc/profile.d/conda.sh conda activate base +export CONDA_SOLVER="libmamba" +export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 -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 ${GET_BOA:-} +mamba install --update-specs --quiet --yes --channel conda-forge --strict-channel-priority \ + pip mamba conda-build conda-forge-ci-setup=4 +mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ + pip mamba conda-build conda-forge-ci-setup=4 @@ -42,6 +47,10 @@ else echo -e "\n\nNot mangling homebrew as we are not running in CI" fi +if [[ "${sha:-}" == "" ]]; then + sha=$(git rev-parse HEAD) +fi + echo -e "\n\nRunning the build setup script." source run_conda_forge_build_setup @@ -49,21 +58,40 @@ 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 -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 +if [[ -f LICENSE.txt ]]; then + cp LICENSE.txt "recipe/recipe-scripts-license.txt" +fi -validate_recipe_outputs "${FEEDSTOCK_NAME}" +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 -( endgroup "Validating outputs" ) 2> /dev/null + # Drop into an interactive shell + /bin/bash +else -( startgroup "Uploading packages" ) 2> /dev/null + conda build ./recipe -m ./.ci_support/${CONFIG}.yaml \ + --suppress-variables ${EXTRA_CB_OPTIONS:-} \ + --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ + --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" + ( startgroup "Validating outputs" ) 2> /dev/null -if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then - upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml -fi + 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 \ No newline at end of file + ( endgroup "Uploading packages" ) 2> /dev/null +fi \ No newline at end of file diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat new file mode 100755 index 0000000..5f648db --- /dev/null +++ b/.scripts/run_win_build.bat @@ -0,0 +1,120 @@ +:: 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. + +:: Note: we assume a Miniforge installation is available + +:: INPUTS (required environment variables) +:: CONFIG: name of the .ci_support/*.yaml file for this job +:: CI: azure, github_actions, or unset +:: UPLOAD_PACKAGES: true or false +:: UPLOAD_ON_BRANCH: true or false + +setlocal enableextensions enabledelayedexpansion + +call :start_group "Configuring conda" + +:: Activate the base conda environment +call activate base +:: Configure the solver +set "CONDA_SOLVER=libmamba" +if !errorlevel! neq 0 exit /b !errorlevel! +set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" + +:: Provision the necessary dependencies to build the recipe later +echo Installing dependencies +mamba.exe install "python=3.10" pip mamba conda-build conda-forge-ci-setup=4 -c conda-forge --strict-channel-priority --yes +if !errorlevel! neq 0 exit /b !errorlevel! + +:: Set basic configuration +echo Setting up configuration +setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml +if !errorlevel! neq 0 exit /b !errorlevel! +echo Running build setup +CALL run_conda_forge_build_setup + + +if !errorlevel! neq 0 exit /b !errorlevel! + +if EXIST LICENSE.txt ( + echo Copying feedstock license + copy LICENSE.txt "recipe\\recipe-scripts-license.txt" +) + +if NOT [%flow_run_id%] == [] ( + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" +) + +call :end_group + +:: Build the recipe +echo Building recipe +conda.exe build "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% +if !errorlevel! neq 0 exit /b !errorlevel! + +:: Prepare some environment variables for the upload step +if /i "%CI%" == "github_actions" ( + set "FEEDSTOCK_NAME=%GITHUB_REPOSITORY:*/=%" + set "GIT_BRANCH=%GITHUB_REF:refs/heads/=%" + if /i "%GITHUB_EVENT_NAME%" == "pull_request" ( + set "IS_PR_BUILD=True" + ) else ( + set "IS_PR_BUILD=False" + ) + set "TEMP=%RUNNER_TEMP%" +) +if /i "%CI%" == "azure" ( + set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" + set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" + if /i "%BUILD_REASON%" == "PullRequest" ( + set "IS_PR_BUILD=True" + ) else ( + set "IS_PR_BUILD=False" + ) + set "TEMP=%UPLOAD_TEMP%" +) + +:: Validate +call :start_group "Validating outputs" +validate_recipe_outputs "%FEEDSTOCK_NAME%" +if !errorlevel! neq 0 exit /b !errorlevel! +call :end_group + +if /i "%UPLOAD_PACKAGES%" == "true" ( + if /i "%IS_PR_BUILD%" == "false" ( + call :start_group "Uploading packages" + if not exist "%TEMP%\" md "%TEMP%" + set "TMP=%TEMP%" + upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml + if !errorlevel! neq 0 exit /b !errorlevel! + call :end_group + ) +) + +exit + +:: Logging subroutines + +:start_group +if /i "%CI%" == "github_actions" ( + echo ::group::%~1 + exit /b +) +if /i "%CI%" == "azure" ( + echo ##[group]%~1 + exit /b +) +echo %~1 +exit /b + +:end_group +if /i "%CI%" == "github_actions" ( + echo ::endgroup:: + exit /b +) +if /i "%CI%" == "azure" ( + echo ##[endgroup] + exit /b +) +exit /b \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt index ed3f451..2ec51d7 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,13 +1,27 @@ -BSD 3-clause license -Copyright (c) 2015-2021, conda-forge contributors +BSD-3-Clause license +Copyright (c) 2015-2022, 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: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. diff --git a/README.md b/README.md index 13b2b16..2927778 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ -About fuzzysearch -================= +About fuzzysearch-feedstock +=========================== + +Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/fuzzysearch-feedstock/blob/main/LICENSE.txt) Home: https://github.com/taleinat/fuzzysearch Package license: MIT -Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/fuzzysearch-feedstock/blob/master/LICENSE.txt) - Summary: Easy fuzzy search that just works, fast! Development: https://github.com/taleinat/fuzzysearch @@ -22,115 +22,94 @@ Current build status
- - + + - - - - + - + - + - + - - - - - - - + - + @@ -158,23 +137,49 @@ conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `fuzzysearch` can be installed with: +Once the `conda-forge` channel has been enabled, `fuzzysearch` can be installed with `conda`: ``` conda install fuzzysearch ``` -It is possible to list all of the versions of `fuzzysearch` available on your platform with: +or with `mamba`: + +``` +mamba install fuzzysearch +``` + +It is possible to list all of the versions of `fuzzysearch` available on your platform with `conda`: ``` conda search fuzzysearch --channel conda-forge ``` +or with `mamba`: + +``` +mamba search fuzzysearch --channel conda-forge +``` + +Alternatively, `mamba repoquery` may provide more information: + +``` +# Search all versions available on your platform: +mamba repoquery search fuzzysearch --channel conda-forge + +# List packages depending on `fuzzysearch`: +mamba repoquery whoneeds fuzzysearch --channel conda-forge + +# List dependencies of `fuzzysearch`: +mamba repoquery depends fuzzysearch --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 @@ -184,10 +189,12 @@ for each of the installable packages. Such a repository is known as a *feedstock A feedstock is made up of a conda recipe (the instructions on what and how to build the package) and the necessary configurations for automatic building using freely available continuous integration services. Thanks to the awesome service provided by -[CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/) -and [TravisCI](https://travis-ci.com/) it is possible to build and upload installable -packages to the [conda-forge](https://anaconda.org/conda-forge) -[Anaconda-Cloud](https://anaconda.org/) channel for Linux, Windows and OSX respectively. +[Azure](https://azure.microsoft.com/en-us/services/devops/), [GitHub](https://github.com/), +[CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/), +[Drone](https://cloud.drone.io/welcome), and [TravisCI](https://travis-ci.com/) +it is possible to build and upload installable packages to the +[conda-forge](https://anaconda.org/conda-forge) [Anaconda-Cloud](https://anaconda.org/) +channel for Linux, Windows and OSX respectively. To manage the continuous integration and simplify feedstock maintenance [conda-smithy](https://github.com/conda-forge/conda-smithy) has been developed. diff --git a/build-locally.py b/build-locally.py index 00eeb34..3f4b7a7 100755 --- a/build-locally.py +++ b/build-locally.py @@ -13,6 +13,7 @@ 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: @@ -60,11 +61,12 @@ def verify_config(ns): raise ValueError( f"only Linux/macOS configs currently supported, got {ns.config}" ) - elif ns.config.startswith("osx") and platform.system() == "Darwin": + elif ns.config.startswith("osx"): 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'" + "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=SDKs' " + "to download the SDK automatically to 'SDKs/MacOSX.sdk'. " + "Setting this variable implies agreement to the licensing terms of the SDK by Apple." ) @@ -84,12 +86,19 @@ def main(args=None): verify_config(ns) setup_environment(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) + try: + 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) + finally: + recipe_license_file = os.path.join( + "recipe", "recipe-scripts-license.txt" + ) + if os.path.exists(recipe_license_file): + os.remove(recipe_license_file) if __name__ == "__main__":
VariantStatus
linux_64_python3.6.____cpython - - variant - -
linux_64_python3.7.____73_pypylinux_64_python3.10.____cpython - - variant + + variant
linux_64_python3.7.____cpythonlinux_64_python3.11.____cpython - - variant + + variant
linux_64_python3.8.____cpython - - variant + + variant
linux_64_python3.9.____cpython - - variant + + variant
osx_64_python3.6.____cpythonosx_64_python3.10.____cpython - - variant + + variant
osx_64_python3.7.____73_pypyosx_64_python3.11.____cpython - - variant - -
osx_64_python3.7.____cpython - - variant + + variant
osx_64_python3.8.____cpython - - variant + + variant
osx_64_python3.9.____cpython - - variant - -
win_64_python3.6.____cpython - - variant + + variant
win_64_python3.7.____73_pypywin_64_python3.10.____cpython - - variant + + variant
win_64_python3.7.____cpythonwin_64_python3.11.____cpython - - variant + + variant
win_64_python3.8.____cpython - - variant + + variant
win_64_python3.9.____cpython - - variant + + variant