diff --git a/.appveyor.yml b/.appveyor.yml deleted file mode 100644 index d6672cddb..000000000 --- a/.appveyor.yml +++ /dev/null @@ -1,51 +0,0 @@ -# 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: - - BINSTAR_TOKEN: - # The BINSTAR_TOKEN secure variable. This is defined canonically in conda-forge.yml. - secure: tumuXLL8PU75WMnRDemRy02ruEq2RpNxeK3dz0MjFssnosPm2v4EFjfNB4PTotA1 - - matrix: - - CONFIG: win_c_compilervs2015cxx_compilervs2015vc14 - CONDA_INSTALL_LOCN: C:\Miniconda36-x64 - - -# We always use a 64-bit machine, but can build x86 distributions -# with the TARGET_ARCH variable. -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/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 - - # 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. - - cmd: call %CONDA_INSTALL_LOCN%\Scripts\activate.bat - - cmd: conda.exe update --yes --quiet conda - - - cmd: set PYTHONUNBUFFERED=1 - - # Configure the VM. - # 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 -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 index f5d84628d..9ffb709ef 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -14,14 +14,6 @@ jobs: CONFIG: linux_ UPLOAD_PACKAGES: True DOCKER_IMAGE: condaforge/linux-anvil-comp7 - linux_aarch64_: - CONFIG: linux_aarch64_ - UPLOAD_PACKAGES: True - DOCKER_IMAGE: condaforge/linux-anvil-aarch64 - linux_ppc64le_: - CONFIG: linux_ppc64le_ - UPLOAD_PACKAGES: True - DOCKER_IMAGE: condaforge/linux-anvil-ppc64le steps: # configure qemu binfmt-misc running. This allows us to run docker containers # embedded qemu-static @@ -33,7 +25,8 @@ jobs: - script: | export CI=azure - .azure-pipelines/run_docker_build.sh + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + .scripts/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 index 7bb55876b..ca725089d 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -68,8 +68,9 @@ jobs: - script: | source activate base + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME upload_package ./ ./recipe ./.ci_support/${CONFIG}.yaml - displayName: Upload recipe + displayName: Upload package 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 index e21f2c6f7..055b40d7e 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -13,7 +13,7 @@ jobs: win_c_compilervs2015cxx_compilervs2015vc14: CONFIG: win_c_compilervs2015cxx_compilervs2015vc14 CONDA_BLD_PATH: D:\\bld\\ - UPLOAD_PACKAGES: False + UPLOAD_PACKAGES: True steps: # TODO: Fast finish on azure pipelines? - script: | @@ -95,7 +95,9 @@ jobs: condition: not(contains(variables['CONFIG'], 'vs2008')) - script: | + set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" upload_package .\ .\recipe .ci_support\%CONFIG%.yaml + displayName: Upload package env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) condition: not(eq(variables['UPLOAD_PACKAGES'], 'False')) diff --git a/.ci_support/osx_.yaml b/.ci_support/osx_.yaml index f8519fdc1..e91a0bc4f 100644 --- a/.ci_support/osx_.yaml +++ b/.ci_support/osx_.yaml @@ -5,7 +5,7 @@ bzip2: c_compiler: - clang c_compiler_version: -- '4' +- '9' channel_sources: - conda-forge,defaults channel_targets: @@ -13,7 +13,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '4' +- '9' libffi: - '3.2' macos_machine: diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 000000000..8dd281ee9 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,26 @@ +--- +kind: pipeline +name: linux_aarch64_ + +platform: + os: linux + arch: arm64 + +steps: +- name: Install and build + image: condaforge/linux-anvil-aarch64 + environment: + CONFIG: linux_aarch64_ + UPLOAD_PACKAGES: True + PLATFORM: linux-aarch64 + BINSTAR_TOKEN: + from_secret: BINSTAR_TOKEN + commands: + - export FEEDSTOCK_ROOT="$DRONE_WORKSPACE" + - export RECIPE_ROOT="$FEEDSTOCK_ROOT/recipe" + - export CI=drone + - export GIT_BRANCH="$DRONE_BRANCH" + - sed -i '$ichown -R conda:conda "$FEEDSTOCK_ROOT"' /opt/docker/bin/entrypoint + - /opt/docker/bin/entrypoint $FEEDSTOCK_ROOT/.scripts/build_steps.sh + - echo "Done building" + diff --git a/.gitattributes b/.gitattributes index 974953ecb..ac943c18b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,3 +5,21 @@ meta.yaml text eol=lf build.sh text eol=lf 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 +.drone/* linguist-generated=true +.drone.yml linguist-generated=true +.github/* linguist-generated=true +.travis/* linguist-generated=true +.appveyor.yml linguist-generated=true +.gitattributes linguist-generated=true +.gitignore linguist-generated=true +.travis.yml linguist-generated=true +.scripts linguist-generated=true +LICENSE.txt linguist-generated=true +README.md linguist-generated=true +azure-pipelines.yml linguist-generated=true +build-locally.py linguist-generated=true +shippable.yml linguist-generated=true diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 16e98d92d..723418457 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,6 +1 @@ -* @jakirkham -* @jjhelmus -* @mingwandroid -* @msarahan -* @ocefpaf -* @pelson +* @jakirkham @jjhelmus @mingwandroid @msarahan @ocefpaf @pelson \ No newline at end of file diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md deleted file mode 100644 index d87090f26..000000000 --- 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 fc9533497..000000000 --- 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 ba618a2ad..000000000 --- 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/maintainer/updating_pkgs.html#rerendering-feedstocks ) 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/.azure-pipelines/build_steps.sh b/.scripts/build_steps.sh similarity index 100% rename from .azure-pipelines/build_steps.sh rename to .scripts/build_steps.sh diff --git a/.azure-pipelines/run_docker_build.sh b/.scripts/run_docker_build.sh similarity index 95% rename from .azure-pipelines/run_docker_build.sh rename to .scripts/run_docker_build.sh index 3524f61e9..066a85755 100755 --- a/.azure-pipelines/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -39,7 +39,7 @@ if [ -z "$CONFIG" ]; then fi if [ -z "${DOCKER_IMAGE}" ]; then - SHYAML_INSTALLED="$(shyaml --version || echo NO)" + 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" @@ -64,6 +64,8 @@ docker run ${DOCKER_RUN_ARGS} \ -e BINSTAR_TOKEN \ -e HOST_USER_ID \ -e UPLOAD_PACKAGES \ + -e GIT_BRANCH \ + -e UPLOAD_ON_BRANCH \ -e CI \ $DOCKER_IMAGE \ bash \ diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..5e6972b83 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,22 @@ +# 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 + +env: + global: + # The BINSTAR_TOKEN secure variable. This is defined canonically in conda-forge.yml. + - secure: "XlN4awda3oHgy9VyeOYp5uHidR0l9bdZ8Y/RdVKs19WkUHPY0qZIALURC1cWaKdDbDrkSfUq7xiutl/248yR59fLUBdzLOBx+41pmoJ/PhhmZ/x+IvG2iX7RFcPQhuySi3UfZuymtvPCJ1ezXsyl/cFDHCOexaIXPQgiye6vm/QPFUSxyZ9ymvK4RcwdghteHR4wQpm6Lbr2eblarj+bGrymrq15vkUMvHpI8jJRHfYE9ItbHZ/uMlXfbltAPT1uHM96vQliaAPa544fVxZTLBNu8v/kVD0dfMo7A1BBiwvQj/6d+NAOqhVzXkRMkGdaQYnqq3hVOmLnJ8LjEGF0o+q2+7ENnQbdVZdyrnbwSzxLDS32LgisMGa4s/qSWwcBHeZJxTW7YRLOnMKKkDYBd5J9y7sFjIAAfRgTc2wfwvcqQfvLT17MXIwFOcN8VPulGOg9HKrfDDGsCMvPliqiE1hy96Y3aoc8BcVHINMdoE2QuCBKGDsYmSK2IHglJT1crdyVA8kpu9k6oif1dpLjGpa+wxI1hjGTHE0ookiLnN2rTj36vRibu2GC3jUQGPccDQHY/wzd4CfSitmSnudvGKk8PSf/WklirsTLXtgp53J7w+lXu62Aq7PoFBVhZl6/bEjbs7iihlBVHbuEMeW/EwMsWVABQBCAOhF2b40jyEs=" + +matrix: + include: + - env: CONFIG=linux_ppc64le_ UPLOAD_PACKAGES=True PLATFORM=linux-ppc64le DOCKER_IMAGE=condaforge/linux-anvil-ppc64le + os: linux + arch: ppc64le + +script: + - export CI=travis + - export GIT_BRANCH="$TRAVIS_BRANCH" + + + - if [[ ${PLATFORM} =~ .*linux.* ]]; then ./.scripts/run_docker_build.sh; fi \ No newline at end of file diff --git a/README.md b/README.md index 23896d7c2..e18cd2f97 100644 --- a/README.md +++ b/README.md @@ -22,10 +22,17 @@ Current build status - + + + + @@ -35,8 +42,8 @@ Current build status
AppveyorTravis - - windows + + macOS + +
Drone + + linux
- - + + @@ -44,36 +51,36 @@ Current build status @@ -127,7 +134,7 @@ A feedstock is made up of a conda recipe (the instructions on what and how to bu 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.org/) it is possible to build and upload installable +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. diff --git a/build-locally.py b/build-locally.py index a7d9c2d19..8f7ecca4f 100755 --- a/build-locally.py +++ b/build-locally.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # This file has been generated by conda-smithy in order to build the recipe # locally. @@ -15,11 +15,14 @@ def setup_environment(ns): def run_docker_build(ns): - script = glob.glob(".*/run_docker_build.sh")[0] - subprocess.check_call(script) + script = ".scripts/run_docker_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")} + 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") @@ -39,8 +42,10 @@ def verify_config(ns): 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}") + if not ns.config.startswith("linux"): + raise ValueError( + f"only Linux configs currently supported, got {ns.config}" + ) def main(args=None): @@ -55,4 +60,4 @@ def main(args=None): if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/conda-forge.yml b/conda-forge.yml index 8f7454b9b..0c9f9f78a 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,8 +1,6 @@ -appveyor: - secure: {BINSTAR_TOKEN: tumuXLL8PU75WMnRDemRy02ruEq2RpNxeK3dz0MjFssnosPm2v4EFjfNB4PTotA1} compiler_stack: comp7 max_py_ver: '37' max_r_ver: '35' -provider: {linux_aarch64: azure, linux_ppc64le: azure} +provider: {linux_aarch64: default, linux_ppc64le: default, win: default} travis: secure: {BINSTAR_TOKEN: XlN4awda3oHgy9VyeOYp5uHidR0l9bdZ8Y/RdVKs19WkUHPY0qZIALURC1cWaKdDbDrkSfUq7xiutl/248yR59fLUBdzLOBx+41pmoJ/PhhmZ/x+IvG2iX7RFcPQhuySi3UfZuymtvPCJ1ezXsyl/cFDHCOexaIXPQgiye6vm/QPFUSxyZ9ymvK4RcwdghteHR4wQpm6Lbr2eblarj+bGrymrq15vkUMvHpI8jJRHfYE9ItbHZ/uMlXfbltAPT1uHM96vQliaAPa544fVxZTLBNu8v/kVD0dfMo7A1BBiwvQj/6d+NAOqhVzXkRMkGdaQYnqq3hVOmLnJ8LjEGF0o+q2+7ENnQbdVZdyrnbwSzxLDS32LgisMGa4s/qSWwcBHeZJxTW7YRLOnMKKkDYBd5J9y7sFjIAAfRgTc2wfwvcqQfvLT17MXIwFOcN8VPulGOg9HKrfDDGsCMvPliqiE1hy96Y3aoc8BcVHINMdoE2QuCBKGDsYmSK2IHglJT1crdyVA8kpu9k6oif1dpLjGpa+wxI1hjGTHE0ookiLnN2rTj36vRibu2GC3jUQGPccDQHY/wzd4CfSitmSnudvGKk8PSf/WklirsTLXtgp53J7w+lXu62Aq7PoFBVhZl6/bEjbs7iihlBVHbuEMeW/EwMsWVABQBCAOhF2b40jyEs=} diff --git a/recipe/bld.bat b/recipe/bld.bat index cc34bb63d..9e7d7cdd3 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -2,6 +2,11 @@ REM brand Python with conda-forge startup message REM %SYS_PYTHON% %RECIPE_DIR%\brand_python.py REM if errorlevel 1 exit 1 +if "%CI%"=="azure" ( + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86_x64 -vcvars_ver=14.0 + set "MSBUILDDEFAULTTOOLSVERSION=14.0" +) + REM Compile python, extensions and external libraries if "%ARCH%"=="64" ( set PLATFORM=x64 diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 8a3e2d30a..79d06e2fd 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -82,7 +82,7 @@ source: build: - number: 1005 + number: 1006 # Windows has issues updating python if conda is using files itself. # Copy rather than link. no_link:
linux - - variant + + variant
linux_aarch64 - - variant + + variant
linux_ppc64le - - variant + + variant
osx - - variant + + variant
win_c_compilervs2015cxx_compilervs2015vc14 - - variant + + variant