From 95e8716ebc9351e132bd35a2500cbdf07ea588fd Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Tue, 27 Sep 2016 16:40:01 -0400 Subject: [PATCH 01/36] recipe: Restrict to NumPy 1.10.x only. --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index a60de2e5..2c89d387 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -14,7 +14,7 @@ source: build: number: 202 # We lack openblas on Windows, and therefore can't build numpy there either currently. - skip: true # [win] + skip: true # [win or np!=110] features: - blas_{{ variant }} From 1e7dbd9c1deb02f31ab50966de482a7ad6d48acb Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Tue, 27 Sep 2016 16:41:02 -0400 Subject: [PATCH 02/36] Re-render with `conda-smithy` version `1.2.0`. --- .travis.yml | 3 --- ci_support/run_docker_build.sh | 23 +---------------------- 2 files changed, 1 insertion(+), 25 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1c23b28d..db29b0c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,11 +9,8 @@ env: matrix: - CONDA_NPY=110 CONDA_PY=27 - - CONDA_NPY=111 CONDA_PY=27 - CONDA_NPY=110 CONDA_PY=34 - - CONDA_NPY=111 CONDA_PY=34 - CONDA_NPY=110 CONDA_PY=35 - - CONDA_NPY=111 CONDA_PY=35 global: # The BINSTAR_TOKEN secure variable. This is defined canonically in conda-forge.yml. - secure: "cXmMh0qV5bhXevVtdcMf8VOVIG0zOA0cQRihCsOaDG0yPSP1tW0N40llDkDhjk80wIKMMzuwofaarESzW5i5+GTbvDMmzpeHZAEoXYUIsNTxNJMX7KcvxNdeVIGNM8tcM3a4Zp/u0cvOjDs6xSHeZPdNit3x8rDaARASwU+YZnIIY8Iieizo3LmWxRghjOdFYnr0frOshy38PI+l1ywYqsN/L8+4GqxWtkTuzK3fnI3MlwfDC8tVImjXuukHK3J78SsDdnbTBJlV0tcNV8iGa08Md55bgv9HEgFbHRSunc22lLjFRHMT10Hvl0H0HdylYkQTKC7iOwIw9D3kIp4uR+g0rDKzBuuYF+jV65+UhR5TKMiH4QIiMxBMLpB8QU1Ey58L2X2t1j06d+VZYp2UiubGNvxjXun9tWFnIotFoho1bfW0gUURNvk+fEs0O/0LpReTweNVJLc1JakT7eitFm5gaV8CNzAsNcBCpPsHWiCMQm+FD3D57q+DIJ4ONl0OOBYSDNkziJEvgB0XyV7UpGobm0xu/JTPg+Qq2op3GDxgCfILqhApTEVkMKQJv+o5yHO/JIonxCbE41xIotw8JjhQ2VROFLPGh3F3buiJ26VUbI41yoN20D4y0Bvj7HPdiBHVWNcUmkj1xYZckivnxjCE5eth/TBJiK9gqjgRw6w=" diff --git a/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index 9bc4dc0e..dec80875 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -41,7 +41,7 @@ conda clean --lock conda install --yes --quiet conda-forge-build-setup source run_conda_forge_build_setup -# Embarking on 6 case(s). +# Embarking on 3 case(s). set -x export CONDA_NPY=110 export CONDA_PY=27 @@ -49,13 +49,6 @@ source run_conda_forge_build_setup conda build /recipe_root --quiet || exit 1 /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 - set -x - export CONDA_NPY=111 - export CONDA_PY=27 - set +x - conda build /recipe_root --quiet || exit 1 - /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 - set -x export CONDA_NPY=110 export CONDA_PY=34 @@ -63,24 +56,10 @@ source run_conda_forge_build_setup conda build /recipe_root --quiet || exit 1 /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 - set -x - export CONDA_NPY=111 - export CONDA_PY=34 - set +x - conda build /recipe_root --quiet || exit 1 - /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 - set -x export CONDA_NPY=110 export CONDA_PY=35 set +x conda build /recipe_root --quiet || exit 1 /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 - - set -x - export CONDA_NPY=111 - export CONDA_PY=35 - set +x - conda build /recipe_root --quiet || exit 1 - /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 EOF From 677c6231c923c1b28a76e7d8a076183e3d978daf Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Tue, 27 Sep 2016 16:42:13 -0400 Subject: [PATCH 03/36] recipe: Restrict to NumPy 1.11.x only. --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index a60de2e5..1b993a6c 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -14,7 +14,7 @@ source: build: number: 202 # We lack openblas on Windows, and therefore can't build numpy there either currently. - skip: true # [win] + skip: true # [win or np!=111] features: - blas_{{ variant }} From 4ea44bd491f81a5183e54f0089f8112bdada0fd1 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Tue, 27 Sep 2016 16:44:30 -0400 Subject: [PATCH 04/36] Re-render with `conda-smithy` version `1.2.0`. --- .travis.yml | 3 --- ci_support/run_docker_build.sh | 23 +---------------------- 2 files changed, 1 insertion(+), 25 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1c23b28d..f844c22d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,11 +8,8 @@ os: osx env: matrix: - - CONDA_NPY=110 CONDA_PY=27 - CONDA_NPY=111 CONDA_PY=27 - - CONDA_NPY=110 CONDA_PY=34 - CONDA_NPY=111 CONDA_PY=34 - - CONDA_NPY=110 CONDA_PY=35 - CONDA_NPY=111 CONDA_PY=35 global: # The BINSTAR_TOKEN secure variable. This is defined canonically in conda-forge.yml. diff --git a/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index 9bc4dc0e..ab28f57d 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -41,14 +41,7 @@ conda clean --lock conda install --yes --quiet conda-forge-build-setup source run_conda_forge_build_setup -# Embarking on 6 case(s). - set -x - export CONDA_NPY=110 - export CONDA_PY=27 - set +x - conda build /recipe_root --quiet || exit 1 - /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 - +# Embarking on 3 case(s). set -x export CONDA_NPY=111 export CONDA_PY=27 @@ -56,13 +49,6 @@ source run_conda_forge_build_setup conda build /recipe_root --quiet || exit 1 /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 - set -x - export CONDA_NPY=110 - export CONDA_PY=34 - set +x - conda build /recipe_root --quiet || exit 1 - /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 - set -x export CONDA_NPY=111 export CONDA_PY=34 @@ -70,13 +56,6 @@ source run_conda_forge_build_setup conda build /recipe_root --quiet || exit 1 /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 - set -x - export CONDA_NPY=110 - export CONDA_PY=35 - set +x - conda build /recipe_root --quiet || exit 1 - /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 - set -x export CONDA_NPY=111 export CONDA_PY=35 From 35397b6930be3b06d5f01e07cf1aff2d6c4e6bd5 Mon Sep 17 00:00:00 2001 From: Andreas Mueller Date: Wed, 28 Sep 2016 17:31:40 -0400 Subject: [PATCH 05/36] Release0.18 np1.10 (#17) * 0.18 version bump * use git tag instead of pipy * fix hash, move to sha256 --- recipe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 2c89d387..ac1f977c 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.17.1" %} +{% set version = "0.18" %} {% set variant = "openblas" %} @@ -8,8 +8,8 @@ package: source: fn: scikit-learn-{{ version }}.tar.gz - url: https://pypi.io/packages/source/s/scikit-learn/scikit-learn-{{ version }}.tar.gz - md5: a2f8b877e6d99b1ed737144f5a478dfc + url: https://github.com/scikit-learn/scikit-learn/archive/{{ version }}.tar.gz + sha256: 6f871ab07657becb3cca158dc4af96a1a14c0a360add04664fba325da43537fa build: number: 202 From f53d9ef162d1b998cdb3e15a5746c3701b8b37dd Mon Sep 17 00:00:00 2001 From: Andreas Mueller Date: Wed, 28 Sep 2016 17:31:52 -0400 Subject: [PATCH 06/36] Release 0.18 (#11) * 0.18 version bump * use git tag instead of pipy * fix hash, move to sha256 --- recipe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 1b993a6c..eab29cff 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.17.1" %} +{% set version = "0.18" %} {% set variant = "openblas" %} @@ -8,8 +8,8 @@ package: source: fn: scikit-learn-{{ version }}.tar.gz - url: https://pypi.io/packages/source/s/scikit-learn/scikit-learn-{{ version }}.tar.gz - md5: a2f8b877e6d99b1ed737144f5a478dfc + url: https://github.com/scikit-learn/scikit-learn/archive/{{ version }}.tar.gz + sha256: 6f871ab07657becb3cca158dc4af96a1a14c0a360add04664fba325da43537fa build: number: 202 From c6b5f24d0e0442202d59277a3a650852c20452bf Mon Sep 17 00:00:00 2001 From: conda-forge-admin Date: Wed, 12 Oct 2016 05:01:49 +0000 Subject: [PATCH 07/36] MNT: Updated the feedstock for conda-smithy version 1.3.2. --- .travis.yml | 7 +- README.md | 11 +- ci_support/checkout_merge_commit.sh | 27 +++++ ci_support/run_docker_build.sh | 6 +- ci_support/upload_or_check_non_existence.py | 124 -------------------- circle.yml | 4 + 6 files changed, 44 insertions(+), 135 deletions(-) create mode 100755 ci_support/checkout_merge_commit.sh delete mode 100755 ci_support/upload_or_check_non_existence.py diff --git a/.travis.yml b/.travis.yml index f844c22d..61f1da8b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,10 @@ # This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yaml and/or the recipe/meta.yaml. +# update the conda-forge.yml and/or the recipe/meta.yaml. language: generic os: osx +osx_image: beta-xcode6.1 env: matrix: @@ -29,7 +30,7 @@ install: curl -O "${MINICONDA_URL}/${MINICONDA_FILE}" bash $MINICONDA_FILE -b - export PATH=/Users/travis/miniconda3/bin:$PATH + source /Users/travis/miniconda3/bin/activate root conda config --add channels conda-forge conda config --set show_channel_urls true conda install --yes --quiet conda-forge-build-setup @@ -38,4 +39,4 @@ install: script: - conda build ./recipe - - ./ci_support/upload_or_check_non_existence.py ./recipe conda-forge --channel=main + - upload_or_check_non_existence ./recipe conda-forge --channel=main diff --git a/README.md b/README.md index 3e49c4fb..d7104200 100644 --- a/README.md +++ b/README.md @@ -14,25 +14,26 @@ Summary: A set of python modules for machine learning and data mining Installing scikit-learn ======================= -Installing scikit-learn from the conda-forge channel can be achieved by adding conda-forge to your channels with: +Installing `scikit-learn` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: ``` conda config --add channels conda-forge ``` -Once the conda-forge channel has been enabled, scikit-learn can be installed with: +Once the `conda-forge` channel has been enabled, `scikit-learn` can be installed with: ``` conda install scikit-learn ``` -It is possible to list all of the versions of scikit-learn available on your platform with: +It is possible to list all of the versions of `scikit-learn` available on your platform with: ``` conda search scikit-learn --channel conda-forge ``` + About conda-forge ================= @@ -51,8 +52,8 @@ packages to the [conda-forge](https://anaconda.org/conda-forge) To manage the continuous integration and simplify feedstock maintenance [conda-smithy](http://github.com/conda-forge/conda-smithy) has been developed. -Using the ``conda-forge.yml`` within this repository, it is possible to regenerate all of -this feedstock's supporting files (e.g. the CI configuration files) with ``conda smithy regenerate``. +Using the ``conda-forge.yml`` within this repository, it is possible to re-render all of +this feedstock's supporting files (e.g. the CI configuration files) with ``conda smithy rerender``. Terminology diff --git a/ci_support/checkout_merge_commit.sh b/ci_support/checkout_merge_commit.sh new file mode 100755 index 00000000..9528e4b3 --- /dev/null +++ b/ci_support/checkout_merge_commit.sh @@ -0,0 +1,27 @@ +#!/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/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index ab28f57d..eb37a6cb 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -47,19 +47,19 @@ source run_conda_forge_build_setup export CONDA_PY=27 set +x conda build /recipe_root --quiet || exit 1 - /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1 set -x export CONDA_NPY=111 export CONDA_PY=34 set +x conda build /recipe_root --quiet || exit 1 - /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1 set -x export CONDA_NPY=111 export CONDA_PY=35 set +x conda build /recipe_root --quiet || exit 1 - /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1 EOF diff --git a/ci_support/upload_or_check_non_existence.py b/ci_support/upload_or_check_non_existence.py deleted file mode 100755 index 681f144d..00000000 --- a/ci_support/upload_or_check_non_existence.py +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env python -from __future__ import print_function - -import argparse -import hashlib -import os -import subprocess -import sys - -from binstar_client.utils import get_binstar -import binstar_client.errors -import conda.config -from conda_build.metadata import MetaData -from conda_build.build import bldpkg_path - - -def built_distribution_already_exists(cli, meta, owner): - """ - Checks to see whether the built recipe (aka distribution) already - exists on the owner/user's binstar account. - - """ - distro_name = '{}/{}.tar.bz2'.format(conda.config.subdir, meta.dist()) - fname = bldpkg_path(meta) - try: - dist_info = cli.distribution(owner, meta.name(), meta.version(), - distro_name) - except binstar_client.errors.NotFound: - dist_info = {} - - exists = bool(dist_info) - # Unfortunately, we cannot check the md5 quality of the built distribution, as - # this will depend on fstat information such as modification date (because - # distributions are tar files). Therefore we can only assume that the distribution - # just built, and the one on anaconda.org are the same. -# if exists: -# md5_on_binstar = dist_info.get('md5') -# with open(fname, 'rb') as fh: -# md5_of_build = hashlib.md5(fh.read()).hexdigest() -# -# if md5_on_binstar != md5_of_build: -# raise ValueError('This build ({}), and the build already on binstar ' -# '({}) are different.'.format(md5_of_build, md5_on_binstar)) - return exists - - -def upload(cli, meta, owner, channels): - try: - with open('binstar.token', 'w') as fh: - fh.write(cli.token) - subprocess.check_call(['anaconda', '--quiet', '-t', 'binstar.token', - 'upload', bldpkg_path(meta), - '--user={}'.format(owner), - '--channel={}'.format(channels)], - env=os.environ) - finally: - os.remove('binstar.token') - - -def distribution_exists_on_channel(binstar_cli, meta, owner, channel='main'): - """ - Determine whether a distribution exists on a specific channel. - - Note from @pelson: As far as I can see, there is no easy way to do this on binstar. - - """ - fname = '{}/{}.tar.bz2'.format(conda.config.subdir, meta.dist()) - distributions_on_channel = [dist['basename'] for dist in - binstar_cli.show_channel(owner=owner, channel=channel)['files']] - return fname in distributions_on_channel - - -def add_distribution_to_channel(binstar_cli, meta, owner, channel='main'): - """ - Add a(n already existing) distribution on binstar to another channel. - - Note - the addition is done based on name and version - no build strings etc. - so if you have a foo-0.1-np18 and foo-0.1-np19 *both* will be added to the channel. - - """ - package_fname = '{}/{}.tar.bz2'.format(conda.config.subdir, meta.dist()) - binstar_cli.add_channel(channel, owner, meta.name(), meta.version()) - - -def main(): - token = os.environ.get('BINSTAR_TOKEN') - - description = ('Upload or check consistency of a built version of a ' - 'conda recipe with binstar. Note: The existence of the ' - 'BINSTAR_TOKEN environment variable determines ' - 'whether the upload should actually take place.') - parser = argparse.ArgumentParser(description=description) - parser.add_argument('recipe_dir', help='the conda recipe directory') - parser.add_argument('owner', help='the binstar owner/user') - parser.add_argument('--channel', help='the binstar channel', default='main') - args = parser.parse_args() - recipe_dir, owner, channel = args.recipe_dir, args.owner, args.channel - - cli = get_binstar(argparse.Namespace(token=token, site=None)) - meta = MetaData(recipe_dir) - if meta.skip(): - print("No upload to take place - this configuration was skipped in build/skip.") - return - exists = built_distribution_already_exists(cli, meta, owner) - if token: - on_channel = distribution_exists_on_channel(cli, meta, owner, channel) - if not exists: - upload(cli, meta, owner, channel) - print('Uploaded {}'.format(bldpkg_path(meta))) - elif not on_channel: - print('Adding distribution {} to {}\'s {} channel' - ''.format(bldpkg_path(meta), owner, channel)) - add_distribution_to_channel(cli, meta, owner, channel) - else: - print('Distribution {} already \nexists on {}\'s {} channel.' - ''.format(bldpkg_path(meta), owner, channel)) - else: - print("No BINSTAR_TOKEN present, so no upload is taking place. " - "The distribution just built {} already available on {}'s " - "{} channel.".format('is' if exists else 'is not', - owner, channel)) - -if __name__ == '__main__': - main() diff --git a/circle.yml b/circle.yml index 58649fa4..0c5dcdfe 100644 --- a/circle.yml +++ b/circle.yml @@ -1,3 +1,7 @@ +checkout: + post: + - ./ci_support/checkout_merge_commit.sh + machine: services: - docker From 220f980260bfef25cc61a4177aa803b1921a68ad Mon Sep 17 00:00:00 2001 From: conda-forge-admin Date: Wed, 12 Oct 2016 05:02:50 +0000 Subject: [PATCH 08/36] MNT: Updated the feedstock for conda-smithy version 1.3.2. --- .travis.yml | 7 +- README.md | 11 +- ci_support/checkout_merge_commit.sh | 27 +++++ ci_support/run_docker_build.sh | 6 +- ci_support/upload_or_check_non_existence.py | 124 -------------------- circle.yml | 4 + 6 files changed, 44 insertions(+), 135 deletions(-) create mode 100755 ci_support/checkout_merge_commit.sh delete mode 100755 ci_support/upload_or_check_non_existence.py diff --git a/.travis.yml b/.travis.yml index db29b0c9..066c3c8d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,10 @@ # This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yaml and/or the recipe/meta.yaml. +# update the conda-forge.yml and/or the recipe/meta.yaml. language: generic os: osx +osx_image: beta-xcode6.1 env: matrix: @@ -29,7 +30,7 @@ install: curl -O "${MINICONDA_URL}/${MINICONDA_FILE}" bash $MINICONDA_FILE -b - export PATH=/Users/travis/miniconda3/bin:$PATH + source /Users/travis/miniconda3/bin/activate root conda config --add channels conda-forge conda config --set show_channel_urls true conda install --yes --quiet conda-forge-build-setup @@ -38,4 +39,4 @@ install: script: - conda build ./recipe - - ./ci_support/upload_or_check_non_existence.py ./recipe conda-forge --channel=main + - upload_or_check_non_existence ./recipe conda-forge --channel=main diff --git a/README.md b/README.md index 3e49c4fb..d7104200 100644 --- a/README.md +++ b/README.md @@ -14,25 +14,26 @@ Summary: A set of python modules for machine learning and data mining Installing scikit-learn ======================= -Installing scikit-learn from the conda-forge channel can be achieved by adding conda-forge to your channels with: +Installing `scikit-learn` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: ``` conda config --add channels conda-forge ``` -Once the conda-forge channel has been enabled, scikit-learn can be installed with: +Once the `conda-forge` channel has been enabled, `scikit-learn` can be installed with: ``` conda install scikit-learn ``` -It is possible to list all of the versions of scikit-learn available on your platform with: +It is possible to list all of the versions of `scikit-learn` available on your platform with: ``` conda search scikit-learn --channel conda-forge ``` + About conda-forge ================= @@ -51,8 +52,8 @@ packages to the [conda-forge](https://anaconda.org/conda-forge) To manage the continuous integration and simplify feedstock maintenance [conda-smithy](http://github.com/conda-forge/conda-smithy) has been developed. -Using the ``conda-forge.yml`` within this repository, it is possible to regenerate all of -this feedstock's supporting files (e.g. the CI configuration files) with ``conda smithy regenerate``. +Using the ``conda-forge.yml`` within this repository, it is possible to re-render all of +this feedstock's supporting files (e.g. the CI configuration files) with ``conda smithy rerender``. Terminology diff --git a/ci_support/checkout_merge_commit.sh b/ci_support/checkout_merge_commit.sh new file mode 100755 index 00000000..9528e4b3 --- /dev/null +++ b/ci_support/checkout_merge_commit.sh @@ -0,0 +1,27 @@ +#!/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/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index dec80875..b3a79a71 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -47,19 +47,19 @@ source run_conda_forge_build_setup export CONDA_PY=27 set +x conda build /recipe_root --quiet || exit 1 - /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1 set -x export CONDA_NPY=110 export CONDA_PY=34 set +x conda build /recipe_root --quiet || exit 1 - /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1 set -x export CONDA_NPY=110 export CONDA_PY=35 set +x conda build /recipe_root --quiet || exit 1 - /feedstock_root/ci_support/upload_or_check_non_existence.py /recipe_root conda-forge --channel=main || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1 EOF diff --git a/ci_support/upload_or_check_non_existence.py b/ci_support/upload_or_check_non_existence.py deleted file mode 100755 index 681f144d..00000000 --- a/ci_support/upload_or_check_non_existence.py +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env python -from __future__ import print_function - -import argparse -import hashlib -import os -import subprocess -import sys - -from binstar_client.utils import get_binstar -import binstar_client.errors -import conda.config -from conda_build.metadata import MetaData -from conda_build.build import bldpkg_path - - -def built_distribution_already_exists(cli, meta, owner): - """ - Checks to see whether the built recipe (aka distribution) already - exists on the owner/user's binstar account. - - """ - distro_name = '{}/{}.tar.bz2'.format(conda.config.subdir, meta.dist()) - fname = bldpkg_path(meta) - try: - dist_info = cli.distribution(owner, meta.name(), meta.version(), - distro_name) - except binstar_client.errors.NotFound: - dist_info = {} - - exists = bool(dist_info) - # Unfortunately, we cannot check the md5 quality of the built distribution, as - # this will depend on fstat information such as modification date (because - # distributions are tar files). Therefore we can only assume that the distribution - # just built, and the one on anaconda.org are the same. -# if exists: -# md5_on_binstar = dist_info.get('md5') -# with open(fname, 'rb') as fh: -# md5_of_build = hashlib.md5(fh.read()).hexdigest() -# -# if md5_on_binstar != md5_of_build: -# raise ValueError('This build ({}), and the build already on binstar ' -# '({}) are different.'.format(md5_of_build, md5_on_binstar)) - return exists - - -def upload(cli, meta, owner, channels): - try: - with open('binstar.token', 'w') as fh: - fh.write(cli.token) - subprocess.check_call(['anaconda', '--quiet', '-t', 'binstar.token', - 'upload', bldpkg_path(meta), - '--user={}'.format(owner), - '--channel={}'.format(channels)], - env=os.environ) - finally: - os.remove('binstar.token') - - -def distribution_exists_on_channel(binstar_cli, meta, owner, channel='main'): - """ - Determine whether a distribution exists on a specific channel. - - Note from @pelson: As far as I can see, there is no easy way to do this on binstar. - - """ - fname = '{}/{}.tar.bz2'.format(conda.config.subdir, meta.dist()) - distributions_on_channel = [dist['basename'] for dist in - binstar_cli.show_channel(owner=owner, channel=channel)['files']] - return fname in distributions_on_channel - - -def add_distribution_to_channel(binstar_cli, meta, owner, channel='main'): - """ - Add a(n already existing) distribution on binstar to another channel. - - Note - the addition is done based on name and version - no build strings etc. - so if you have a foo-0.1-np18 and foo-0.1-np19 *both* will be added to the channel. - - """ - package_fname = '{}/{}.tar.bz2'.format(conda.config.subdir, meta.dist()) - binstar_cli.add_channel(channel, owner, meta.name(), meta.version()) - - -def main(): - token = os.environ.get('BINSTAR_TOKEN') - - description = ('Upload or check consistency of a built version of a ' - 'conda recipe with binstar. Note: The existence of the ' - 'BINSTAR_TOKEN environment variable determines ' - 'whether the upload should actually take place.') - parser = argparse.ArgumentParser(description=description) - parser.add_argument('recipe_dir', help='the conda recipe directory') - parser.add_argument('owner', help='the binstar owner/user') - parser.add_argument('--channel', help='the binstar channel', default='main') - args = parser.parse_args() - recipe_dir, owner, channel = args.recipe_dir, args.owner, args.channel - - cli = get_binstar(argparse.Namespace(token=token, site=None)) - meta = MetaData(recipe_dir) - if meta.skip(): - print("No upload to take place - this configuration was skipped in build/skip.") - return - exists = built_distribution_already_exists(cli, meta, owner) - if token: - on_channel = distribution_exists_on_channel(cli, meta, owner, channel) - if not exists: - upload(cli, meta, owner, channel) - print('Uploaded {}'.format(bldpkg_path(meta))) - elif not on_channel: - print('Adding distribution {} to {}\'s {} channel' - ''.format(bldpkg_path(meta), owner, channel)) - add_distribution_to_channel(cli, meta, owner, channel) - else: - print('Distribution {} already \nexists on {}\'s {} channel.' - ''.format(bldpkg_path(meta), owner, channel)) - else: - print("No BINSTAR_TOKEN present, so no upload is taking place. " - "The distribution just built {} already available on {}'s " - "{} channel.".format('is' if exists else 'is not', - owner, channel)) - -if __name__ == '__main__': - main() diff --git a/circle.yml b/circle.yml index 58649fa4..0c5dcdfe 100644 --- a/circle.yml +++ b/circle.yml @@ -1,3 +1,7 @@ +checkout: + post: + - ./ci_support/checkout_merge_commit.sh + machine: services: - docker From 6c7ae29ab6df7c74cf1f8f780bead583e6a21b9b Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Wed, 2 Nov 2016 23:49:58 -0400 Subject: [PATCH 09/36] MNT: Re-rendered with conda-smithy 1.4.6 --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 61f1da8b..48e1bc98 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,9 +25,9 @@ before_install: install: - | - MINICONDA_URL="http://repo.continuum.io/miniconda" + MINICONDA_URL="https://repo.continuum.io/miniconda" MINICONDA_FILE="Miniconda3-latest-MacOSX-x86_64.sh" - curl -O "${MINICONDA_URL}/${MINICONDA_FILE}" + curl -L -O "${MINICONDA_URL}/${MINICONDA_FILE}" bash $MINICONDA_FILE -b source /Users/travis/miniconda3/bin/activate root From 4fce354ca187ac0a3f6ed50b35e8552685c50eb8 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Wed, 2 Nov 2016 23:52:22 -0400 Subject: [PATCH 10/36] MNT: Re-rendered with conda-smithy 1.4.6 --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 066c3c8d..550c8b73 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,9 +25,9 @@ before_install: install: - | - MINICONDA_URL="http://repo.continuum.io/miniconda" + MINICONDA_URL="https://repo.continuum.io/miniconda" MINICONDA_FILE="Miniconda3-latest-MacOSX-x86_64.sh" - curl -O "${MINICONDA_URL}/${MINICONDA_FILE}" + curl -L -O "${MINICONDA_URL}/${MINICONDA_FILE}" bash $MINICONDA_FILE -b source /Users/travis/miniconda3/bin/activate root From 465208a3b8eda56bf8ea8f64b369a7db2562acf8 Mon Sep 17 00:00:00 2001 From: conda-forge-admin Date: Wed, 7 Dec 2016 02:07:15 +0000 Subject: [PATCH 11/36] MNT: Updated some of the pinned versions --- recipe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index eab29cff..a2349cbd 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -12,7 +12,7 @@ source: sha256: 6f871ab07657becb3cca158dc4af96a1a14c0a360add04664fba325da43537fa build: - number: 202 + number: 203 # We lack openblas on Windows, and therefore can't build numpy there either currently. skip: true # [win or np!=111] features: @@ -24,7 +24,7 @@ requirements: - python - setuptools - blas 1.1 {{ variant }} - - openblas 0.2.18|0.2.18.* + - openblas 0.2.19|0.2.19.* - numpy x.x - scipy - nose @@ -32,7 +32,7 @@ requirements: run: - python - blas 1.1 {{ variant }} - - openblas 0.2.18|0.2.18.* + - openblas 0.2.19|0.2.19.* - numpy x.x - scipy From dbd572ef2f33b70d7f9fbb08325ced6017e1c2d7 Mon Sep 17 00:00:00 2001 From: conda-forge-admin Date: Wed, 7 Dec 2016 02:07:18 +0000 Subject: [PATCH 12/36] MNT: Updated some of the pinned versions --- recipe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index ac1f977c..4dc3ad91 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -12,7 +12,7 @@ source: sha256: 6f871ab07657becb3cca158dc4af96a1a14c0a360add04664fba325da43537fa build: - number: 202 + number: 203 # We lack openblas on Windows, and therefore can't build numpy there either currently. skip: true # [win or np!=110] features: @@ -24,7 +24,7 @@ requirements: - python - setuptools - blas 1.1 {{ variant }} - - openblas 0.2.18|0.2.18.* + - openblas 0.2.19|0.2.19.* - numpy x.x - scipy - nose @@ -32,7 +32,7 @@ requirements: run: - python - blas 1.1 {{ variant }} - - openblas 0.2.18|0.2.18.* + - openblas 0.2.19|0.2.19.* - numpy x.x - scipy From 6a218042a58d0d21c19b9fcb29668c49c7d9a7d4 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Sun, 8 Jan 2017 00:45:04 -0500 Subject: [PATCH 13/36] MNT: Re-rendered with conda-smithy 1.7.0 --- .gitattributes | 5 +++++ README.md | 25 ++++++++++++------------- 2 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..288029dc --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +* text=auto + +meta.yaml text eol=lf +build.sh text eol=lf +bld.bat text eol=crlf diff --git a/README.md b/README.md index d7104200..a58f6964 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,18 @@ Summary: A set of python modules for machine learning and data mining +Current build status +==================== + +Linux: [![Circle CI](https://circleci.com/gh/conda-forge/scikit-learn-feedstock.svg?style=shield)](https://circleci.com/gh/conda-forge/scikit-learn-feedstock) +OSX: [![TravisCI](https://travis-ci.org/conda-forge/scikit-learn-feedstock.svg?branch=master)](https://travis-ci.org/conda-forge/scikit-learn-feedstock) +Windows: ![](https://cdn.rawgit.com/conda-forge/conda-smithy/90845bba35bec53edac7a16638aa4d77217a3713/conda_smithy/static/disabled.svg) + +Current release info +==================== +Version: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/scikit-learn/badges/version.svg)](https://anaconda.org/conda-forge/scikit-learn) +Downloads: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/scikit-learn/badges/downloads.svg)](https://anaconda.org/conda-forge/scikit-learn) + Installing scikit-learn ======================= @@ -33,7 +45,6 @@ conda search scikit-learn --channel conda-forge ``` - About conda-forge ================= @@ -68,18 +79,6 @@ Terminology **conda-forge** - the place where the feedstock and smithy live and work to produce the finished article (built conda distributions) -Current build status -==================== - -Linux: [![Circle CI](https://circleci.com/gh/conda-forge/scikit-learn-feedstock.svg?style=shield)](https://circleci.com/gh/conda-forge/scikit-learn-feedstock) -OSX: [![TravisCI](https://travis-ci.org/conda-forge/scikit-learn-feedstock.svg?branch=master)](https://travis-ci.org/conda-forge/scikit-learn-feedstock) -Windows: ![](https://cdn.rawgit.com/conda-forge/conda-smithy/90845bba35bec53edac7a16638aa4d77217a3713/conda_smithy/static/disabled.svg) - -Current release info -==================== -Version: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/scikit-learn/badges/version.svg)](https://anaconda.org/conda-forge/scikit-learn) -Downloads: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/scikit-learn/badges/downloads.svg)](https://anaconda.org/conda-forge/scikit-learn) - Updating scikit-learn-feedstock =============================== From 296d01f50bac183a7fb2fdc1585b105af4422790 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Sun, 8 Jan 2017 00:48:08 -0500 Subject: [PATCH 14/36] MNT: Re-rendered with conda-smithy 1.7.0 --- .gitattributes | 5 +++++ README.md | 25 ++++++++++++------------- 2 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..288029dc --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +* text=auto + +meta.yaml text eol=lf +build.sh text eol=lf +bld.bat text eol=crlf diff --git a/README.md b/README.md index d7104200..a58f6964 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,18 @@ Summary: A set of python modules for machine learning and data mining +Current build status +==================== + +Linux: [![Circle CI](https://circleci.com/gh/conda-forge/scikit-learn-feedstock.svg?style=shield)](https://circleci.com/gh/conda-forge/scikit-learn-feedstock) +OSX: [![TravisCI](https://travis-ci.org/conda-forge/scikit-learn-feedstock.svg?branch=master)](https://travis-ci.org/conda-forge/scikit-learn-feedstock) +Windows: ![](https://cdn.rawgit.com/conda-forge/conda-smithy/90845bba35bec53edac7a16638aa4d77217a3713/conda_smithy/static/disabled.svg) + +Current release info +==================== +Version: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/scikit-learn/badges/version.svg)](https://anaconda.org/conda-forge/scikit-learn) +Downloads: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/scikit-learn/badges/downloads.svg)](https://anaconda.org/conda-forge/scikit-learn) + Installing scikit-learn ======================= @@ -33,7 +45,6 @@ conda search scikit-learn --channel conda-forge ``` - About conda-forge ================= @@ -68,18 +79,6 @@ Terminology **conda-forge** - the place where the feedstock and smithy live and work to produce the finished article (built conda distributions) -Current build status -==================== - -Linux: [![Circle CI](https://circleci.com/gh/conda-forge/scikit-learn-feedstock.svg?style=shield)](https://circleci.com/gh/conda-forge/scikit-learn-feedstock) -OSX: [![TravisCI](https://travis-ci.org/conda-forge/scikit-learn-feedstock.svg?branch=master)](https://travis-ci.org/conda-forge/scikit-learn-feedstock) -Windows: ![](https://cdn.rawgit.com/conda-forge/conda-smithy/90845bba35bec53edac7a16638aa4d77217a3713/conda_smithy/static/disabled.svg) - -Current release info -==================== -Version: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/scikit-learn/badges/version.svg)](https://anaconda.org/conda-forge/scikit-learn) -Downloads: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/scikit-learn/badges/downloads.svg)](https://anaconda.org/conda-forge/scikit-learn) - Updating scikit-learn-feedstock =============================== From d2a0fc33cd47b95d02a36399de92ccbfab7bb1c0 Mon Sep 17 00:00:00 2001 From: astaric Date: Fri, 20 Jan 2017 13:30:00 +0100 Subject: [PATCH 15/36] MNT: Re-rendered with conda-smithy 2.0.0 --- .travis.yml | 12 +++++++----- ci_support/run_docker_build.sh | 19 ++++++------------- recipe/meta.yaml | 4 ++-- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index 48e1bc98..12f9e2e2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,14 +4,14 @@ language: generic os: osx -osx_image: beta-xcode6.1 +osx_image: xcode6.4 env: matrix: - - CONDA_NPY=111 CONDA_PY=27 - - CONDA_NPY=111 CONDA_PY=34 - - CONDA_NPY=111 CONDA_PY=35 + - CONDA_NPY=112 CONDA_PY=27 + - CONDA_NPY=112 CONDA_PY=35 + - CONDA_NPY=112 CONDA_PY=36 global: # The BINSTAR_TOKEN secure variable. This is defined canonically in conda-forge.yml. - secure: "cXmMh0qV5bhXevVtdcMf8VOVIG0zOA0cQRihCsOaDG0yPSP1tW0N40llDkDhjk80wIKMMzuwofaarESzW5i5+GTbvDMmzpeHZAEoXYUIsNTxNJMX7KcvxNdeVIGNM8tcM3a4Zp/u0cvOjDs6xSHeZPdNit3x8rDaARASwU+YZnIIY8Iieizo3LmWxRghjOdFYnr0frOshy38PI+l1ywYqsN/L8+4GqxWtkTuzK3fnI3MlwfDC8tVImjXuukHK3J78SsDdnbTBJlV0tcNV8iGa08Md55bgv9HEgFbHRSunc22lLjFRHMT10Hvl0H0HdylYkQTKC7iOwIw9D3kIp4uR+g0rDKzBuuYF+jV65+UhR5TKMiH4QIiMxBMLpB8QU1Ey58L2X2t1j06d+VZYp2UiubGNvxjXun9tWFnIotFoho1bfW0gUURNvk+fEs0O/0LpReTweNVJLc1JakT7eitFm5gaV8CNzAsNcBCpPsHWiCMQm+FD3D57q+DIJ4ONl0OOBYSDNkziJEvgB0XyV7UpGobm0xu/JTPg+Qq2op3GDxgCfILqhApTEVkMKQJv+o5yHO/JIonxCbE41xIotw8JjhQ2VROFLPGh3F3buiJ26VUbI41yoN20D4y0Bvj7HPdiBHVWNcUmkj1xYZckivnxjCE5eth/TBJiK9gqjgRw6w=" @@ -19,7 +19,7 @@ env: before_install: # Remove homebrew. - - brew remove --force $(brew list) + - brew remove --force --ignore-dependencies $(brew list) - brew cleanup -s - rm -rf $(brew --cache) @@ -31,6 +31,8 @@ install: bash $MINICONDA_FILE -b source /Users/travis/miniconda3/bin/activate root + conda config --remove channels defaults + conda config --add channels defaults conda config --add channels conda-forge conda config --set show_channel_urls true conda install --yes --quiet conda-forge-build-setup diff --git a/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index eb37a6cb..0ec89d13 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -14,7 +14,7 @@ config=$(cat < Date: Fri, 27 Jan 2017 10:38:42 +0100 Subject: [PATCH 16/36] Update maintainers --- recipe/meta.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 3e6e9490..5e86e56a 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -54,5 +54,6 @@ about: extra: recipe-maintainers: - amueller + - astaric - jakirkham - ogrisel From 93560e6e0c352e38767370da2aeb69cfd2f38c2c Mon Sep 17 00:00:00 2001 From: astaric Date: Sun, 5 Feb 2017 23:58:46 +0100 Subject: [PATCH 17/36] MNT: Re-rendered with conda-smithy 2.0.1 --- .travis.yml | 18 +++++++++++++++--- LICENSE | 2 +- ci_support/run_docker_build.sh | 9 ++++++++- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 12f9e2e2..2b881da0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,17 +19,29 @@ env: before_install: # Remove homebrew. - - brew remove --force --ignore-dependencies $(brew list) - - brew cleanup -s - - rm -rf $(brew --cache) + - | + 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 config --remove channels defaults conda config --add channels defaults diff --git a/LICENSE b/LICENSE index 04ad21b5..7f5c3634 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,5 @@ BSD 3-clause license -Copyright (c) conda-forge +Copyright (c) 2015-2017, 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/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index 0ec89d13..75fd79d1 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -41,7 +41,7 @@ conda clean --lock conda install --yes --quiet conda-forge-build-setup source run_conda_forge_build_setup -# Embarking on 2 case(s). +# Embarking on 3 case(s). set -x export CONDA_NPY=112 export CONDA_PY=27 @@ -55,4 +55,11 @@ source run_conda_forge_build_setup set +x conda build /recipe_root --quiet || exit 1 upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1 + + set -x + export CONDA_NPY=112 + export CONDA_PY=36 + set +x + conda build /recipe_root --quiet || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1 EOF From f138c0c73230cc2fdd492e12e4712850df3acb93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= Date: Tue, 28 Mar 2017 18:10:14 +0200 Subject: [PATCH 18/36] Skip failing tests to allow 0.18.1 release on conda-forge (#40) Add ocefpaf and lesteve as recipe maintainers. --- recipe/meta.yaml | 11 ++++-- recipe/skip-tests-failing-on-0.18.1.patch | 42 +++++++++++++++++++++++ 2 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 recipe/skip-tests-failing-on-0.18.1.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5e86e56a..c57fc554 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.18" %} +{% set version = "0.18.1" %} {% set variant = "openblas" %} @@ -9,10 +9,13 @@ package: source: fn: scikit-learn-{{ version }}.tar.gz url: https://github.com/scikit-learn/scikit-learn/archive/{{ version }}.tar.gz - sha256: 6f871ab07657becb3cca158dc4af96a1a14c0a360add04664fba325da43537fa + sha256: f861b988089b0ccc74c0be10a105ed2fe34a2a608d6f19e67147b4da26e39ac3 + patches: + # TODO: Remove this patch when 0.19 is released + - skip-tests-failing-on-0.18.1.patch build: - number: 204 + number: 200 # We lack openblas on Windows, and therefore can't build numpy there either currently. skip: true # [win or np!=112] features: @@ -57,3 +60,5 @@ extra: - astaric - jakirkham - ogrisel + - ocefpaf + - lesteve diff --git a/recipe/skip-tests-failing-on-0.18.1.patch b/recipe/skip-tests-failing-on-0.18.1.patch new file mode 100644 index 00000000..f4b86425 --- /dev/null +++ b/recipe/skip-tests-failing-on-0.18.1.patch @@ -0,0 +1,42 @@ +diff --git a/sklearn/linear_model/tests/test_ridge.py b/sklearn/linear_model/tests/test_ridge.py +index c6f0764..3676425 100644 +--- a/sklearn/linear_model/tests/test_ridge.py ++++ b/sklearn/linear_model/tests/test_ridge.py +@@ -292,6 +292,16 @@ def test_ridge_individual_penalties(): + + + def _test_ridge_loo(filter_): ++ from sklearn.utils.testing import SkipTest ++ from sklearn import __version__ ++ # Skipping this test to be able to release 0.18.1 on conda-forge ++ if __version__ == '0.18.1': ++ raise SkipTest( ++ 'This test is known to fail with OpenBLAS and some CPU ' ++ 'architectures. Look at ' ++ 'https://github.com/scikit-learn/scikit-learn/issues/7921 ' ++ 'for more details') ++ + # test that can work with both dense or sparse matrices + n_samples = X_diabetes.shape[0] + +diff --git a/sklearn/manifold/tests/test_t_sne.py b/sklearn/manifold/tests/test_t_sne.py +index 3be02f3..d3fbca2 100644 +--- a/sklearn/manifold/tests/test_t_sne.py ++++ b/sklearn/manifold/tests/test_t_sne.py +@@ -564,6 +564,16 @@ def test_index_offset(): + + + def test_n_iter_without_progress(): ++ from sklearn.utils.testing import SkipTest ++ from sklearn import __version__ ++ # Skipping this test on OSX to be able to release 0.18.1 on conda-forge ++ if __version__ == '0.18.1' and sys.platform == 'darwin': ++ raise SkipTest( ++ 'This test is known to fail with OpenBLAS on OSX' ++ 'Look at ' ++ 'https://github.com/scikit-learn/scikit-learn/issues/8618 ' ++ 'for more details') ++ + # Make sure that the parameter n_iter_without_progress is used correctly + random_state = check_random_state(0) + X = random_state.randn(100, 2) From b0a3d5b6afa20e0739289c7af07f4e8bcf3f01ce Mon Sep 17 00:00:00 2001 From: conda-forge-admin Date: Sat, 1 Apr 2017 01:37:35 +0000 Subject: [PATCH 19/36] MNT: Updated the feedstock for conda-smithy version 2.2.2. --- .travis.yml | 5 +++++ ci_support/fast_finish_ci_pr_build.sh | 4 ++++ ci_support/run_docker_build.sh | 11 ++++++++++- circle.yml | 1 + 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100755 ci_support/fast_finish_ci_pr_build.sh diff --git a/.travis.yml b/.travis.yml index 2b881da0..f08f906b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,11 @@ env: before_install: + # Fast finish the PR. + - | + (curl https://raw.githubusercontent.com/conda-forge/conda-forge-build-setup-feedstock/master/recipe/ff_ci_pr_build.py | \ + python - -v --ci "travis" "${TRAVIS_REPO_SLUG}" "${TRAVIS_BUILD_NUMBER}" "${TRAVIS_PULL_REQUEST}") || exit 1 + # Remove homebrew. - | echo "" diff --git a/ci_support/fast_finish_ci_pr_build.sh b/ci_support/fast_finish_ci_pr_build.sh new file mode 100755 index 00000000..463c27fb --- /dev/null +++ b/ci_support/fast_finish_ci_pr_build.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +curl https://raw.githubusercontent.com/conda-forge/conda-forge-build-setup-feedstock/master/recipe/ff_ci_pr_build.py | \ + python - -v --ci "circle" "${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}" "${CIRCLE_BUILD_NUM}" "${CIRCLE_PR_NUMBER}" diff --git a/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index 75fd79d1..61de2266 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -24,12 +24,14 @@ show_channel_urls: true CONDARC ) +rm -f "$FEEDSTOCK_ROOT/build_artefacts/conda-forge-build-done" + cat << EOF | docker run -i \ -v "${RECIPE_ROOT}":/recipe_root \ -v "${FEEDSTOCK_ROOT}":/feedstock_root \ -a stdin -a stdout -a stderr \ condaforge/linux-anvil \ - bash || exit $? + bash || exit 1 export BINSTAR_TOKEN=${BINSTAR_TOKEN} export PYTHONUNBUFFERED=1 @@ -62,4 +64,11 @@ source run_conda_forge_build_setup set +x conda build /recipe_root --quiet || exit 1 upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1 +touch /feedstock_root/build_artefacts/conda-forge-build-done EOF + +# double-check that the build got to the end +# see https://github.com/conda-forge/conda-smithy/pull/337 +# for a possible fix +set -x +test -f "$FEEDSTOCK_ROOT/build_artefacts/conda-forge-build-done" || exit 1 diff --git a/circle.yml b/circle.yml index 0c5dcdfe..421809c1 100644 --- a/circle.yml +++ b/circle.yml @@ -1,5 +1,6 @@ checkout: post: + - ./ci_support/fast_finish_ci_pr_build.sh - ./ci_support/checkout_merge_commit.sh machine: From 49b149a6832654a0bf6e1c851270f03e365ec89b Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Fri, 9 Jun 2017 01:51:12 -0400 Subject: [PATCH 20/36] MNT: Re-rendered with conda-smithy 2.3.1 --- ci_support/run_docker_build.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index 61de2266..3f1dc3c5 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -24,16 +24,30 @@ show_channel_urls: true CONDARC ) +# In order for the conda-build process in the container to write to the mounted +# volumes, we need to run with the same id as the host machine, which is +# normally the owner of the mounted volumes, or at least has write permission +HOST_USER_ID=$(id -u) +# Check if docker-machine is being used (normally on OSX) and get the uid from +# the VM +if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then + HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) +fi + rm -f "$FEEDSTOCK_ROOT/build_artefacts/conda-forge-build-done" cat << EOF | docker run -i \ -v "${RECIPE_ROOT}":/recipe_root \ -v "${FEEDSTOCK_ROOT}":/feedstock_root \ + -e HOST_USER_ID="${HOST_USER_ID}" \ -a stdin -a stdout -a stderr \ condaforge/linux-anvil \ bash || exit 1 +set -e +set +x export BINSTAR_TOKEN=${BINSTAR_TOKEN} +set -x export PYTHONUNBUFFERED=1 echo "$config" > ~/.condarc From 07f79b7522fd7c56001b6d9343e190db41c24ff0 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Fri, 9 Jun 2017 01:53:01 -0400 Subject: [PATCH 21/36] Switch master from NumPy 1.12 to 1.13 --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index c57fc554..b4969670 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -17,7 +17,7 @@ source: build: number: 200 # We lack openblas on Windows, and therefore can't build numpy there either currently. - skip: true # [win or np!=112] + skip: true # [win or np!=113] features: - blas_{{ variant }} From 5bff7d4d1943fd42bab627ab301b3c48c1fb9a99 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Fri, 9 Jun 2017 11:05:20 -0400 Subject: [PATCH 22/36] MNT: Re-rendered with conda-smithy 2.3.1 Re-render to add NumPy 1.13 support. --- .travis.yml | 6 +++--- ci_support/run_docker_build.sh | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index f08f906b..49bf6e58 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,9 +9,9 @@ osx_image: xcode6.4 env: matrix: - - CONDA_NPY=112 CONDA_PY=27 - - CONDA_NPY=112 CONDA_PY=35 - - CONDA_NPY=112 CONDA_PY=36 + - CONDA_NPY=113 CONDA_PY=27 + - CONDA_NPY=113 CONDA_PY=35 + - CONDA_NPY=113 CONDA_PY=36 global: # The BINSTAR_TOKEN secure variable. This is defined canonically in conda-forge.yml. - secure: "cXmMh0qV5bhXevVtdcMf8VOVIG0zOA0cQRihCsOaDG0yPSP1tW0N40llDkDhjk80wIKMMzuwofaarESzW5i5+GTbvDMmzpeHZAEoXYUIsNTxNJMX7KcvxNdeVIGNM8tcM3a4Zp/u0cvOjDs6xSHeZPdNit3x8rDaARASwU+YZnIIY8Iieizo3LmWxRghjOdFYnr0frOshy38PI+l1ywYqsN/L8+4GqxWtkTuzK3fnI3MlwfDC8tVImjXuukHK3J78SsDdnbTBJlV0tcNV8iGa08Md55bgv9HEgFbHRSunc22lLjFRHMT10Hvl0H0HdylYkQTKC7iOwIw9D3kIp4uR+g0rDKzBuuYF+jV65+UhR5TKMiH4QIiMxBMLpB8QU1Ey58L2X2t1j06d+VZYp2UiubGNvxjXun9tWFnIotFoho1bfW0gUURNvk+fEs0O/0LpReTweNVJLc1JakT7eitFm5gaV8CNzAsNcBCpPsHWiCMQm+FD3D57q+DIJ4ONl0OOBYSDNkziJEvgB0XyV7UpGobm0xu/JTPg+Qq2op3GDxgCfILqhApTEVkMKQJv+o5yHO/JIonxCbE41xIotw8JjhQ2VROFLPGh3F3buiJ26VUbI41yoN20D4y0Bvj7HPdiBHVWNcUmkj1xYZckivnxjCE5eth/TBJiK9gqjgRw6w=" diff --git a/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index 3f1dc3c5..912b4f77 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -59,21 +59,21 @@ source run_conda_forge_build_setup # Embarking on 3 case(s). set -x - export CONDA_NPY=112 + export CONDA_NPY=113 export CONDA_PY=27 set +x conda build /recipe_root --quiet || exit 1 upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1 set -x - export CONDA_NPY=112 + export CONDA_NPY=113 export CONDA_PY=35 set +x conda build /recipe_root --quiet || exit 1 upload_or_check_non_existence /recipe_root conda-forge --channel=main || exit 1 set -x - export CONDA_NPY=112 + export CONDA_NPY=113 export CONDA_PY=36 set +x conda build /recipe_root --quiet || exit 1 From 5e54da22c8066d6bfe86a7aa21057bb8875f0c85 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Mon, 12 Jun 2017 04:23:49 -0400 Subject: [PATCH 23/36] Apply some patches for NumPy 1.13 support --- recipe/PR_7946.diff | 34 ++++++++++++++++++++++++++++++++++ recipe/PR_8355.diff | 13 +++++++++++++ recipe/meta.yaml | 3 +++ 3 files changed, 50 insertions(+) create mode 100644 recipe/PR_7946.diff create mode 100644 recipe/PR_8355.diff diff --git a/recipe/PR_7946.diff b/recipe/PR_7946.diff new file mode 100644 index 00000000..10c5f7d9 --- /dev/null +++ b/recipe/PR_7946.diff @@ -0,0 +1,34 @@ +diff --git a/sklearn/model_selection/tests/test_split.py b/sklearn/model_selection/tests/test_split.py +index fba323492be..601e9b259c5 100644 +--- a/sklearn/model_selection/tests/test_split.py ++++ b/sklearn/model_selection/tests/test_split.py +@@ -1028,16 +1028,23 @@ def test_cv_iterable_wrapper(): + # Since the wrapped iterable is enlisted and stored, + # split can be called any number of times to produce + # consistent results. +- assert_array_equal(list(kf_iter_wrapped.split(X, y)), +- list(kf_iter_wrapped.split(X, y))) ++ np.testing.assert_equal(list(kf_iter_wrapped.split(X, y)), ++ list(kf_iter_wrapped.split(X, y))) + # If the splits are randomized, successive calls to split yields different + # results + kf_randomized_iter = KFold(n_splits=5, shuffle=True).split(X, y) + kf_randomized_iter_wrapped = check_cv(kf_randomized_iter) +- assert_array_equal(list(kf_randomized_iter_wrapped.split(X, y)), +- list(kf_randomized_iter_wrapped.split(X, y))) +- assert_true(np.any(np.array(list(kf_iter_wrapped.split(X, y))) != +- np.array(list(kf_randomized_iter_wrapped.split(X, y))))) ++ np.testing.assert_equal(list(kf_randomized_iter_wrapped.split(X, y)), ++ list(kf_randomized_iter_wrapped.split(X, y))) ++ ++ try: ++ np.testing.assert_equal(list(kf_iter_wrapped.split(X, y)), ++ list(kf_randomized_iter_wrapped.split(X, y))) ++ splits_are_equal = True ++ except AssertionError: ++ splits_are_equal = False ++ assert_false(splits_are_equal, "If the splits are randomized, " ++ "successive calls to split should yield different results") + + + def test_group_kfold(): diff --git a/recipe/PR_8355.diff b/recipe/PR_8355.diff new file mode 100644 index 00000000..bc5c31ed --- /dev/null +++ b/recipe/PR_8355.diff @@ -0,0 +1,13 @@ +diff --git a/sklearn/gaussian_process/kernels.py b/sklearn/gaussian_process/kernels.py +index d1a1d6b3445..b68b6a1f9f5 100644 +--- a/sklearn/gaussian_process/kernels.py ++++ b/sklearn/gaussian_process/kernels.py +@@ -1852,7 +1852,7 @@ def diag(self, X): + Diagonal of kernel k(X, X) + """ + # We have to fall back to slow way of computing diagonal +- return np.apply_along_axis(self, 1, X)[:, 0] ++ return np.apply_along_axis(self, 1, X).ravel() + + def is_stationary(self): + """Returns whether the kernel is stationary. """ diff --git a/recipe/meta.yaml b/recipe/meta.yaml index b4969670..c6be51c2 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -13,6 +13,9 @@ source: patches: # TODO: Remove this patch when 0.19 is released - skip-tests-failing-on-0.18.1.patch + # TODO: Remove this patch when 0.19 is released + - PR_7946.diff + - PR_8355.diff build: number: 200 From ac7b256ceb3e164446b3a5fbaabf89a00f964d0d Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Tue, 20 Jun 2017 23:41:57 -0400 Subject: [PATCH 24/36] Drop NumPy 1.13 patches These are included in the patch release. So we no longer need to apply the patches ourselves. --- recipe/PR_7946.diff | 34 ---------------------------------- recipe/PR_8355.diff | 13 ------------- recipe/meta.yaml | 3 --- 3 files changed, 50 deletions(-) delete mode 100644 recipe/PR_7946.diff delete mode 100644 recipe/PR_8355.diff diff --git a/recipe/PR_7946.diff b/recipe/PR_7946.diff deleted file mode 100644 index 10c5f7d9..00000000 --- a/recipe/PR_7946.diff +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/sklearn/model_selection/tests/test_split.py b/sklearn/model_selection/tests/test_split.py -index fba323492be..601e9b259c5 100644 ---- a/sklearn/model_selection/tests/test_split.py -+++ b/sklearn/model_selection/tests/test_split.py -@@ -1028,16 +1028,23 @@ def test_cv_iterable_wrapper(): - # Since the wrapped iterable is enlisted and stored, - # split can be called any number of times to produce - # consistent results. -- assert_array_equal(list(kf_iter_wrapped.split(X, y)), -- list(kf_iter_wrapped.split(X, y))) -+ np.testing.assert_equal(list(kf_iter_wrapped.split(X, y)), -+ list(kf_iter_wrapped.split(X, y))) - # If the splits are randomized, successive calls to split yields different - # results - kf_randomized_iter = KFold(n_splits=5, shuffle=True).split(X, y) - kf_randomized_iter_wrapped = check_cv(kf_randomized_iter) -- assert_array_equal(list(kf_randomized_iter_wrapped.split(X, y)), -- list(kf_randomized_iter_wrapped.split(X, y))) -- assert_true(np.any(np.array(list(kf_iter_wrapped.split(X, y))) != -- np.array(list(kf_randomized_iter_wrapped.split(X, y))))) -+ np.testing.assert_equal(list(kf_randomized_iter_wrapped.split(X, y)), -+ list(kf_randomized_iter_wrapped.split(X, y))) -+ -+ try: -+ np.testing.assert_equal(list(kf_iter_wrapped.split(X, y)), -+ list(kf_randomized_iter_wrapped.split(X, y))) -+ splits_are_equal = True -+ except AssertionError: -+ splits_are_equal = False -+ assert_false(splits_are_equal, "If the splits are randomized, " -+ "successive calls to split should yield different results") - - - def test_group_kfold(): diff --git a/recipe/PR_8355.diff b/recipe/PR_8355.diff deleted file mode 100644 index bc5c31ed..00000000 --- a/recipe/PR_8355.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/sklearn/gaussian_process/kernels.py b/sklearn/gaussian_process/kernels.py -index d1a1d6b3445..b68b6a1f9f5 100644 ---- a/sklearn/gaussian_process/kernels.py -+++ b/sklearn/gaussian_process/kernels.py -@@ -1852,7 +1852,7 @@ def diag(self, X): - Diagonal of kernel k(X, X) - """ - # We have to fall back to slow way of computing diagonal -- return np.apply_along_axis(self, 1, X)[:, 0] -+ return np.apply_along_axis(self, 1, X).ravel() - - def is_stationary(self): - """Returns whether the kernel is stationary. """ diff --git a/recipe/meta.yaml b/recipe/meta.yaml index c6be51c2..b4969670 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -13,9 +13,6 @@ source: patches: # TODO: Remove this patch when 0.19 is released - skip-tests-failing-on-0.18.1.patch - # TODO: Remove this patch when 0.19 is released - - PR_7946.diff - - PR_8355.diff build: number: 200 From 677a706a3151b34affd246416c044baa47fb4baf Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Tue, 20 Jun 2017 23:45:46 -0400 Subject: [PATCH 25/36] Release 0.18.2 --- recipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index b4969670..c4cbce64 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.18.1" %} +{% set version = "0.18.2" %} {% set variant = "openblas" %} @@ -9,7 +9,7 @@ package: source: fn: scikit-learn-{{ version }}.tar.gz url: https://github.com/scikit-learn/scikit-learn/archive/{{ version }}.tar.gz - sha256: f861b988089b0ccc74c0be10a105ed2fe34a2a608d6f19e67147b4da26e39ac3 + sha256: fc4de6feaa6682801abac19f8e4f3ed0ea56b39e7e5a89ab66c7e0a76f661445 patches: # TODO: Remove this patch when 0.19 is released - skip-tests-failing-on-0.18.1.patch From dcae678ff31486cbabe118792ec8573f82e172ea Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Tue, 20 Jun 2017 23:45:46 -0400 Subject: [PATCH 26/36] Update skip test patch for 0.18.2 We did not backport the fixes for these tests into the 0.18.2 release. So we need to update this patch so that it will work correctly with 0.18.2. --- recipe/meta.yaml | 2 +- ...on-0.18.1.patch => skip-tests-failing-on-0.18.2.patch} | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) rename recipe/{skip-tests-failing-on-0.18.1.patch => skip-tests-failing-on-0.18.2.patch} (87%) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index c4cbce64..5ed9883d 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -12,7 +12,7 @@ source: sha256: fc4de6feaa6682801abac19f8e4f3ed0ea56b39e7e5a89ab66c7e0a76f661445 patches: # TODO: Remove this patch when 0.19 is released - - skip-tests-failing-on-0.18.1.patch + - skip-tests-failing-on-0.18.2.patch build: number: 200 diff --git a/recipe/skip-tests-failing-on-0.18.1.patch b/recipe/skip-tests-failing-on-0.18.2.patch similarity index 87% rename from recipe/skip-tests-failing-on-0.18.1.patch rename to recipe/skip-tests-failing-on-0.18.2.patch index f4b86425..e04e05da 100644 --- a/recipe/skip-tests-failing-on-0.18.1.patch +++ b/recipe/skip-tests-failing-on-0.18.2.patch @@ -8,8 +8,8 @@ index c6f0764..3676425 100644 def _test_ridge_loo(filter_): + from sklearn.utils.testing import SkipTest + from sklearn import __version__ -+ # Skipping this test to be able to release 0.18.1 on conda-forge -+ if __version__ == '0.18.1': ++ # Skipping this test to be able to release 0.18.2 on conda-forge ++ if __version__ == '0.18.2': + raise SkipTest( + 'This test is known to fail with OpenBLAS and some CPU ' + 'architectures. Look at ' @@ -29,8 +29,8 @@ index 3be02f3..d3fbca2 100644 def test_n_iter_without_progress(): + from sklearn.utils.testing import SkipTest + from sklearn import __version__ -+ # Skipping this test on OSX to be able to release 0.18.1 on conda-forge -+ if __version__ == '0.18.1' and sys.platform == 'darwin': ++ # Skipping this test on OSX to be able to release 0.18.2 on conda-forge ++ if __version__ == '0.18.2' and sys.platform == 'darwin': + raise SkipTest( + 'This test is known to fail with OpenBLAS on OSX' + 'Look at ' From 762ed2c729f34d7e2c785c8a3c93c26fc47b2323 Mon Sep 17 00:00:00 2001 From: Andreas Mueller Date: Wed, 19 Jul 2017 16:20:36 -0400 Subject: [PATCH 27/36] build 0.19b2 in rc channel --- .travis.yml | 2 +- recipe/meta.yaml | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 49bf6e58..874e69e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,4 +58,4 @@ install: script: - conda build ./recipe - - upload_or_check_non_existence ./recipe conda-forge --channel=main + - upload_or_check_non_existence ./recipe conda-forge --channel=rc diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5ed9883d..c9175e5d 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "0.18.2" %} +{% set version = "0.19b2" %} {% set variant = "openblas" %} @@ -9,10 +9,7 @@ package: source: fn: scikit-learn-{{ version }}.tar.gz url: https://github.com/scikit-learn/scikit-learn/archive/{{ version }}.tar.gz - sha256: fc4de6feaa6682801abac19f8e4f3ed0ea56b39e7e5a89ab66c7e0a76f661445 - patches: - # TODO: Remove this patch when 0.19 is released - - skip-tests-failing-on-0.18.2.patch + sha256: 9241107c7b6ee8639ac63075e6caec38b10a6dc2d79eb4c5d4d31bf5dd689b05 build: number: 200 From 812affa8e6b60dc86ec058f3a08256377d9e70e7 Mon Sep 17 00:00:00 2001 From: Andreas Mueller Date: Wed, 19 Jul 2017 16:27:08 -0400 Subject: [PATCH 28/36] MNT: Re-rendered with conda-smithy 2.3.2 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 874e69e5..49bf6e58 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,4 +58,4 @@ install: script: - conda build ./recipe - - upload_or_check_non_existence ./recipe conda-forge --channel=rc + - upload_or_check_non_existence ./recipe conda-forge --channel=main From 0d1cac156338b4d79fbeee475bebeb061970d42e Mon Sep 17 00:00:00 2001 From: Andreas Mueller Date: Wed, 19 Jul 2017 16:32:44 -0400 Subject: [PATCH 29/36] remove unused patch --- recipe/skip-tests-failing-on-0.18.2.patch | 42 ----------------------- 1 file changed, 42 deletions(-) delete mode 100644 recipe/skip-tests-failing-on-0.18.2.patch diff --git a/recipe/skip-tests-failing-on-0.18.2.patch b/recipe/skip-tests-failing-on-0.18.2.patch deleted file mode 100644 index e04e05da..00000000 --- a/recipe/skip-tests-failing-on-0.18.2.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/sklearn/linear_model/tests/test_ridge.py b/sklearn/linear_model/tests/test_ridge.py -index c6f0764..3676425 100644 ---- a/sklearn/linear_model/tests/test_ridge.py -+++ b/sklearn/linear_model/tests/test_ridge.py -@@ -292,6 +292,16 @@ def test_ridge_individual_penalties(): - - - def _test_ridge_loo(filter_): -+ from sklearn.utils.testing import SkipTest -+ from sklearn import __version__ -+ # Skipping this test to be able to release 0.18.2 on conda-forge -+ if __version__ == '0.18.2': -+ raise SkipTest( -+ 'This test is known to fail with OpenBLAS and some CPU ' -+ 'architectures. Look at ' -+ 'https://github.com/scikit-learn/scikit-learn/issues/7921 ' -+ 'for more details') -+ - # test that can work with both dense or sparse matrices - n_samples = X_diabetes.shape[0] - -diff --git a/sklearn/manifold/tests/test_t_sne.py b/sklearn/manifold/tests/test_t_sne.py -index 3be02f3..d3fbca2 100644 ---- a/sklearn/manifold/tests/test_t_sne.py -+++ b/sklearn/manifold/tests/test_t_sne.py -@@ -564,6 +564,16 @@ def test_index_offset(): - - - def test_n_iter_without_progress(): -+ from sklearn.utils.testing import SkipTest -+ from sklearn import __version__ -+ # Skipping this test on OSX to be able to release 0.18.2 on conda-forge -+ if __version__ == '0.18.2' and sys.platform == 'darwin': -+ raise SkipTest( -+ 'This test is known to fail with OpenBLAS on OSX' -+ 'Look at ' -+ 'https://github.com/scikit-learn/scikit-learn/issues/8618 ' -+ 'for more details') -+ - # Make sure that the parameter n_iter_without_progress is used correctly - random_state = check_random_state(0) - X = random_state.randn(100, 2) From 308dc4b105ffabd7b4964b93c2dee7dac4845692 Mon Sep 17 00:00:00 2001 From: Andreas Mueller Date: Wed, 19 Jul 2017 17:47:21 -0400 Subject: [PATCH 30/36] MNT: Re-rendered with conda-smithy 2.3.2 --- .travis.yml | 7 +++++-- README.md | 1 - ci_support/run_docker_build.sh | 2 +- circle.yml | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1666bbb7..874e69e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,6 @@ language: generic os: osx osx_image: xcode6.4 - env: matrix: @@ -39,6 +38,10 @@ install: - | 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. - | @@ -54,5 +57,5 @@ install: script: - conda build ./recipe - - upload_or_check_non_existence ./recipe conda-forge --channel=rc + - upload_or_check_non_existence ./recipe conda-forge --channel=rc diff --git a/README.md b/README.md index a2a79fac..a58f6964 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,6 @@ conda search scikit-learn --channel conda-forge ``` - About conda-forge ================= diff --git a/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index 4d449a1b..0e0c7144 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -70,6 +70,7 @@ source run_conda_forge_build_setup export CONDA_PY=35 set +x conda build /recipe_root --quiet || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 set -x export CONDA_NPY=113 @@ -78,7 +79,6 @@ source run_conda_forge_build_setup conda build /recipe_root --quiet || exit 1 upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 touch /feedstock_root/build_artefacts/conda-forge-build-done - EOF # double-check that the build got to the end diff --git a/circle.yml b/circle.yml index 8ebff4f4..421809c1 100644 --- a/circle.yml +++ b/circle.yml @@ -1,6 +1,7 @@ checkout: post: - ./ci_support/fast_finish_ci_pr_build.sh + - ./ci_support/checkout_merge_commit.sh machine: services: From 9ce669836cba2465f4275e1e3dd7568e922c1d45 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Thu, 20 Jul 2017 17:05:23 -0400 Subject: [PATCH 31/36] MNT: Re-rendered with conda-smithy 2.3.2.post.dev52 Re-renders with a dev version of `conda-smithy`, which provides support for build matrices in CircleCI. While this feature has had some testing, it has not gone live yet and should not generally be used until it is released. --- .circleci/config.yml | 80 ++++++++++++++++++++++++++++++++++ .gitattributes | 2 + ci_support/run_docker_build.sh | 26 +++-------- circle.yml | 19 -------- 4 files changed, 87 insertions(+), 40 deletions(-) create mode 100644 .circleci/config.yml delete mode 100644 circle.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..3a086475 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,80 @@ +version: 2 + +jobs: + build__CONDA_NPY_113__CONDA_PY_27: + working_directory: ~/test + machine: true + environment: + - CONDA_NPY: "113" + - CONDA_PY: "27" + steps: + - checkout + - run: + name: Fast finish outdated PRs and merge PRs + command: | + ./ci_support/fast_finish_ci_pr_build.sh + ./ci_support/checkout_merge_commit.sh + - run: + command: docker pull condaforge/linux-anvil + - run: + name: Print conda-build environment variables + command: | + echo "CONDA_NPY=${CONDA_NPY}" + echo "CONDA_PY=${CONDA_PY}" + - run: + # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. + command: ./ci_support/run_docker_build.sh + build__CONDA_NPY_113__CONDA_PY_35: + working_directory: ~/test + machine: true + environment: + - CONDA_NPY: "113" + - CONDA_PY: "35" + steps: + - checkout + - run: + name: Fast finish outdated PRs and merge PRs + command: | + ./ci_support/fast_finish_ci_pr_build.sh + ./ci_support/checkout_merge_commit.sh + - run: + command: docker pull condaforge/linux-anvil + - run: + name: Print conda-build environment variables + command: | + echo "CONDA_NPY=${CONDA_NPY}" + echo "CONDA_PY=${CONDA_PY}" + - run: + # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. + command: ./ci_support/run_docker_build.sh + build__CONDA_NPY_113__CONDA_PY_36: + working_directory: ~/test + machine: true + environment: + - CONDA_NPY: "113" + - CONDA_PY: "36" + steps: + - checkout + - run: + name: Fast finish outdated PRs and merge PRs + command: | + ./ci_support/fast_finish_ci_pr_build.sh + ./ci_support/checkout_merge_commit.sh + - run: + command: docker pull condaforge/linux-anvil + - run: + name: Print conda-build environment variables + command: | + echo "CONDA_NPY=${CONDA_NPY}" + echo "CONDA_PY=${CONDA_PY}" + - run: + # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. + command: ./ci_support/run_docker_build.sh + +workflows: + version: 2 + build_and_test: + jobs: + - build__CONDA_NPY_113__CONDA_PY_27 + - build__CONDA_NPY_113__CONDA_PY_35 + - build__CONDA_NPY_113__CONDA_PY_36 diff --git a/.gitattributes b/.gitattributes index 288029dc..974953ec 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,5 +1,7 @@ * text=auto +*.patch binary +*.diff binary meta.yaml text eol=lf build.sh text eol=lf bld.bat text eol=crlf diff --git a/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index 0e0c7144..e3062e89 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -40,6 +40,8 @@ cat << EOF | docker run -i \ -v "${RECIPE_ROOT}":/recipe_root \ -v "${FEEDSTOCK_ROOT}":/feedstock_root \ -e HOST_USER_ID="${HOST_USER_ID}" \ + -e CONDA_NPY="${CONDA_NPY}" \ + -e CONDA_PY="${CONDA_PY}" \ -a stdin -a stdout -a stderr \ condaforge/linux-anvil \ bash || exit 1 @@ -57,27 +59,9 @@ conda clean --lock conda install --yes --quiet conda-forge-build-setup source run_conda_forge_build_setup -# Embarking on 3 case(s). - set -x - export CONDA_NPY=113 - export CONDA_PY=27 - set +x - conda build /recipe_root --quiet || exit 1 - upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 - - set -x - export CONDA_NPY=113 - export CONDA_PY=35 - set +x - conda build /recipe_root --quiet || exit 1 - upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 - - set -x - export CONDA_NPY=113 - export CONDA_PY=36 - set +x - conda build /recipe_root --quiet || exit 1 - upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 +conda build /recipe_root --quiet || exit 1 +upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 + touch /feedstock_root/build_artefacts/conda-forge-build-done EOF diff --git a/circle.yml b/circle.yml deleted file mode 100644 index 421809c1..00000000 --- a/circle.yml +++ /dev/null @@ -1,19 +0,0 @@ -checkout: - post: - - ./ci_support/fast_finish_ci_pr_build.sh - - ./ci_support/checkout_merge_commit.sh - -machine: - services: - - docker - -dependencies: - # Note, we used to use the naive caching of docker images, but found that it was quicker - # just to pull each time. #rollondockercaching - override: - - docker pull condaforge/linux-anvil - -test: - override: - # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. - - ./ci_support/run_docker_build.sh From ac7c7a2dd05783cd5f48188fe5fff8eb153c3386 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Thu, 20 Jul 2017 17:07:00 -0400 Subject: [PATCH 32/36] Drop NumPy 1.13 constraint --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 630cce05..f989c5ac 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -14,7 +14,7 @@ source: build: number: 200 # We lack openblas on Windows, and therefore can't build numpy there either currently. - skip: true # [win or np!=113] + skip: true # [win] features: - blas_{{ variant }} From 7923207155dd265033c02d321744bd05b2883075 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Thu, 20 Jul 2017 17:08:26 -0400 Subject: [PATCH 33/36] MNT: Re-rendered with conda-smithy 2.3.2.post.dev52 Re-renders with a dev version of `conda-smithy`, which provides support for build matrices in CircleCI. While this feature has had some testing, it has not gone live yet and should not generally be used until it is released. Adds in the other NumPy versions to CircleCI and Travis CI matrices. --- .circleci/config.yml | 144 +++++++++++++++++++++++++++++++++++++++++++ .travis.yml | 6 ++ 2 files changed, 150 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3a086475..fe4b5755 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,6 +1,52 @@ version: 2 jobs: + build__CONDA_NPY_111__CONDA_PY_27: + working_directory: ~/test + machine: true + environment: + - CONDA_NPY: "111" + - CONDA_PY: "27" + steps: + - checkout + - run: + name: Fast finish outdated PRs and merge PRs + command: | + ./ci_support/fast_finish_ci_pr_build.sh + ./ci_support/checkout_merge_commit.sh + - run: + command: docker pull condaforge/linux-anvil + - run: + name: Print conda-build environment variables + command: | + echo "CONDA_NPY=${CONDA_NPY}" + echo "CONDA_PY=${CONDA_PY}" + - run: + # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. + command: ./ci_support/run_docker_build.sh + build__CONDA_NPY_112__CONDA_PY_27: + working_directory: ~/test + machine: true + environment: + - CONDA_NPY: "112" + - CONDA_PY: "27" + steps: + - checkout + - run: + name: Fast finish outdated PRs and merge PRs + command: | + ./ci_support/fast_finish_ci_pr_build.sh + ./ci_support/checkout_merge_commit.sh + - run: + command: docker pull condaforge/linux-anvil + - run: + name: Print conda-build environment variables + command: | + echo "CONDA_NPY=${CONDA_NPY}" + echo "CONDA_PY=${CONDA_PY}" + - run: + # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. + command: ./ci_support/run_docker_build.sh build__CONDA_NPY_113__CONDA_PY_27: working_directory: ~/test machine: true @@ -24,6 +70,52 @@ jobs: - run: # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. command: ./ci_support/run_docker_build.sh + build__CONDA_NPY_111__CONDA_PY_35: + working_directory: ~/test + machine: true + environment: + - CONDA_NPY: "111" + - CONDA_PY: "35" + steps: + - checkout + - run: + name: Fast finish outdated PRs and merge PRs + command: | + ./ci_support/fast_finish_ci_pr_build.sh + ./ci_support/checkout_merge_commit.sh + - run: + command: docker pull condaforge/linux-anvil + - run: + name: Print conda-build environment variables + command: | + echo "CONDA_NPY=${CONDA_NPY}" + echo "CONDA_PY=${CONDA_PY}" + - run: + # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. + command: ./ci_support/run_docker_build.sh + build__CONDA_NPY_112__CONDA_PY_35: + working_directory: ~/test + machine: true + environment: + - CONDA_NPY: "112" + - CONDA_PY: "35" + steps: + - checkout + - run: + name: Fast finish outdated PRs and merge PRs + command: | + ./ci_support/fast_finish_ci_pr_build.sh + ./ci_support/checkout_merge_commit.sh + - run: + command: docker pull condaforge/linux-anvil + - run: + name: Print conda-build environment variables + command: | + echo "CONDA_NPY=${CONDA_NPY}" + echo "CONDA_PY=${CONDA_PY}" + - run: + # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. + command: ./ci_support/run_docker_build.sh build__CONDA_NPY_113__CONDA_PY_35: working_directory: ~/test machine: true @@ -47,6 +139,52 @@ jobs: - run: # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. command: ./ci_support/run_docker_build.sh + build__CONDA_NPY_111__CONDA_PY_36: + working_directory: ~/test + machine: true + environment: + - CONDA_NPY: "111" + - CONDA_PY: "36" + steps: + - checkout + - run: + name: Fast finish outdated PRs and merge PRs + command: | + ./ci_support/fast_finish_ci_pr_build.sh + ./ci_support/checkout_merge_commit.sh + - run: + command: docker pull condaforge/linux-anvil + - run: + name: Print conda-build environment variables + command: | + echo "CONDA_NPY=${CONDA_NPY}" + echo "CONDA_PY=${CONDA_PY}" + - run: + # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. + command: ./ci_support/run_docker_build.sh + build__CONDA_NPY_112__CONDA_PY_36: + working_directory: ~/test + machine: true + environment: + - CONDA_NPY: "112" + - CONDA_PY: "36" + steps: + - checkout + - run: + name: Fast finish outdated PRs and merge PRs + command: | + ./ci_support/fast_finish_ci_pr_build.sh + ./ci_support/checkout_merge_commit.sh + - run: + command: docker pull condaforge/linux-anvil + - run: + name: Print conda-build environment variables + command: | + echo "CONDA_NPY=${CONDA_NPY}" + echo "CONDA_PY=${CONDA_PY}" + - run: + # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. + command: ./ci_support/run_docker_build.sh build__CONDA_NPY_113__CONDA_PY_36: working_directory: ~/test machine: true @@ -75,6 +213,12 @@ workflows: version: 2 build_and_test: jobs: + - build__CONDA_NPY_111__CONDA_PY_27 + - build__CONDA_NPY_112__CONDA_PY_27 - build__CONDA_NPY_113__CONDA_PY_27 + - build__CONDA_NPY_111__CONDA_PY_35 + - build__CONDA_NPY_112__CONDA_PY_35 - build__CONDA_NPY_113__CONDA_PY_35 + - build__CONDA_NPY_111__CONDA_PY_36 + - build__CONDA_NPY_112__CONDA_PY_36 - build__CONDA_NPY_113__CONDA_PY_36 diff --git a/.travis.yml b/.travis.yml index 874e69e5..f540672c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,8 +9,14 @@ osx_image: xcode6.4 env: matrix: + - CONDA_NPY=111 CONDA_PY=27 + - CONDA_NPY=112 CONDA_PY=27 - CONDA_NPY=113 CONDA_PY=27 + - CONDA_NPY=111 CONDA_PY=35 + - CONDA_NPY=112 CONDA_PY=35 - CONDA_NPY=113 CONDA_PY=35 + - CONDA_NPY=111 CONDA_PY=36 + - CONDA_NPY=112 CONDA_PY=36 - CONDA_NPY=113 CONDA_PY=36 global: # The BINSTAR_TOKEN secure variable. This is defined canonically in conda-forge.yml. From 5c44c490e158029e603fc4cf9c4d29c938f44fdc Mon Sep 17 00:00:00 2001 From: Andreas Mueller Date: Mon, 24 Jul 2017 11:04:24 -0400 Subject: [PATCH 34/36] pinning cython 0.25.2 --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index f989c5ac..004944d3 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -20,7 +20,7 @@ build: requirements: build: - - cython + - cython 0.25.2 - python - setuptools - blas 1.1 {{ variant }} From 7eea17ca909ff955660d4f26adac11f7b2b1afcf Mon Sep 17 00:00:00 2001 From: Andreas Mueller Date: Mon, 24 Jul 2017 11:10:12 -0400 Subject: [PATCH 35/36] rerender after pulling? --- .gitattributes | 2 - ci_support/run_docker_build.sh | 68 +++++++++++++++++++++++++++++++--- circle.yml | 19 ++++++++++ 3 files changed, 82 insertions(+), 7 deletions(-) create mode 100644 circle.yml diff --git a/.gitattributes b/.gitattributes index 974953ec..288029dc 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,7 +1,5 @@ * text=auto -*.patch binary -*.diff binary meta.yaml text eol=lf build.sh text eol=lf bld.bat text eol=crlf diff --git a/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index e3062e89..7f7af42d 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -40,8 +40,6 @@ cat << EOF | docker run -i \ -v "${RECIPE_ROOT}":/recipe_root \ -v "${FEEDSTOCK_ROOT}":/feedstock_root \ -e HOST_USER_ID="${HOST_USER_ID}" \ - -e CONDA_NPY="${CONDA_NPY}" \ - -e CONDA_PY="${CONDA_PY}" \ -a stdin -a stdout -a stderr \ condaforge/linux-anvil \ bash || exit 1 @@ -59,9 +57,69 @@ conda clean --lock conda install --yes --quiet conda-forge-build-setup source run_conda_forge_build_setup -conda build /recipe_root --quiet || exit 1 -upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 - +# Embarking on 9 case(s). + set -x + export CONDA_NPY=111 + export CONDA_PY=27 + set +x + conda build /recipe_root --quiet || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 + + set -x + export CONDA_NPY=112 + export CONDA_PY=27 + set +x + conda build /recipe_root --quiet || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 + + set -x + export CONDA_NPY=113 + export CONDA_PY=27 + set +x + conda build /recipe_root --quiet || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 + + set -x + export CONDA_NPY=111 + export CONDA_PY=35 + set +x + conda build /recipe_root --quiet || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 + + set -x + export CONDA_NPY=112 + export CONDA_PY=35 + set +x + conda build /recipe_root --quiet || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 + + set -x + export CONDA_NPY=113 + export CONDA_PY=35 + set +x + conda build /recipe_root --quiet || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 + + set -x + export CONDA_NPY=111 + export CONDA_PY=36 + set +x + conda build /recipe_root --quiet || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 + + set -x + export CONDA_NPY=112 + export CONDA_PY=36 + set +x + conda build /recipe_root --quiet || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 + + set -x + export CONDA_NPY=113 + export CONDA_PY=36 + set +x + conda build /recipe_root --quiet || exit 1 + upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 touch /feedstock_root/build_artefacts/conda-forge-build-done EOF diff --git a/circle.yml b/circle.yml new file mode 100644 index 00000000..421809c1 --- /dev/null +++ b/circle.yml @@ -0,0 +1,19 @@ +checkout: + post: + - ./ci_support/fast_finish_ci_pr_build.sh + - ./ci_support/checkout_merge_commit.sh + +machine: + services: + - docker + +dependencies: + # Note, we used to use the naive caching of docker images, but found that it was quicker + # just to pull each time. #rollondockercaching + override: + - docker pull condaforge/linux-anvil + +test: + override: + # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. + - ./ci_support/run_docker_build.sh From a0492434ca9ff70bb41e04f37214ece47de0f84f Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Mon, 24 Jul 2017 12:27:05 -0400 Subject: [PATCH 36/36] MNT: Re-rendered with conda-smithy 2.3.2.post.dev53 Re-render with a development copy of conda-smithy to add matrix support. --- .gitattributes | 2 + ci_support/run_docker_build.sh | 68 +++------------------------------- circle.yml | 19 ---------- 3 files changed, 7 insertions(+), 82 deletions(-) delete mode 100644 circle.yml diff --git a/.gitattributes b/.gitattributes index 288029dc..974953ec 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,5 +1,7 @@ * text=auto +*.patch binary +*.diff binary meta.yaml text eol=lf build.sh text eol=lf bld.bat text eol=crlf diff --git a/ci_support/run_docker_build.sh b/ci_support/run_docker_build.sh index 7f7af42d..e3062e89 100755 --- a/ci_support/run_docker_build.sh +++ b/ci_support/run_docker_build.sh @@ -40,6 +40,8 @@ cat << EOF | docker run -i \ -v "${RECIPE_ROOT}":/recipe_root \ -v "${FEEDSTOCK_ROOT}":/feedstock_root \ -e HOST_USER_ID="${HOST_USER_ID}" \ + -e CONDA_NPY="${CONDA_NPY}" \ + -e CONDA_PY="${CONDA_PY}" \ -a stdin -a stdout -a stderr \ condaforge/linux-anvil \ bash || exit 1 @@ -57,69 +59,9 @@ conda clean --lock conda install --yes --quiet conda-forge-build-setup source run_conda_forge_build_setup -# Embarking on 9 case(s). - set -x - export CONDA_NPY=111 - export CONDA_PY=27 - set +x - conda build /recipe_root --quiet || exit 1 - upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 - - set -x - export CONDA_NPY=112 - export CONDA_PY=27 - set +x - conda build /recipe_root --quiet || exit 1 - upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 - - set -x - export CONDA_NPY=113 - export CONDA_PY=27 - set +x - conda build /recipe_root --quiet || exit 1 - upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 - - set -x - export CONDA_NPY=111 - export CONDA_PY=35 - set +x - conda build /recipe_root --quiet || exit 1 - upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 - - set -x - export CONDA_NPY=112 - export CONDA_PY=35 - set +x - conda build /recipe_root --quiet || exit 1 - upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 - - set -x - export CONDA_NPY=113 - export CONDA_PY=35 - set +x - conda build /recipe_root --quiet || exit 1 - upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 - - set -x - export CONDA_NPY=111 - export CONDA_PY=36 - set +x - conda build /recipe_root --quiet || exit 1 - upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 - - set -x - export CONDA_NPY=112 - export CONDA_PY=36 - set +x - conda build /recipe_root --quiet || exit 1 - upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 - - set -x - export CONDA_NPY=113 - export CONDA_PY=36 - set +x - conda build /recipe_root --quiet || exit 1 - upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 +conda build /recipe_root --quiet || exit 1 +upload_or_check_non_existence /recipe_root conda-forge --channel=rc || exit 1 + touch /feedstock_root/build_artefacts/conda-forge-build-done EOF diff --git a/circle.yml b/circle.yml deleted file mode 100644 index 421809c1..00000000 --- a/circle.yml +++ /dev/null @@ -1,19 +0,0 @@ -checkout: - post: - - ./ci_support/fast_finish_ci_pr_build.sh - - ./ci_support/checkout_merge_commit.sh - -machine: - services: - - docker - -dependencies: - # Note, we used to use the naive caching of docker images, but found that it was quicker - # just to pull each time. #rollondockercaching - override: - - docker pull condaforge/linux-anvil - -test: - override: - # Run, test and (if we have a BINSTAR_TOKEN) upload the distributions. - - ./ci_support/run_docker_build.sh