diff --git a/.appveyor.yml b/.appveyor.yml index 4df7bce..654a675 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,6 +1,7 @@ # This file was automatically generated by conda-smithy. To update a component of this # file, make changes to conda-forge.yml and/or recipe/meta.yaml, and run # "conda smithy rerender". +# -*- mode: yaml -*- environment: @@ -9,9 +10,6 @@ environment: secure: tumuXLL8PU75WMnRDemRy02ruEq2RpNxeK3dz0MjFssnosPm2v4EFjfNB4PTotA1 matrix: - - CONFIG: win_c_compilervs2015cxx_compilervs2015python3.5 - CONDA_INSTALL_LOCN: C:\Miniconda36-x64 - - CONFIG: win_c_compilervs2015cxx_compilervs2015python3.6 CONDA_INSTALL_LOCN: C:\Miniconda36-x64 @@ -25,13 +23,14 @@ platform: - x64 install: + - cmd: set "CI=appveyor" # If there is a newer build queued for the same PR, cancel this one. - cmd: | - powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/conda-forge/conda-forge-ci-setup-feedstock/branch2.0/recipe/conda_forge_ci_setup/ff_ci_pr_build.py', 'ff_ci_pr_build.py')" - ff_ci_pr_build -v --ci "appveyor" "%APPVEYOR_ACCOUNT_NAME%/%APPVEYOR_PROJECT_SLUG%" "%APPVEYOR_BUILD_NUMBER%" "%APPVEYOR_PULL_REQUEST_NUMBER%" + powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/conda-forge/conda-forge-ci-setup-feedstock/master/recipe/conda_forge_ci_setup/ff_ci_pr_build.py', 'ff_ci_pr_build.py')" + "%CONDA_INSTALL_LOCN%\python.exe" ff_ci_pr_build.py -v --ci "appveyor" "%APPVEYOR_ACCOUNT_NAME%/%APPVEYOR_PROJECT_SLUG%" "%APPVEYOR_BUILD_NUMBER%" "%APPVEYOR_PULL_REQUEST_NUMBER%" del ff_ci_pr_build.py - # Cywing's git breaks conda-build. (See https://github.com/conda-forge/conda-smithy-feedstock/pull/2.) + # Cygwin's git breaks conda-build. (See https://github.com/conda-forge/conda-smithy-feedstock/pull/2.) - cmd: rmdir C:\cygwin /s /q # Add path, activate `conda` and update conda. @@ -40,20 +39,16 @@ install: - cmd: set PYTHONUNBUFFERED=1 - # Add our channels. - - cmd: conda.exe config --set show_channel_urls true - - cmd: conda.exe config --remove channels defaults - - cmd: conda.exe config --add channels defaults - - cmd: conda.exe config --add channels conda-forge - # Configure the VM. - - cmd: conda.exe install -n root --quiet --yes conda-forge-ci-setup=2 + # Tell conda we want an updated version of conda-forge-ci-setup and conda-build + - cmd: conda.exe install -n root -c conda-forge --quiet --yes conda-forge-ci-setup=2 conda-build + - cmd: setup_conda_rc .\ .\recipe .\.ci_support\%CONFIG%.yaml - cmd: run_conda_forge_build_setup # Skip .NET project specific build phase. build: off test_script: - - conda.exe build recipe -m .ci_support\%CONFIG%.yaml --quiet + - conda.exe build recipe -m .ci_support\%CONFIG%.yaml deploy_script: - cmd: upload_package .\ .\recipe .ci_support\%CONFIG%.yaml \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml new file mode 100755 index 0000000..f141f95 --- /dev/null +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -0,0 +1,39 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +jobs: +- job: linux + pool: + vmImage: ubuntu-16.04 + timeoutInMinutes: 360 + strategy: + maxParallel: 8 + matrix: + linux_python2.7: + CONFIG: linux_python2.7 + UPLOAD_PACKAGES: True + DOCKER_IMAGE: condaforge/linux-anvil-comp7 + linux_python3.6: + CONFIG: linux_python3.6 + UPLOAD_PACKAGES: True + DOCKER_IMAGE: condaforge/linux-anvil-comp7 + linux_python3.7: + CONFIG: linux_python3.7 + UPLOAD_PACKAGES: True + DOCKER_IMAGE: condaforge/linux-anvil-comp7 + steps: + # configure qemu binfmt-misc running. This allows us to run docker containers + # embedded qemu-static + - script: | + docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + ls /proc/sys/fs/binfmt_misc/ + condition: not(startsWith(variables['CONFIG'], 'linux_64')) + displayName: Configure binfmt_misc + + - script: | + export CI=azure + .azure-pipelines/run_docker_build.sh + displayName: Run docker build + env: + BINSTAR_TOKEN: $(BINSTAR_TOKEN) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml new file mode 100755 index 0000000..bc6f0f8 --- /dev/null +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -0,0 +1,81 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +jobs: +- job: osx + pool: + vmImage: macOS-10.13 + timeoutInMinutes: 360 + strategy: + maxParallel: 8 + matrix: + osx_python2.7: + CONFIG: osx_python2.7 + UPLOAD_PACKAGES: True + osx_python3.6: + CONFIG: osx_python3.6 + UPLOAD_PACKAGES: True + osx_python3.7: + CONFIG: osx_python3.7 + UPLOAD_PACKAGES: True + + steps: + # TODO: Fast finish on azure pipelines? + - script: | + echo "Fast Finish" + + + - script: | + echo "Removing homebrew from Azure to avoid conflicts." + curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall > ~/uninstall_homebrew + chmod +x ~/uninstall_homebrew + ~/uninstall_homebrew -fq + rm ~/uninstall_homebrew + displayName: Remove homebrew + + - bash: | + echo "##vso[task.prependpath]$CONDA/bin" + sudo chown -R $USER $CONDA + displayName: Add conda to PATH + + - script: | + source activate base + conda install -n base -c conda-forge --quiet --yes conda-forge-ci-setup=2 conda-build + displayName: 'Add conda-forge-ci-setup=2' + + - script: | + source activate base + echo "Configuring conda." + + setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml + export CI=azure + source run_conda_forge_build_setup + conda update --yes --quiet --override-channels -c conda-forge -c defaults --all + env: { + OSX_FORCE_SDK_DOWNLOAD: "1" + } + displayName: Configure conda and conda-build + + - script: | + source activate base + mangle_compiler ./ ./recipe ./.ci_support/${CONFIG}.yaml + displayName: Mangle compiler + + - script: | + source activate base + make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml + displayName: Generate build number clobber file + + - script: | + source activate base + conda build ./recipe -m ./.ci_support/${CONFIG}.yaml --clobber-file ./.ci_support/clobber_${CONFIG}.yaml + displayName: Build recipe + + - script: | + source activate base + upload_package ./ ./recipe ./.ci_support/${CONFIG}.yaml + displayName: Upload recipe + env: + BINSTAR_TOKEN: $(BINSTAR_TOKEN) + condition: not(eq(variables['UPLOAD_PACKAGES'], 'False')) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml new file mode 100755 index 0000000..6f4c5f4 --- /dev/null +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -0,0 +1,105 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +jobs: +- job: win + pool: + vmImage: vs2017-win2016 + timeoutInMinutes: 360 + strategy: + maxParallel: 4 + matrix: + win_c_compilervs2015cxx_compilervs2015python3.6: + CONFIG: win_c_compilervs2015cxx_compilervs2015python3.6 + CONDA_BLD_PATH: D:\\bld\\ + UPLOAD_PACKAGES: False + win_c_compilervs2015cxx_compilervs2015python3.7: + CONFIG: win_c_compilervs2015cxx_compilervs2015python3.7 + CONDA_BLD_PATH: D:\\bld\\ + UPLOAD_PACKAGES: False + steps: + # TODO: Fast finish on azure pipelines? + - script: | + ECHO ON + + + - 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 + inputs: + packageSpecs: 'python=3.6 conda-build conda conda-forge::conda-forge-ci-setup=2' # Optional + installOptions: "-c conda-forge" + updateConda: false + displayName: Install conda-build and activate environment + + - script: set PYTHONUNBUFFERED=1 + + # Configure the VM + - script: setup_conda_rc .\ .\recipe .\.ci_support\%CONFIG%.yaml + + # Configure the VM. + - script: | + set "CI=azure" + run_conda_forge_build_setup + displayName: conda-forge build setup + + + - script: | + rmdir C:\strawberry /s /q + continueOnError: true + displayName: remove strawberryperl + + # Special cased version setting some more things! + - script: | + conda.exe build recipe -m .ci_support\%CONFIG%.yaml + displayName: Build recipe (vs2008) + 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: | + conda.exe build recipe -m .ci_support\%CONFIG%.yaml + displayName: Build recipe + env: + PYTHONUNBUFFERED: 1 + condition: not(contains(variables['CONFIG'], 'vs2008')) + + - script: | + upload_package .\ .\recipe .ci_support\%CONFIG%.yaml + env: + BINSTAR_TOKEN: $(BINSTAR_TOKEN) + condition: not(eq(variables['UPLOAD_PACKAGES'], 'False')) diff --git a/.circleci/build_steps.sh b/.azure-pipelines/build_steps.sh similarity index 56% rename from .circleci/build_steps.sh rename to .azure-pipelines/build_steps.sh index 258a085..8a4af44 100755 --- a/.circleci/build_steps.sh +++ b/.azure-pipelines/build_steps.sh @@ -7,34 +7,33 @@ set -xeuo pipefail export PYTHONUNBUFFERED=1 -export FEEDSTOCK_ROOT=/home/conda/feedstock_root -export RECIPE_ROOT=/home/conda/recipe_root -export CI_SUPPORT=/home/conda/feedstock_root/.ci_support +export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" +export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" +export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" cat >~/.condarc </dev/null && pwd )" +PROVIDER_DIR="$(basename $THISDIR)" FEEDSTOCK_ROOT=$(cd "$(dirname "$0")/.."; pwd;) RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" @@ -25,26 +28,46 @@ fi ARTIFACTS="$FEEDSTOCK_ROOT/build_artifacts" if [ -z "$CONFIG" ]; then - echo "Need to set CONFIG env variable" + set +x + FILES=`ls .ci_support/linux_*` + CONFIGS="" + for file in $FILES; do + CONFIGS="${CONFIGS}'${file:12:-5}' or "; + done + echo "Need to set CONFIG env variable. Value can be one of ${CONFIGS:0:-4}" exit 1 fi -pip install shyaml -DOCKER_IMAGE=$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 condaforge/linux-anvil ) +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" + else + DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 condaforge/linux-anvil-comp7 )" + fi +fi mkdir -p "$ARTIFACTS" DONE_CANARY="$ARTIFACTS/conda-forge-build-done-${CONFIG}" rm -f "$DONE_CANARY" -docker run -it \ - -v "${RECIPE_ROOT}":/home/conda/recipe_root \ - -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root \ +if [ -z "${CI}" ]; then + DOCKER_RUN_ARGS="-it " +fi + +export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" +docker run ${DOCKER_RUN_ARGS} \ + -v "${RECIPE_ROOT}":/home/conda/recipe_root:ro,z \ + -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z \ -e CONFIG \ -e BINSTAR_TOKEN \ -e HOST_USER_ID \ + -e UPLOAD_PACKAGES \ + -e CI \ $DOCKER_IMAGE \ bash \ - /home/conda/feedstock_root/.circleci/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" \ No newline at end of file diff --git a/.ci_support/linux_python2.7.yaml b/.ci_support/linux_python2.7.yaml index fe2e2c5..0aae168 100644 --- a/.ci_support/linux_python2.7.yaml +++ b/.ci_support/linux_python2.7.yaml @@ -1,20 +1,22 @@ c_compiler: -- toolchain_c +- gcc +c_compiler_version: +- '7' channel_sources: - conda-forge,defaults channel_targets: - conda-forge main cxx_compiler: -- toolchain_cxx +- gxx +cxx_compiler_version: +- '7' docker_image: -- condaforge/linux-anvil +- condaforge/linux-anvil-comp7 geos: -- 3.6.2 +- 3.7.2 numpy: -- '1.9' +- '1.14' pin_run_as_build: - geos: - max_pin: x.x.x python: min_pin: x.x max_pin: x.x diff --git a/.ci_support/linux_python3.5.yaml b/.ci_support/linux_python3.5.yaml deleted file mode 100644 index c2f9c3c..0000000 --- a/.ci_support/linux_python3.5.yaml +++ /dev/null @@ -1,22 +0,0 @@ -c_compiler: -- toolchain_c -channel_sources: -- conda-forge,defaults -channel_targets: -- conda-forge main -cxx_compiler: -- toolchain_cxx -docker_image: -- condaforge/linux-anvil -geos: -- 3.6.2 -numpy: -- '1.9' -pin_run_as_build: - geos: - max_pin: x.x.x - python: - min_pin: x.x - max_pin: x.x -python: -- '3.5' diff --git a/.ci_support/linux_python3.6.yaml b/.ci_support/linux_python3.6.yaml index d4ebe6b..ca07e69 100644 --- a/.ci_support/linux_python3.6.yaml +++ b/.ci_support/linux_python3.6.yaml @@ -1,20 +1,22 @@ c_compiler: -- toolchain_c +- gcc +c_compiler_version: +- '7' channel_sources: - conda-forge,defaults channel_targets: - conda-forge main cxx_compiler: -- toolchain_cxx +- gxx +cxx_compiler_version: +- '7' docker_image: -- condaforge/linux-anvil +- condaforge/linux-anvil-comp7 geos: -- 3.6.2 +- 3.7.2 numpy: -- '1.9' +- '1.14' pin_run_as_build: - geos: - max_pin: x.x.x python: min_pin: x.x max_pin: x.x diff --git a/.ci_support/linux_python3.7.yaml b/.ci_support/linux_python3.7.yaml index 7f0f77a..cb4485d 100644 --- a/.ci_support/linux_python3.7.yaml +++ b/.ci_support/linux_python3.7.yaml @@ -1,20 +1,22 @@ c_compiler: -- toolchain_c +- gcc +c_compiler_version: +- '7' channel_sources: - conda-forge,defaults channel_targets: - conda-forge main cxx_compiler: -- toolchain_cxx +- gxx +cxx_compiler_version: +- '7' docker_image: -- condaforge/linux-anvil +- condaforge/linux-anvil-comp7 geos: -- 3.6.2 +- 3.7.2 numpy: -- '1.9' +- '1.14' pin_run_as_build: - geos: - max_pin: x.x.x python: min_pin: x.x max_pin: x.x diff --git a/.ci_support/migrations/geos-3.8.0.yaml b/.ci_support/migrations/geos-3.8.0.yaml new file mode 100644 index 0000000..2e5f95e --- /dev/null +++ b/.ci_support/migrations/geos-3.8.0.yaml @@ -0,0 +1,22 @@ +# To learn more about migrations read CFEP-09 +# https://github.com/conda-forge/conda-forge-enhancement-proposals/blob/master/cfep-09.md +# The timestamp of when the migration was made +# Can be obtained by copying the output of +# python -c "import time; print(f'{time.time():.0f}')" +migrator_ts: 1574860028 +__migrator: + kind: + version + # Only change the migration_number if the bot messes up, + # changing this will cause a complete rerun of the migration + migration_number: + 1 + # This determines the increment to the build number when the + # migration runs. + # Change this to zero if the new pin increases the number of builds + build_number: + 1 + +# The name of the feedstock you wish to migrate +geos: + - 3.8.0 # new version to build against diff --git a/.ci_support/migrations/proj700.yaml b/.ci_support/migrations/proj700.yaml new file mode 100644 index 0000000..e41186f --- /dev/null +++ b/.ci_support/migrations/proj700.yaml @@ -0,0 +1,23 @@ +# To learn more about migrations read CFEP-09 +# https://github.com/conda-forge/conda-forge-enhancement-proposals/blob/master/cfep-09.md +# The timestamp of when the migration was made +# Can be obtained by copying the output of +# python -c "import time; print(f'{time.time():.0f}')" +migrator_ts: 1586207215 +__migrator: + kind: + version + # Only change the migration_number if the bot messes up, + # changing this will cause a complete rerun of the migration + migration_number: + 1 + # This determines the increment to the build number when the + # migration runs. + # Change this to zero if the new pin increases the number of builds + build_number: + 1 + +# The name of the feedstock you wish to migrate with dashes replaced by +# underscores +proj: + - 7.0.0 # new version to build against diff --git a/.ci_support/migrations/python38.yaml b/.ci_support/migrations/python38.yaml new file mode 100644 index 0000000..b11022c --- /dev/null +++ b/.ci_support/migrations/python38.yaml @@ -0,0 +1,55 @@ +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: + - 2.7 + - 3.6 + - 3.7 + - 3.8 + +c_compiler: + # legacy compilers for things that refuse to move + - toolchain_c # [(linux64 or osx) and (environ.get('CF_COMPILER_STACK') == 'comp4')] + # modern compilers + - gcc # [linux64] + - clang # [osx] + # non-standard arches get built with gcc + - gcc # [aarch64] + - gcc # [ppc64le] + - gcc # [armv7l] + + - vs2008 # [win] + - vs2015 # [win] + - vs2015 # [win] + - vs2015 # [win] + +cxx_compiler: + # legacy compilers for things that refuse to move + - toolchain_cxx # [(linux64 or osx) and (environ.get('CF_COMPILER_STACK') == 'comp4')] + # modern compilers + - gxx # [linux64] + - clangxx # [osx] + + - gxx # [aarch64] + - gxx # [ppc64le] + - gxx # [armv7l] + + - vs2008 # [win] + - vs2015 # [win] + - vs2015 # [win] + - vs2015 # [win] + +vc: # [win] + - 9 # [win] + - 14 # [win] + - 14 # [win] + - 14 # [win] diff --git a/.ci_support/osx_python2.7.yaml b/.ci_support/osx_python2.7.yaml index 8364686..2bec94f 100644 --- a/.ci_support/osx_python2.7.yaml +++ b/.ci_support/osx_python2.7.yaml @@ -1,24 +1,26 @@ MACOSX_DEPLOYMENT_TARGET: - '10.9' c_compiler: -- toolchain_c +- clang +c_compiler_version: +- '4' channel_sources: - conda-forge,defaults channel_targets: - conda-forge main cxx_compiler: -- toolchain_cxx +- clangxx +cxx_compiler_version: +- '4' geos: -- 3.6.2 +- 3.7.2 macos_machine: - x86_64-apple-darwin13.4.0 macos_min_version: - '10.9' numpy: -- '1.9' +- '1.14' pin_run_as_build: - geos: - max_pin: x.x.x python: min_pin: x.x max_pin: x.x diff --git a/.ci_support/osx_python3.5.yaml b/.ci_support/osx_python3.5.yaml deleted file mode 100644 index 280d712..0000000 --- a/.ci_support/osx_python3.5.yaml +++ /dev/null @@ -1,26 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '10.9' -c_compiler: -- toolchain_c -channel_sources: -- conda-forge,defaults -channel_targets: -- conda-forge main -cxx_compiler: -- toolchain_cxx -geos: -- 3.6.2 -macos_machine: -- x86_64-apple-darwin13.4.0 -macos_min_version: -- '10.9' -numpy: -- '1.9' -pin_run_as_build: - geos: - max_pin: x.x.x - python: - min_pin: x.x - max_pin: x.x -python: -- '3.5' diff --git a/.ci_support/osx_python3.6.yaml b/.ci_support/osx_python3.6.yaml index 4854bac..c3697e9 100644 --- a/.ci_support/osx_python3.6.yaml +++ b/.ci_support/osx_python3.6.yaml @@ -1,24 +1,26 @@ MACOSX_DEPLOYMENT_TARGET: - '10.9' c_compiler: -- toolchain_c +- clang +c_compiler_version: +- '4' channel_sources: - conda-forge,defaults channel_targets: - conda-forge main cxx_compiler: -- toolchain_cxx +- clangxx +cxx_compiler_version: +- '4' geos: -- 3.6.2 +- 3.7.2 macos_machine: - x86_64-apple-darwin13.4.0 macos_min_version: - '10.9' numpy: -- '1.9' +- '1.14' pin_run_as_build: - geos: - max_pin: x.x.x python: min_pin: x.x max_pin: x.x diff --git a/.ci_support/osx_python3.7.yaml b/.ci_support/osx_python3.7.yaml index 44a3496..72da885 100644 --- a/.ci_support/osx_python3.7.yaml +++ b/.ci_support/osx_python3.7.yaml @@ -1,24 +1,26 @@ MACOSX_DEPLOYMENT_TARGET: - '10.9' c_compiler: -- toolchain_c +- clang +c_compiler_version: +- '4' channel_sources: - conda-forge,defaults channel_targets: - conda-forge main cxx_compiler: -- toolchain_cxx +- clangxx +cxx_compiler_version: +- '4' geos: -- 3.6.2 +- 3.7.2 macos_machine: - x86_64-apple-darwin13.4.0 macos_min_version: - '10.9' numpy: -- '1.9' +- '1.14' pin_run_as_build: - geos: - max_pin: x.x.x python: min_pin: x.x max_pin: x.x diff --git a/.ci_support/win_c_compilervs2015cxx_compilervs2015python3.5.yaml b/.ci_support/win_c_compilervs2015cxx_compilervs2015python3.5.yaml deleted file mode 100644 index 69f70de..0000000 --- a/.ci_support/win_c_compilervs2015cxx_compilervs2015python3.5.yaml +++ /dev/null @@ -1,24 +0,0 @@ -c_compiler: -- vs2015 -channel_sources: -- conda-forge,defaults -channel_targets: -- conda-forge main -cxx_compiler: -- vs2015 -geos: -- 3.6.2 -numpy: -- '1.14' -pin_run_as_build: - geos: - max_pin: x.x.x - python: - min_pin: x.x - max_pin: x.x -python: -- '3.5' -zip_keys: -- - python - - c_compiler - - cxx_compiler diff --git a/.ci_support/win_c_compilervs2015cxx_compilervs2015python3.6.yaml b/.ci_support/win_c_compilervs2015cxx_compilervs2015python3.6.yaml index 3ba9815..c55c147 100644 --- a/.ci_support/win_c_compilervs2015cxx_compilervs2015python3.6.yaml +++ b/.ci_support/win_c_compilervs2015cxx_compilervs2015python3.6.yaml @@ -7,12 +7,10 @@ channel_targets: cxx_compiler: - vs2015 geos: -- 3.6.2 +- 3.7.2 numpy: - '1.14' pin_run_as_build: - geos: - max_pin: x.x.x python: min_pin: x.x max_pin: x.x diff --git a/.ci_support/win_c_compilervs2015cxx_compilervs2015python3.7.yaml b/.ci_support/win_c_compilervs2015cxx_compilervs2015python3.7.yaml index eb4f506..f8b1182 100644 --- a/.ci_support/win_c_compilervs2015cxx_compilervs2015python3.7.yaml +++ b/.ci_support/win_c_compilervs2015cxx_compilervs2015python3.7.yaml @@ -7,12 +7,10 @@ channel_targets: cxx_compiler: - vs2015 geos: -- 3.6.2 +- 3.7.2 numpy: - '1.14' pin_run_as_build: - geos: - max_pin: x.x.x python: min_pin: x.x max_pin: x.x diff --git a/.circleci/checkout_merge_commit.sh b/.circleci/checkout_merge_commit.sh deleted file mode 100755 index 9528e4b..0000000 --- a/.circleci/checkout_merge_commit.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - - -# Update PR refs for testing. -if [[ -n "${CIRCLE_PR_NUMBER}" ]] -then - FETCH_REFS="${FETCH_REFS} +refs/pull/${CIRCLE_PR_NUMBER}/head:pr/${CIRCLE_PR_NUMBER}/head" - FETCH_REFS="${FETCH_REFS} +refs/pull/${CIRCLE_PR_NUMBER}/merge:pr/${CIRCLE_PR_NUMBER}/merge" -fi - -# Retrieve the refs. -if [[ -n "${CIRCLE_PR_NUMBER}" ]] -then - git fetch -u origin ${FETCH_REFS} -fi - -# Checkout the PR merge ref. -if [[ -n "${CIRCLE_PR_NUMBER}" ]] -then - git checkout -qf "pr/${CIRCLE_PR_NUMBER}/merge" -fi - -# Check for merge conflicts. -if [[ -n "${CIRCLE_PR_NUMBER}" ]] -then - git branch --merged | grep "pr/${CIRCLE_PR_NUMBER}/head" > /dev/null -fi diff --git a/.circleci/config.yml b/.circleci/config.yml index 0047203..6ad461b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,80 +1,24 @@ +# 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 -*- + version: 2 jobs: - build_linux_python2.7: + build: working_directory: ~/test machine: true - environment: - - CONFIG: "linux_python2.7" steps: - - checkout - - run: - name: Fast finish outdated PRs and merge PRs - command: | - ./.circleci/fast_finish_ci_pr_build.sh - ./.circleci/checkout_merge_commit.sh - - run: - command: docker pull condaforge/linux-anvil - - run: - # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. - command: ./.circleci/run_docker_build.sh - build_linux_python3.5: - working_directory: ~/test - machine: true - environment: - - CONFIG: "linux_python3.5" - steps: - - checkout - - run: - name: Fast finish outdated PRs and merge PRs - command: | - ./.circleci/fast_finish_ci_pr_build.sh - ./.circleci/checkout_merge_commit.sh - - run: - command: docker pull condaforge/linux-anvil - - run: - # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. - command: ./.circleci/run_docker_build.sh - build_linux_python3.6: - working_directory: ~/test - machine: true - environment: - - CONFIG: "linux_python3.6" - steps: - - checkout - - run: - name: Fast finish outdated PRs and merge PRs - command: | - ./.circleci/fast_finish_ci_pr_build.sh - ./.circleci/checkout_merge_commit.sh - - run: - command: docker pull condaforge/linux-anvil - - run: - # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. - command: ./.circleci/run_docker_build.sh - build_linux_python3.7: - working_directory: ~/test - machine: true - environment: - - CONFIG: "linux_python3.7" - steps: - - checkout - - run: - name: Fast finish outdated PRs and merge PRs - command: | - ./.circleci/fast_finish_ci_pr_build.sh - ./.circleci/checkout_merge_commit.sh - - run: - command: docker pull condaforge/linux-anvil - run: - # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. - command: ./.circleci/run_docker_build.sh + # The Circle-CI build should not be active, but if this is not true for some reason, do a fast finish. + command: exit 0 workflows: version: 2 build_and_test: jobs: - - build_linux_python2.7 - - build_linux_python3.5 - - build_linux_python3.6 - - build_linux_python3.7 + - build: + filters: + branches: + ignore: + - /.*/ diff --git a/.circleci/fast_finish_ci_pr_build.sh b/.circleci/fast_finish_ci_pr_build.sh deleted file mode 100755 index 8c048ac..0000000 --- a/.circleci/fast_finish_ci_pr_build.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -curl https://raw.githubusercontent.com/conda-forge/conda-forge-ci-setup-feedstock/branch2.0/recipe/conda_forge_ci_setup/ff_ci_pr_build.py | \ - python - -v --ci "circle" "${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}" "${CIRCLE_BUILD_NUM}" "${CIRCLE_PR_NUMBER}" diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..4528b37 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @ocefpaf \ No newline at end of file diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md deleted file mode 100644 index d87090f..0000000 --- a/.github/CONTRIBUTING.md +++ /dev/null @@ -1,15 +0,0 @@ -Thanks for your interest in helping out conda-forge. - -Whether you are brand new or a seasoned maintainer, we always appreciate -feedback from the community about how we can improve conda-forge. If you -are submitting a PR or issue, please fill out the respective template. Should -any questions arise please feel free to ask the maintainer team of the -respective feedstock or reach out to `@conda-forge/core` for more complex -issues. - -In the case of any issues reported, please be sure to demonstrate the relevant -issue (even if it is an absence of a feature). Providing this information will -help busy maintainers understand what it is you hope to accomplish. Also this -will help provide them clues as to what might be going wrong. These examples -can also be reused as tests in the build to ensure further packages meet these -criteria. This is requested to help you get timely and relevant feedback. :) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index fc95334..0000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,25 +0,0 @@ - -Issue: - -
-Environment (conda list): -
- -``` -$ conda list - -``` -
- -
-Details about conda and system ( conda info ): -
- -``` -$ conda info - -``` -
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 047fdaf..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,18 +0,0 @@ - -Checklist -* [ ] Used a fork of the feedstock to propose changes -* [ ] Bumped the build number (if the version is unchanged) -* [ ] Reset the build number to `0` (if the version changed) -* [ ] [Re-rendered]( https://conda-forge.org/docs/conda_smithy.html#how-to-re-render ) with the latest `conda-smithy` (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering) -* [ ] Ensured the license file is being packaged. - - - - diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml new file mode 100644 index 0000000..e8e5902 --- /dev/null +++ b/.github/workflows/automerge.yml @@ -0,0 +1,18 @@ +on: + status: {} + check_suite: + types: + - completed + +jobs: + automerge-action: + runs-on: ubuntu-latest + name: automerge + steps: + - name: checkout + uses: actions/checkout@v2 + - name: automerge-action + id: automerge-action + uses: conda-forge/automerge-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/webservices.yml b/.github/workflows/webservices.yml new file mode 100644 index 0000000..78f51e6 --- /dev/null +++ b/.github/workflows/webservices.yml @@ -0,0 +1,12 @@ +on: repository_dispatch + +jobs: + webservices: + runs-on: ubuntu-latest + name: webservices + steps: + - name: webservices + id: webservices + uses: conda-forge/webservices-dispatch-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index eef5261..0000000 --- a/.travis.yml +++ /dev/null @@ -1,66 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. - -language: generic - -os: osx -osx_image: xcode6.4 - -env: - matrix: - - CONFIG=osx_python2.7 - - CONFIG=osx_python3.5 - - CONFIG=osx_python3.6 - - CONFIG=osx_python3.7 - - global: - # The BINSTAR_TOKEN secure variable. This is defined canonically in conda-forge.yml. - - secure: "ESHO3IQAsYAgHAS74dh4iC9L2kXKYQhj2K0i8O4axmrTdFf6vNrxf+Fnfb9U56k63qu+o5vBH66Kp2CR9T6eaH2Wg0KwOuKVSPiwmdc17QA/JGsgBldc4fiammT27pLRjgy+ewfNnxUMIlccMKXqVbTO6z+6pkzfJcr4gWlUjAN46eOWCcYZ2RiUdVCsUgZytEU7+EEO+optlp22h1ADNN8QBpVJ3MdK/G57P/VzBa+79ZTRfQUKzW9Vv4ub+T4AszRIprorx/ulL/XxgmN0qtEcSClBYdrMKl/3nZ5rK9jtqVkMLyCXhUV0oUoZMZ9M8VTRpM+ya99iHGEg2EazDmf4rI/H6TFKJtgRlVLz427EPnwq4JtNaozonsPizdHNu7JAY/rWf/h61aW3i3B/tqGW+RiuWKfsK7yBqgmPv/gHAzTSlD0yQEAXlirHEUJzrg/tbCB/5xxXKYjZZaFdDJZVHzeaULbW/MVVjOWdff1B7T+zyzbBj5xIymmqzYAaahFJDSLVxREwLH1hGJS2jMzwmlCFNZw8rRkv4hlC2OylyGWlogOQEgjqTRLJdE2pG+6sAQNKC3zswNNGGMUkOWUaVOrI4k/5nK6miJSQyUzXzGAhbZmX4f0YgOy3oI1KZ5f1Y0UxhMiC7GCRm6ROeDkEkYc4T1QQGUVxZ27U0SM=" - - -before_install: - # Fast finish the PR. - - | - (curl https://raw.githubusercontent.com/conda-forge/conda-forge-ci-setup-feedstock/branch2.0/recipe/conda_forge_ci_setup/ff_ci_pr_build.py | \ - python - -v --ci "travis" "${TRAVIS_REPO_SLUG}" "${TRAVIS_BUILD_NUMBER}" "${TRAVIS_PULL_REQUEST}") || exit 1 - - # Remove homebrew. - - | - echo "" - echo "Removing homebrew from Travis CI to avoid conflicts." - curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall > ~/uninstall_homebrew - chmod +x ~/uninstall_homebrew - ~/uninstall_homebrew -fq - rm ~/uninstall_homebrew - - -install: - # Install Miniconda. - - | - echo "" - echo "Installing a fresh version of Miniconda." - MINICONDA_URL="https://repo.continuum.io/miniconda" - MINICONDA_FILE="Miniconda3-latest-MacOSX-x86_64.sh" - curl -L -O "${MINICONDA_URL}/${MINICONDA_FILE}" - bash $MINICONDA_FILE -b - - # Configure conda. - - | - echo "" - echo "Configuring conda." - source /Users/travis/miniconda3/bin/activate root - - conda install --yes --quiet conda-forge::conda-forge-ci-setup=2 - setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml - - source run_conda_forge_build_setup - - # compiler cleanup - - | - mangle_compiler ./ ./recipe ./.ci_support/${CONFIG}.yaml - -script: - # generate the build number clobber - - make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml - - conda build ./recipe -m ./.ci_support/${CONFIG}.yaml --clobber-file ./.ci_support/clobber_${CONFIG}.yaml - - upload_package ./ ./recipe ./.ci_support/${CONFIG}.yaml diff --git a/LICENSE.txt b/LICENSE.txt index 72dc8fd..cba42cf 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,5 +1,5 @@ BSD 3-clause license -Copyright (c) 2015-2018, conda-forge +Copyright (c) 2015-2019, conda-forge 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 a0e8515..2ac07f0 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,91 @@ Summary: Plot on map projections using matplotlib Current build status ==================== -[![Linux](https://img.shields.io/circleci/project/github/conda-forge/basemap-feedstock/master.svg?label=Linux)](https://circleci.com/gh/conda-forge/basemap-feedstock) -[![OSX](https://img.shields.io/travis/conda-forge/basemap-feedstock/master.svg?label=macOS)](https://travis-ci.org/conda-forge/basemap-feedstock) -[![Windows](https://img.shields.io/appveyor/ci/conda-forge/basemap-feedstock/master.svg?label=Windows)](https://ci.appveyor.com/project/conda-forge/basemap-feedstock/branch/master) + + + + + + + + + + +![ppc64le disabled](https://img.shields.io/badge/ppc64le-disabled-lightgrey.svg) +
Appveyor + + windows + +
Azure +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariantStatus
linux_python2.7 + + variant + +
linux_python3.6 + + variant + +
linux_python3.7 + + variant + +
osx_python2.7 + + variant + +
osx_python3.6 + + variant + +
osx_python3.7 + + variant + +
win_c_compilervs2015cxx_compilervs2015python3.6 + + variant + +
win_c_compilervs2015cxx_compilervs2015python3.7 + + variant + +
+
+
Current release info ==================== @@ -50,6 +132,8 @@ conda search basemap --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) + 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 conda-forge GitHub organization. The conda-forge organization contains one repository @@ -104,3 +188,9 @@ In order to produce a uniquely identifiable distribution: * 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) back to 0. + +Feedstock Maintainers +===================== + +* [@ocefpaf](https://github.com/ocefpaf/) + diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..e5306da --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,8 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +jobs: + - 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 diff --git a/build-locally.py b/build-locally.py new file mode 100755 index 0000000..51d6a6e --- /dev/null +++ b/build-locally.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +# +# This file has been generated by conda-smithy in order to build the recipe +# locally. +# +import os +import glob +import subprocess +from argparse import ArgumentParser + + +def setup_environment(ns): + os.environ["CONFIG"] = ns.config + os.environ["UPLOAD_PACKAGES"] = "False" + + +def run_docker_build(ns): + script = glob.glob(".*/run_docker_build.sh")[0] + subprocess.check_call(script) + +def verify_config(ns): + valid_configs = {os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml")} + print(f"valid configs are {valid_configs}") + if ns.config in valid_configs: + print("Using " + ns.config + " configuration") + return + elif len(valid_configs) == 1: + ns.config = valid_configs.pop() + print("Found " + ns.config + " configuration") + elif ns.config is None: + print("config not selected, please choose from the following:\n") + selections = list(enumerate(sorted(valid_configs), 1)) + for i, c in selections: + print(f"{i}. {c}") + s = input("\n> ") + idx = int(s) - 1 + ns.config = selections[idx][1] + print(f"selected {ns.config}") + else: + raise ValueError("config " + ns.config + " is not valid") + # Remove the following, as implemented + if not ns.config.startswith('linux'): + raise ValueError(f"only Linux configs currently supported, got {ns.config}") + + +def main(args=None): + p = ArgumentParser("build-locally") + p.add_argument("config", default=None, nargs="?") + + ns = p.parse_args(args=args) + verify_config(ns) + setup_environment(ns) + + run_docker_build(ns) + + +if __name__ == "__main__": + main() diff --git a/conda-forge.yml b/conda-forge.yml index e585c95..8f1111a 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,7 +1,4 @@ -travis: - secure: - BINSTAR_TOKEN: ESHO3IQAsYAgHAS74dh4iC9L2kXKYQhj2K0i8O4axmrTdFf6vNrxf+Fnfb9U56k63qu+o5vBH66Kp2CR9T6eaH2Wg0KwOuKVSPiwmdc17QA/JGsgBldc4fiammT27pLRjgy+ewfNnxUMIlccMKXqVbTO6z+6pkzfJcr4gWlUjAN46eOWCcYZ2RiUdVCsUgZytEU7+EEO+optlp22h1ADNN8QBpVJ3MdK/G57P/VzBa+79ZTRfQUKzW9Vv4ub+T4AszRIprorx/ulL/XxgmN0qtEcSClBYdrMKl/3nZ5rK9jtqVkMLyCXhUV0oUoZMZ9M8VTRpM+ya99iHGEg2EazDmf4rI/H6TFKJtgRlVLz427EPnwq4JtNaozonsPizdHNu7JAY/rWf/h61aW3i3B/tqGW+RiuWKfsK7yBqgmPv/gHAzTSlD0yQEAXlirHEUJzrg/tbCB/5xxXKYjZZaFdDJZVHzeaULbW/MVVjOWdff1B7T+zyzbBj5xIymmqzYAaahFJDSLVxREwLH1hGJS2jMzwmlCFNZw8rRkv4hlC2OylyGWlogOQEgjqTRLJdE2pG+6sAQNKC3zswNNGGMUkOWUaVOrI4k/5nK6miJSQyUzXzGAhbZmX4f0YgOy3oI1KZ5f1Y0UxhMiC7GCRm6ROeDkEkYc4T1QQGUVxZ27U0SM= appveyor: - secure: - BINSTAR_TOKEN: tumuXLL8PU75WMnRDemRy02ruEq2RpNxeK3dz0MjFssnosPm2v4EFjfNB4PTotA1 -max_py_ver: '37' + secure: {BINSTAR_TOKEN: tumuXLL8PU75WMnRDemRy02ruEq2RpNxeK3dz0MjFssnosPm2v4EFjfNB4PTotA1} +travis: + secure: {BINSTAR_TOKEN: ESHO3IQAsYAgHAS74dh4iC9L2kXKYQhj2K0i8O4axmrTdFf6vNrxf+Fnfb9U56k63qu+o5vBH66Kp2CR9T6eaH2Wg0KwOuKVSPiwmdc17QA/JGsgBldc4fiammT27pLRjgy+ewfNnxUMIlccMKXqVbTO6z+6pkzfJcr4gWlUjAN46eOWCcYZ2RiUdVCsUgZytEU7+EEO+optlp22h1ADNN8QBpVJ3MdK/G57P/VzBa+79ZTRfQUKzW9Vv4ub+T4AszRIprorx/ulL/XxgmN0qtEcSClBYdrMKl/3nZ5rK9jtqVkMLyCXhUV0oUoZMZ9M8VTRpM+ya99iHGEg2EazDmf4rI/H6TFKJtgRlVLz427EPnwq4JtNaozonsPizdHNu7JAY/rWf/h61aW3i3B/tqGW+RiuWKfsK7yBqgmPv/gHAzTSlD0yQEAXlirHEUJzrg/tbCB/5xxXKYjZZaFdDJZVHzeaULbW/MVVjOWdff1B7T+zyzbBj5xIymmqzYAaahFJDSLVxREwLH1hGJS2jMzwmlCFNZw8rRkv4hlC2OylyGWlogOQEgjqTRLJdE2pG+6sAQNKC3zswNNGGMUkOWUaVOrI4k/5nK6miJSQyUzXzGAhbZmX4f0YgOy3oI1KZ5f1Y0UxhMiC7GCRm6ROeDkEkYc4T1QQGUVxZ27U0SM=} diff --git a/recipe/backport_386.patch b/recipe/backport_386.patch deleted file mode 100644 index 04dafb5..0000000 --- a/recipe/backport_386.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- basemap-1.1.0.orig/lib/mpl_toolkits/basemap/__init__.py 2017-05-04 13:53:42.000000000 -0700 -+++ basemap-1.1.0/lib/mpl_toolkits/basemap/__init__.py 2018-02-12 10:36:13.000000000 -0800 -@@ -1296,7 +1296,7 @@ - # numpy array (first column is lons, second is lats). - polystring = bdatfile.read(bytecount) - # binary data is little endian. -- b = np.array(np.fromstring(polystring,dtype='= 1.15, < 1.17; python_version == "3.4" + numpy >= 1.16, < 1.19; python_version == "3.5" + numpy >= 1.16, < 1.20; python_version == "3.6" +-numpy >= 1.21, < 1.23; python_version >= "3.7" ++numpy >= 1.19, < 1.23; python_version >= "3.7" + + cycler < 0.11; python_version == "3.2" + pyparsing >= 1.5, < 2.4.1; python_version == "2.6" diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 1d84a0c..af5d9dc 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,53 +1,138 @@ -{% set version = "1.2.0" %} +{% set version = "1.3.2" %} +{% set build_number = "1" %} package: - name: basemap + name: basemap-split version: {{ version }} source: - url: https://github.com/matplotlib/basemap/archive/v{{ version }}rel.tar.gz - sha256: bd5bf305918a2eb675939873b735238f9e3dfe6b5c290e37c41e5b082ff3639a + url: https://github.com/matplotlib/basemap/archive/v{{ version }}.tar.gz + sha256: c35aa397be4de342a3078ec089094531609712abd78e3d11b92d792974fd8141 patches: - - basemap-1.0.8dev-datadir.patch - - use_proj_data.patch + # Update messages regarding installation of `basemap-data-hires`. + - install_hires_instructions.patch + - install_numpy_override.patch # <--- This is a horible hack. Remove ASAP. build: - number: 0 - skip: True # [win and py2k] + number: {{ build_number }} requirements: build: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - host: - - python - - pip - - cython - - numpy - - geos - - matplotlib >=1.0.0 - - pyproj >=1.9.3 - - pyshp >=1.2.0 - - six - run: - - python - - {{ pin_compatible('numpy') }} - - geos - - matplotlib >=1.0.0 - - pyproj >=1.9.3 - - pyshp >=1.2.0 - - six - -test: - imports: - - mpl_toolkits.basemap - -about: - home: http://matplotlib.org/basemap - license: MIT - license_file: README.md - summary: 'Plot on map projections using matplotlib' + - m2-patch # [win] + - patch # [not win] + + +outputs: + + - name: basemap + script: build-basemap.sh # [not win] This script will delete `pyproject.toml`. Remove ASAP. + script: bld-basemap.bat # [win] + build: + skip: True # [s390x] Missing dependencies. + skip: True # [win32] Missing dependencies in win32 arch and not expecting they will be updated. + skip: True # [py<38] Dependencies require 3.8+ + requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + host: + - python + - pip + - cython >=0.29,<3.1 + - numpy >=1.21 # [not ppc64le] + - numpy >=1.19 # [ppc64le] + - geos + - pyproj + - setuptools + - wheel + run: + - {{ pin_subpackage('basemap-data') }} + - python + - {{ pin_compatible('numpy') }} + - {{ pin_compatible('geos') }} + - matplotlib-base >=1.5,!=3.0.1 + - pyproj >=1.9.3,<3.4 + - pyshp >=1.2.0,<2.2 + - six >=1.10,<1.16 + test: + imports: + - mpl_toolkits.basemap + requires: + - pip + - {{ pin_subpackage('basemap-data') }} + commands: + - pip check + - python -c "from mpl_toolkits.basemap import Basemap" + about: + home: https://matplotlib.org/basemap + license: MIT + license_family: MIT + license_file: + - packages/basemap/LICENSE + summary: 'Plot on map projections using matplotlib' + description: | + Basemap toolkit is a library for plotting 2D data on maps in Python. + It is similar in functionality to the matlab mapping toolbox, the IDL mapping facilities, GrADS, or the Generic Mapping Tools. + dev_url: https://github.com/matplotlib/basemap + doc_url: https://matplotlib.org/basemap/ + doc_source_url: https://github.com/matplotlib/basemap/blob/v{{ version }}/packages/basemap/doc/index.rst + + - name: basemap-data + script: build-basemap.sh # [not win] + script: bld-basemap.bat # [win] + build: + noarch: python + skip: True # [s390x] Missing dependencies. + skip: True # [win32] Missing dependencies in win32 arch and not expecting they will be updated. + skip: True # [py<38] Dependencies require 3.8+ + requirements: + host: + - python + - pip + - setuptools + - wheel + run: + - python >=3.6 + about: + home: https://matplotlib.org/basemap + license: LGPL-3.0-or-later + license_family: LGPL + license_file: packages/basemap_data_hires/COPYING.LESSER + summary: Plot on map projections (with coastlines and political boundaries) using matplotlib. + dev_url: https://github.com/matplotlib/basemap + doc_url: https://matplotlib.org/basemap/ + doc_source_url: https://github.com/matplotlib/basemap/blob/v{{ version }}/packages/basemap/doc/index.rst + + - name: basemap-data-hires + script: build-basemap.sh # [not win] + script: bld-basemap.bat # [win] + build: + noarch: python + skip: True # [s390x] Missing dependencies. + skip: True # [win32] Missing dependencies in win32 arch and not expecting they will be updated. + skip: True # [py<38] Dependencies require 3.8+ + requirements: + host: + - python + - pip + - setuptools + - wheel + run: + - {{ pin_subpackage('basemap-data') }} + - python >=3.6 + about: + home: https://matplotlib.org/basemap + license: LGPL-3.0-or-later + license_family: LGPL + license_file: packages/basemap_data_hires/COPYING.LESSER + summary: Plot on map projections (with coastlines and political boundaries) using matplotlib. + dev_url: https://github.com/matplotlib/basemap + doc_url: https://matplotlib.org/basemap/ + doc_source_url: https://github.com/matplotlib/basemap/blob/v{{ version }}/packages/basemap/doc/index.rst + + extra: recipe-maintainers: + - molinav - ocefpaf diff --git a/recipe/remove_is_scalar.patch b/recipe/remove_is_scalar.patch deleted file mode 100644 index f7a3772..0000000 --- a/recipe/remove_is_scalar.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/lib/mpl_toolkits/basemap/__init__.py b/lib/mpl_toolkits/basemap/__init__.py -index 10fb6d0..d9ec13c 100644 ---- a/lib/mpl_toolkits/basemap/__init__.py -+++ b/lib/mpl_toolkits/basemap/__init__.py -@@ -14,7 +14,7 @@ heavy lifting), and the following functions: - """ - from distutils.version import LooseVersion - from matplotlib import __version__ as _matplotlib_version --from matplotlib.cbook import is_scalar, dedent -+from matplotlib.cbook import dedent - # check to make sure matplotlib is not too old. - _matplotlib_version = LooseVersion(_matplotlib_version) - _mpl_required_version = LooseVersion('0.98') -@@ -4980,12 +4980,11 @@ def interp(datain,xin,yin,xout,yout,checkbounds=False,masked=False,order=1): - dataout = map_coordinates(datain,coords,order=3,mode='nearest') - else: - raise ValueError('order keyword must be 0, 1 or 3') -- if masked and isinstance(masked,bool): -- dataout = ma.masked_array(dataout) -+ if masked: - newmask = ma.mask_or(ma.getmask(dataout), xymask) -- dataout = ma.masked_array(dataout,mask=newmask) -- elif masked and is_scalar(masked): -- dataout = np.where(xymask,masked,dataout) -+ dataout = ma.masked_array(dataout, mask=newmask) -+ if not isinstance(masked, bool): -+ dataout = dataout.filled(masked) - return dataout - - def shiftgrid(lon0,datain,lonsin,start=True,cyclic=360.0): diff --git a/recipe/use_proj_data.patch b/recipe/use_proj_data.patch deleted file mode 100644 index 13e8a18..0000000 --- a/recipe/use_proj_data.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- basemap-1.1.0.orig/lib/mpl_toolkits/basemap/__init__.py 2017-05-04 17:53:42.000000000 -0300 -+++ basemap-1.1.0/lib/mpl_toolkits/basemap/__init__.py 2018-08-31 13:09:10.768728089 -0300 -@@ -140,7 +140,8 @@ - } - - # create dictionary that maps epsg codes to Basemap kwargs. --epsgf = open(os.path.join(pyproj.pyproj_datadir,'epsg')) -+pyproj_datadir = os.environ['PROJ_LIB'] -+epsgf = open(os.path.join(pyproj_datadir,'epsg')) - epsg_dict={} - for line in epsgf: - if line.startswith("#"):