From e402c1552e3836e4c8e252502680070777672e65 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Wed, 30 Jan 2019 13:38:27 +0000 Subject: [PATCH 01/20] Attempt updating to new build infrastructure --- .travis.yml | 217 ++++++++++++++++++++++++++++++++++------------------ dodo.py | 17 ++++ setup.py | 33 ++++---- tox.ini | 63 +++++++++++++++ 4 files changed, 243 insertions(+), 87 deletions(-) create mode 100644 dodo.py create mode 100644 tox.ini diff --git a/.travis.yml b/.travis.yml index 0d52b4fb9d..62cb659af5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,84 +1,153 @@ -language: python - +# We deliberately don't use travis's language=python option because +# we install miniconda and use conda to get python. Additionally, +# Travis's auto-install of python doesn't work on osx images (see +# https://github.com/travis-ci/travis-ci/issues/4729). +language: generic sudo: false +os: + - linux + +cache: + timeout: 300 + directories: + - $HOME/miniconda -python: - - "2.7" - - "3.6" +before_cache: + - rm -rf $HOME/miniconda/pkgs + - rm -rf $HOME/miniconda/conda-bld + - rm -rf $HOME/miniconda/envs/*/conda-bld notifications: email: on_failure: change # [always|never|change] default: always -install: - - SITE_PACKAGES=`pip --version | cut -d ' ' -f 4` - - if [[ "$TRAVIS_PYTHON_VERSION" == "2.7" ]]; then - wget https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh; - else - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; - fi - - bash miniconda.sh -b -p $HOME/miniconda - - export PATH="$HOME/miniconda/bin:$PATH" - - hash -r - - conda config --set always_yes yes --set changeps1 no - - conda update -q conda - - # Useful for debugging any issues with conda - - conda create -n holoviews -q python=$TRAVIS_PYTHON_VERSION - - travis_wait conda env update -n holoviews -q -f environment.yml - - source activate holoviews - - python setup.py develop - - conda info -a; conda list; conda env export - - if [ "$TRAVIS_PULL_REQUEST" == 'false' ]; then - echo "Attempting to find any associated pull request"; - CURRENT_BUILD=$(curl -s -X GET "https://api.travis-ci.org/repos/ioam/holoviews/builds?number=$TRAVIS_BUILD_NUMBER"); - NEXT_BUILD=$(curl -s -X GET "https://api.travis-ci.org/repos/ioam/holoviews/builds?number=$((TRAVIS_BUILD_NUMBER + 1))"); - MSG1=$(echo $CURRENT_BUILD | jq '.[].message' ); - MSG2=$(echo $NEXT_BUILD | jq '.[].message' ); - if [ "$MSG1" == "$MSG2" ] ; then - BUILD_ID=$(echo $NEXT_BUILD | jq .[].id); - TRAVIS_PULL_REQUEST=$(curl -s -X GET "https://api.travis-ci.org/repos/ioam/holoviews/builds/$BUILD_ID" | jq .compare_url | cut -d '/' -f7 | cut -d \" -f1); - echo "Associated pull request found - PR $TRAVIS_PULL_REQUEST"; - fi - fi - - REF_DATA_BRANCH=${TRAVIS_PULL_REQUEST//false/reference_data} - - git clone https://github.com/ioam/holoviews-data.git -b reference_data ./doc/reference_data - - cd ./doc/reference_data - - echo "Attempting to checkout $REF_DATA_BRANCH branch" - - if [ $(git branch -a --list *origin/$REF_DATA_BRANCH | wc -l) -eq 1 ] ; then - git checkout origin/$REF_DATA_BRANCH; - else - echo "Using the master branch reference data"; - fi - - cd ../.. +env: + global: + - PYENV_VERSION=3.6 + - PKG_TEST_PYTHON="--test-python=py36 --test-python=py27" + - CHANS_DEV="-c pyviz/label/dev" + - CHANS="-c pyviz" + +stages: + - test + - name: conda_dev_package + if: tag =~ ^v(\d+|\.)*[a-z]\d*$ + - name: pip_dev_package + if: tag =~ ^v(\d+|\.)*[a-z]\d*$ + - name: conda_package + if: tag =~ ^v(\d+|\.)*[^a-z]\d*$ + - name: pip_package + if: tag =~ ^v(\d+|\.)*[^a-z]\d*$ + +jobs: + include: + ########## Test Stage ########## + + - &default + stage: test + env: DESC="dev test_all_recommended" QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True + before_install: + - pip install pyctdev && doit miniconda_install && pip uninstall -y doit pyctdev + - export PATH="$HOME/miniconda/bin:$PATH" && hash -r + - conda config --set always_yes True + - conda install -c pyviz "pyctdev>=0.5" && doit ecosystem_setup + install: + - doit env_create $CHANS_DEV --python=$PYENV_VERSION + - source activate test-environment + - doit develop_install $CHANS_DEV -o all + - doit env_capture + - bokeh sampledata + before_script: + - if [ "$TRAVIS_PULL_REQUEST" == 'false' ]; then + echo "Attempting to find any associated pull request"; + CURRENT_BUILD=$(curl -s -X GET "https://api.travis-ci.org/repos/ioam/holoviews/builds?number=$TRAVIS_BUILD_NUMBER"); + NEXT_BUILD=$(curl -s -X GET "https://api.travis-ci.org/repos/ioam/holoviews/builds?number=$((TRAVIS_BUILD_NUMBER + 1))"); + MSG1=$(echo $CURRENT_BUILD | jq '.[].message' ); + MSG2=$(echo $NEXT_BUILD | jq '.[].message' ); + if [ "$MSG1" == "$MSG2" ] ; then + BUILD_ID=$(echo $NEXT_BUILD | jq .[].id); + TRAVIS_PULL_REQUEST=$(curl -s -X GET "https://api.travis-ci.org/repos/ioam/holoviews/builds/$BUILD_ID" | jq .compare_url | cut -d '/' -f7 | cut -d \" -f1); + echo "Associated pull request found - PR $TRAVIS_PULL_REQUEST"; + fi + fi + - REF_DATA_BRANCH=${TRAVIS_PULL_REQUEST//false/reference_data} + - git clone https://github.com/ioam/holoviews-data.git -b reference_data ./doc/reference_data + - cd ./doc/reference_data + - echo "Attempting to checkout $REF_DATA_BRANCH branch" + - if [ $(git branch -a --list *origin/$REF_DATA_BRANCH | wc -l) -eq 1 ] ; then + git checkout origin/$REF_DATA_BRANCH; + else + echo "Using the master branch reference data"; + fi + - cd ../.. + - export MPLBACKEND="Agg" HOLOVIEWSRC=`pwd`'/holoviews.rc' + - echo 'import holoviews as hv;hv.config(style_17=True);hv.config.warn_options_call=True' > holoviews.rc + script: + - doit test_all_recommended + - cd doc/nbpublisher; chmod +x test_notebooks.py; ./test_notebooks.py + - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html + - cd ../../; mv doc/Tutorials/.coverage ./.coverage.notebooks + - coverage combine --append + after_script: + - shopt -s expand_aliases + - alias decode="tr '[N-ZA-Mn-za-m]' '[A-Za-z]'" + - export AWS_SECRET_ACCESS_KEY=`echo udgGztmYyyKZ5iP2PVe+ROGZo/TI0M2QcoafOJGD | decode` + - export AWS_ACCESS_KEY_ID=`echo NXVNVUCXF3UPHSKNG7ND | decode` + - if [ "$TRAVIS_BRANCH" == 'master' ]; then + cd doc/test_data; + zip -r test_data.zip *; + aws s3 cp --region eu-west-1 ./test_data.zip "s3://preview.holoviews.org/$TRAVIS_BUILD_NUMBER/test_data_py${TRAVIS_PYTHON_VERSION:0:1}.zip"; + cd -; + fi + - aws s3 cp --recursive --region eu-west-1 ./doc/test_html "s3://travis.holoviews.org/build_$TRAVIS_BUILD_NUMBER" + - curl -s -X GET "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/travis-holoviews-index" + - echo insecure >> ~/.curlrc + - if [ "$TRAVIS_PULL_REQUEST" != 'false' ]; then + curl -X POST -d "$TRAVIS_BUILD_NUMBER" "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/pr-status"; + fi + after_success: coveralls + + - <<: *default + env: DESC="py2 tests" PYENV_VERSION=2.7 + script: + - doit test_all_recommended + + ########## END-USER PACKAGES ########## + + ### CONDA #### + + - <<: *default + stage: conda_dev_package + env: DESC="" TRAVIS_NOCACHE=$TRAVIS_JOB_ID + install: + - doit package_build $CHANS_DEV $PKG_TEST_PYTHON --test-group=unit + script: + - doit package_upload --token=$CONDA_UPLOAD_TOKEN --label=dev + + - <<: *default + stage: conda_package + env: DESC="" TRAVIS_NOCACHE=$TRAVIS_JOB_ID + install: + - doit package_build $CHANS $PKG_TEST_PYTHON --test-group=unit + script: + - doit package_upload --token=$CONDA_UPLOAD_TOKEN --label=dev --label=main -script: - - export MPLBACKEND="Agg" - - export HOLOVIEWSRC=`pwd`'/holoviews.rc' - - echo 'import holoviews as hv;hv.config(style_17=True);hv.config.warn_options_call=True' > holoviews.rc - - flake8 --ignore=E,W,F999,F405 holoviews - - nosetests --with-doctest --with-coverage --cover-package=holoviews - - cd doc/nbpublisher; chmod +x test_notebooks.py; QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True ./test_notebooks.py - - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html - - cd ../../; mv doc/Tutorials/.coverage ./.coverage.notebooks - - coverage combine --append + ### PyPI ### -after_script: - - shopt -s expand_aliases - - alias decode="tr '[N-ZA-Mn-za-m]' '[A-Za-z]'" - - export AWS_SECRET_ACCESS_KEY=`echo udgGztmYyyKZ5iP2PVe+ROGZo/TI0M2QcoafOJGD | decode` - - export AWS_ACCESS_KEY_ID=`echo NXVNVUCXF3UPHSKNG7ND | decode` - - if [ "$TRAVIS_BRANCH" == 'master' ]; then - cd doc/test_data; - zip -r test_data.zip *; - aws s3 cp --region eu-west-1 ./test_data.zip "s3://preview.holoviews.org/$TRAVIS_BUILD_NUMBER/test_data_py${TRAVIS_PYTHON_VERSION:0:1}.zip"; - cd -; - fi - - aws s3 cp --recursive --region eu-west-1 ./doc/test_html "s3://travis.holoviews.org/build_$TRAVIS_BUILD_NUMBER" - - curl -s -X GET "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/travis-holoviews-index" - - echo insecure >> ~/.curlrc - - if [ "$TRAVIS_PULL_REQUEST" != 'false' ]; then - curl -X POST -d "$TRAVIS_BUILD_NUMBER" "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/pr-status"; - fi + - <<: *default + stage: pip_dev_package + env: PYPI="https://test.pypi.org/legacy/" TRAVIS_NOCACHE=$TRAVIS_JOB_ID + install: + - doit develop_install $CHANS_DEV -o tests && pip uninstall -y hvplot + - doit pip_on_conda + - doit ecosystem=pip package_build --test-python=py36 --test-group=unit + script: doit ecosystem=pip package_upload -u $TPPU -p $TPPP -r ${PYPI} -after_success: coveralls + - <<: *default + stage: pip_package + env: PYPI="https://upload.pypi.org/legacy/" TRAVIS_NOCACHE=$TRAVIS_JOB_ID + install: + - doit develop_install $CHANS_DEV -o tests && pip uninstall -y hvplot + - doit pip_on_conda + - doit ecosystem=pip package_build --test-python=py36 --test-group=unit + script: doit ecosystem=pip package_upload -u $PPU -p $PPP -r ${PYPI} diff --git a/dodo.py b/dodo.py new file mode 100644 index 0000000000..7005bcfdb0 --- /dev/null +++ b/dodo.py @@ -0,0 +1,17 @@ +import os +if "PYCTDEV_ECOSYSTEM" not in os.environ: + os.environ["PYCTDEV_ECOSYSTEM"] = "conda" + +from pyctdev import * # noqa: api + + +def task_pip_on_conda(): + """Experimental: provide pip build env via conda""" + return {'actions':[ + # some ecosystem=pip build tools must be installed with conda when using conda... + 'conda install -y pip twine wheel', + # ..and some are only available via conda-forge + 'conda install -y -c conda-forge tox virtualenv', + # this interferes with pip-installed nose + 'conda remove -y --force nose' + ]} diff --git a/setup.py b/setup.py index 3a089e47d5..c36a001218 100644 --- a/setup.py +++ b/setup.py @@ -11,22 +11,29 @@ setup_args = {} install_requires = ['param>=1.8.0,<2.0', 'numpy>=1.0', 'pyviz_comms>=0.7.0'] + extras_require = {} -# Notebook dependencies of IPython 3 -extras_require['notebook-dependencies'] = ['ipython<=7.1.1,>=5.4.0', - 'pyzmq', 'jinja2', 'tornado', - 'jsonschema', 'notebook', 'pygments'] -# IPython Notebook + matplotlib -extras_require['recommended'] = extras_require['notebook-dependencies'] + ['matplotlib>=2.1', 'bokeh>=1.0.0'] -# Additional, useful third-party packages -extras_require['extras'] = (['pandas', 'seaborn'] - + extras_require['recommended']) -# Everything including cyordereddict (optimization) and nosetests -extras_require['all'] = (extras_require['recommended'] - + extras_require['extras'] - + ['cyordereddict', 'nose']) +# Notebook dependencies +extras_require['notebook'] = ['ipython>=5.4.0,<=7.1.1', 'notebook'] + +# IPython Notebook + pandas + matplotlib + bokeh +extras_require['recommended'] = extras_require['notebook'] + [ + 'pandas', 'matplotlib>=2.1', 'bokeh>=1.0.0', 'scipy'] + +# Requirements to run all examples +extras_require['examples'] = extras_require['recommended'] + [ + 'networkx', 'pillow>=5.3.0', 'xarray>0.10.4', 'flexx=0.4.1', + 'plotly>=3.4', 'datashader', 'selenium', 'phantomjs'] +# Extra third-party libraries +extras_require['extras'] = extras_require['examples']+['cyordereddict'] + +# Test requirements +extra_require['tests'] = ['nose', 'flake8', 'awscli', 'coveralls', 'deepdiff', 'path.py'] + +# Everything including cyordereddict (optimization) and nosetests +extras_require['all'] = (extras_require['extras']+extras_require['tests']) def embed_version(basepath, ref='v0.2.2'): diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000000..9e616fcc3a --- /dev/null +++ b/tox.ini @@ -0,0 +1,63 @@ +# For use with pyct (https://github.com/pyviz/pyct), but just standard +# tox config (works with tox alone). + +[tox] +# python version test group extra envs extra commands +envlist = {py27,py35,py36}-{flakes,unit,all_recommended}-{default}-{dev,pkg} + +[_flakes] +description = Flake check python +deps = .[tests] +commands = flake8 holoviews + +[_unit] +description = Run unit tests with coverage +deps = .[tests] +passenv = TRAVIS TRAVIS_* +commands = nosetests --with-doctest --with-coverage --cover-package=holoviews + +[_examples] +description = Test that default examples run +deps = .[recommended, tests] +commands = pytest --nbsmoke-run -k ".ipynb" + +[_all_recommended] +description = Run all recommended tests +deps = .[recommended, tests] +commands = {[_flakes]commands} + {[_unit]commands} +# {[_examples]commands} + +[_pkg] +commands = bokeh sampledata + +[testenv] +# geoviews dependency cartopy and test dependency iris cannot be +# installed by pip alone, so provide access to site-packages and do +# not install deps with pip, but do install nose into virtualenv +# otherwise conda/system nose may be found +sitepackages = True +install_command = pip install --no-deps {opts} nose {packages} + +changedir = {envtmpdir} + +commands = examples-pkg: {[_pkg]commands} + unit: {[_unit]commands} + flakes: {[_flakes]commands} + examples: {[_examples]commands} + examples_extra: {[_examples_extra]commands} + all_recommended: {[_all_recommended]commands} + +deps = unit: {[_unit]deps} + flakes: {[_flakes]deps} + examples: {[_examples]deps} + examples_extra: {[_examples_extra]deps} + all_recommended: {[_all_recommended]deps} + +[flake8] +include = *.py +exclude = .git,__pycache__,.tox,.eggs,*.egg,doc,dist,build,_build,.ipynb_checkpoints,run_test.py +ignore = E, + W, + F999, + F405 From 1e90fc116e50ad1389ed4182757294e3722a3a73 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Wed, 30 Jan 2019 13:46:33 +0000 Subject: [PATCH 02/20] Improved travis.yml --- .travis.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 62cb659af5..ce91cf8a54 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,6 +27,9 @@ env: - PKG_TEST_PYTHON="--test-python=py36 --test-python=py27" - CHANS_DEV="-c pyviz/label/dev" - CHANS="-c pyviz" + - QT_QPA_PLATFORM='offscreen' + - BOKEH_DEV=True + - MPLBACKEND="Agg" stages: - test @@ -45,7 +48,7 @@ jobs: - &default stage: test - env: DESC="dev test_all_recommended" QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True + env: DESC="dev test_all_recommended" before_install: - pip install pyctdev && doit miniconda_install && pip uninstall -y doit pyctdev - export PATH="$HOME/miniconda/bin:$PATH" && hash -r @@ -80,15 +83,16 @@ jobs: echo "Using the master branch reference data"; fi - cd ../.. - - export MPLBACKEND="Agg" HOLOVIEWSRC=`pwd`'/holoviews.rc' + - export HOLOVIEWSRC=`pwd`'/holoviews.rc' - echo 'import holoviews as hv;hv.config(style_17=True);hv.config.warn_options_call=True' > holoviews.rc script: - doit test_all_recommended - cd doc/nbpublisher; chmod +x test_notebooks.py; ./test_notebooks.py + + after_script: - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html - cd ../../; mv doc/Tutorials/.coverage ./.coverage.notebooks - coverage combine --append - after_script: - shopt -s expand_aliases - alias decode="tr '[N-ZA-Mn-za-m]' '[A-Za-z]'" - export AWS_SECRET_ACCESS_KEY=`echo udgGztmYyyKZ5iP2PVe+ROGZo/TI0M2QcoafOJGD | decode` @@ -109,8 +113,6 @@ jobs: - <<: *default env: DESC="py2 tests" PYENV_VERSION=2.7 - script: - - doit test_all_recommended ########## END-USER PACKAGES ########## From 457a1223c106752bd14be7dfb1c144d9b9514576 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Wed, 30 Jan 2019 13:47:18 +0000 Subject: [PATCH 03/20] Fixed tox --- tox.ini | 2 -- 1 file changed, 2 deletions(-) diff --git a/tox.ini b/tox.ini index 9e616fcc3a..31407d70f4 100644 --- a/tox.ini +++ b/tox.ini @@ -45,13 +45,11 @@ commands = examples-pkg: {[_pkg]commands} unit: {[_unit]commands} flakes: {[_flakes]commands} examples: {[_examples]commands} - examples_extra: {[_examples_extra]commands} all_recommended: {[_all_recommended]commands} deps = unit: {[_unit]deps} flakes: {[_flakes]deps} examples: {[_examples]deps} - examples_extra: {[_examples_extra]deps} all_recommended: {[_all_recommended]deps} [flake8] From d64e45d41f74811bf4c84671befc6382ae961c68 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Wed, 30 Jan 2019 14:18:00 +0000 Subject: [PATCH 04/20] Fixed setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c36a001218..b2438e4746 100644 --- a/setup.py +++ b/setup.py @@ -30,7 +30,7 @@ extras_require['extras'] = extras_require['examples']+['cyordereddict'] # Test requirements -extra_require['tests'] = ['nose', 'flake8', 'awscli', 'coveralls', 'deepdiff', 'path.py'] +extras_require['tests'] = ['nose', 'flake8', 'awscli', 'coveralls', 'deepdiff', 'path.py'] # Everything including cyordereddict (optimization) and nosetests extras_require['all'] = (extras_require['extras']+extras_require['tests']) From 5dfe97e17508a6c15a62bfe7480942cc944eb812 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Wed, 30 Jan 2019 15:07:22 +0000 Subject: [PATCH 05/20] Added conda-forge --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ce91cf8a54..b00a866ea5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,7 @@ env: global: - PYENV_VERSION=3.6 - PKG_TEST_PYTHON="--test-python=py36 --test-python=py27" - - CHANS_DEV="-c pyviz/label/dev" + - CHANS_DEV="-c pyviz/label/dev -c conda-forge" - CHANS="-c pyviz" - QT_QPA_PLATFORM='offscreen' - BOKEH_DEV=True From fac0fa074250662b08e8d386e25e63a09194b9fd Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Wed, 30 Jan 2019 15:24:02 +0000 Subject: [PATCH 06/20] Fixed dependencies --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index b2438e4746..3daf4bd45e 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ # Requirements to run all examples extras_require['examples'] = extras_require['recommended'] + [ - 'networkx', 'pillow>=5.3.0', 'xarray>0.10.4', 'flexx=0.4.1', + 'networkx', 'pillow>=5.3.0', 'xarray>=0.10.4', 'flexx==0.4.1', 'plotly>=3.4', 'datashader', 'selenium', 'phantomjs'] # Extra third-party libraries From f81a94ae65189cfd8a1b041aaef648b0ce788790 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Wed, 30 Jan 2019 15:40:27 +0000 Subject: [PATCH 07/20] Fixed env vars --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index b00a866ea5..be1d882265 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,8 +27,6 @@ env: - PKG_TEST_PYTHON="--test-python=py36 --test-python=py27" - CHANS_DEV="-c pyviz/label/dev -c conda-forge" - CHANS="-c pyviz" - - QT_QPA_PLATFORM='offscreen' - - BOKEH_DEV=True - MPLBACKEND="Agg" stages: @@ -87,7 +85,7 @@ jobs: - echo 'import holoviews as hv;hv.config(style_17=True);hv.config.warn_options_call=True' > holoviews.rc script: - doit test_all_recommended - - cd doc/nbpublisher; chmod +x test_notebooks.py; ./test_notebooks.py + - cd doc/nbpublisher; chmod +x test_notebooks.py; QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True ./test_notebooks.py after_script: - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html From 54ef29ad3246254c0118f7bb943e0492920e05d8 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Wed, 30 Jan 2019 15:42:58 +0000 Subject: [PATCH 08/20] Made AWS access token secure --- .travis.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index be1d882265..6fbeccd5e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -91,10 +91,6 @@ jobs: - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html - cd ../../; mv doc/Tutorials/.coverage ./.coverage.notebooks - coverage combine --append - - shopt -s expand_aliases - - alias decode="tr '[N-ZA-Mn-za-m]' '[A-Za-z]'" - - export AWS_SECRET_ACCESS_KEY=`echo udgGztmYyyKZ5iP2PVe+ROGZo/TI0M2QcoafOJGD | decode` - - export AWS_ACCESS_KEY_ID=`echo NXVNVUCXF3UPHSKNG7ND | decode` - if [ "$TRAVIS_BRANCH" == 'master' ]; then cd doc/test_data; zip -r test_data.zip *; From 340127f51d07a8e1c6a58866f676070cf03647c1 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Wed, 30 Jan 2019 15:43:45 +0000 Subject: [PATCH 09/20] Added ffmpeg --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 3daf4bd45e..290593083f 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ # Requirements to run all examples extras_require['examples'] = extras_require['recommended'] + [ 'networkx', 'pillow>=5.3.0', 'xarray>=0.10.4', 'flexx==0.4.1', - 'plotly>=3.4', 'datashader', 'selenium', 'phantomjs'] + 'plotly>=3.4', 'datashader', 'selenium', 'phantomjs', 'ffmpeg'] # Extra third-party libraries extras_require['extras'] = extras_require['examples']+['cyordereddict'] From 34112b048e7b4b399f81fb99d97f1a90ef4ede6e Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Fri, 1 Feb 2019 18:30:01 +0000 Subject: [PATCH 10/20] Pinned nbconvert for testing --- setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 290593083f..17a9f7f051 100644 --- a/setup.py +++ b/setup.py @@ -30,7 +30,8 @@ extras_require['extras'] = extras_require['examples']+['cyordereddict'] # Test requirements -extras_require['tests'] = ['nose', 'flake8', 'awscli', 'coveralls', 'deepdiff', 'path.py'] +extras_require['tests'] = ['nose', 'flake8', 'awscli', 'coveralls', 'deepdiff', + 'path.py', 'nbconvert==5.3.1', 'jsonschema==2.6.0'] # Everything including cyordereddict (optimization) and nosetests extras_require['all'] = (extras_require['extras']+extras_require['tests']) From ef99146e285c72e67dc3bb8f6f5284b862013358 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Fri, 1 Feb 2019 19:03:29 +0000 Subject: [PATCH 11/20] Fixed flake --- holoviews/plotting/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/holoviews/plotting/util.py b/holoviews/plotting/util.py index 3637d49327..6ef7291b52 100644 --- a/holoviews/plotting/util.py +++ b/holoviews/plotting/util.py @@ -736,7 +736,7 @@ def list_cmaps(provider=None, records=False, name=None, category=None, source=No # cmap_info stores only non-reversed info, so construct # suitable values for reversed version if appropriate r=r._replace(name=aname) - if aname.endswith('_r') and (r.category is not 'Diverging'): + if aname.endswith('_r') and (r.category != 'Diverging'): if r.bg=='light': r=r._replace(bg='dark') elif r.bg=='dark': From 027dbb6785612f2ea12a9336aae3c167adf18bca Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Sat, 2 Feb 2019 02:35:32 +0000 Subject: [PATCH 12/20] Tidying up --- .travis.yml | 9 +++++---- tox.ini | 12 ------------ 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6fbeccd5e5..997822926e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -73,20 +73,21 @@ jobs: fi - REF_DATA_BRANCH=${TRAVIS_PULL_REQUEST//false/reference_data} - git clone https://github.com/ioam/holoviews-data.git -b reference_data ./doc/reference_data - - cd ./doc/reference_data + - pushd ./doc/reference_data - echo "Attempting to checkout $REF_DATA_BRANCH branch" - if [ $(git branch -a --list *origin/$REF_DATA_BRANCH | wc -l) -eq 1 ] ; then git checkout origin/$REF_DATA_BRANCH; else echo "Using the master branch reference data"; fi - - cd ../.. + - popd - export HOLOVIEWSRC=`pwd`'/holoviews.rc' - echo 'import holoviews as hv;hv.config(style_17=True);hv.config.warn_options_call=True' > holoviews.rc script: - doit test_all_recommended - - cd doc/nbpublisher; chmod +x test_notebooks.py; QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True ./test_notebooks.py - + - cd doc/nbpublisher + - chmod +x test_notebooks.py + - QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True ./test_notebooks.py after_script: - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html - cd ../../; mv doc/Tutorials/.coverage ./.coverage.notebooks diff --git a/tox.ini b/tox.ini index 31407d70f4..61cc54b7dd 100644 --- a/tox.ini +++ b/tox.ini @@ -16,26 +16,16 @@ deps = .[tests] passenv = TRAVIS TRAVIS_* commands = nosetests --with-doctest --with-coverage --cover-package=holoviews -[_examples] -description = Test that default examples run -deps = .[recommended, tests] -commands = pytest --nbsmoke-run -k ".ipynb" - [_all_recommended] description = Run all recommended tests deps = .[recommended, tests] commands = {[_flakes]commands} {[_unit]commands} -# {[_examples]commands} [_pkg] commands = bokeh sampledata [testenv] -# geoviews dependency cartopy and test dependency iris cannot be -# installed by pip alone, so provide access to site-packages and do -# not install deps with pip, but do install nose into virtualenv -# otherwise conda/system nose may be found sitepackages = True install_command = pip install --no-deps {opts} nose {packages} @@ -44,12 +34,10 @@ changedir = {envtmpdir} commands = examples-pkg: {[_pkg]commands} unit: {[_unit]commands} flakes: {[_flakes]commands} - examples: {[_examples]commands} all_recommended: {[_all_recommended]commands} deps = unit: {[_unit]deps} flakes: {[_flakes]deps} - examples: {[_examples]deps} all_recommended: {[_all_recommended]deps} [flake8] From 55bd0b91605a672e8372d1e67d82ea90cc049bc8 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Sat, 2 Feb 2019 02:55:18 +0000 Subject: [PATCH 13/20] Ensure param.version is correct version --- setup.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup.py b/setup.py index 17a9f7f051..85b75ead94 100644 --- a/setup.py +++ b/setup.py @@ -71,6 +71,9 @@ def get_setup_version(reponame): version_file_path = os.path.join(basepath, reponame, '.version') try: from param import version + + # Ensure that param.version has Version object + assert hasattr(version, 'Version') except: version = embed_version(basepath) if version is not None: From 2f59a7e000c7684426a34b986e11635f9610c3b6 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Sat, 2 Feb 2019 03:05:03 +0000 Subject: [PATCH 14/20] Try pinning flake8 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 85b75ead94..4bfe6cc777 100644 --- a/setup.py +++ b/setup.py @@ -30,7 +30,7 @@ extras_require['extras'] = extras_require['examples']+['cyordereddict'] # Test requirements -extras_require['tests'] = ['nose', 'flake8', 'awscli', 'coveralls', 'deepdiff', +extras_require['tests'] = ['nose', 'flake8==3.6.0', 'awscli', 'coveralls', 'deepdiff', 'path.py', 'nbconvert==5.3.1', 'jsonschema==2.6.0'] # Everything including cyordereddict (optimization) and nosetests From 675b8a66d658fa958a8d537cf40404579890d512 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Sat, 2 Feb 2019 03:20:39 +0000 Subject: [PATCH 15/20] Various updates --- .travis.yml | 3 --- setup.py | 13 +++++++------ tox.ini | 9 +++++++++ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 997822926e..6715d69800 100644 --- a/.travis.yml +++ b/.travis.yml @@ -85,9 +85,6 @@ jobs: - echo 'import holoviews as hv;hv.config(style_17=True);hv.config.warn_options_call=True' > holoviews.rc script: - doit test_all_recommended - - cd doc/nbpublisher - - chmod +x test_notebooks.py - - QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True ./test_notebooks.py after_script: - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html - cd ../../; mv doc/Tutorials/.coverage ./.coverage.notebooks diff --git a/setup.py b/setup.py index 4bfe6cc777..1cdee062dd 100644 --- a/setup.py +++ b/setup.py @@ -30,11 +30,12 @@ extras_require['extras'] = extras_require['examples']+['cyordereddict'] # Test requirements -extras_require['tests'] = ['nose', 'flake8==3.6.0', 'awscli', 'coveralls', 'deepdiff', - 'path.py', 'nbconvert==5.3.1', 'jsonschema==2.6.0'] +extras_require['tests'] = extras_require['extras']+[ + 'nose', 'flake8==3.6.0', 'awscli', 'coveralls', 'deepdiff', + 'path.py', 'nbconvert==5.3.1', 'jsonschema==2.6.0'] # Everything including cyordereddict (optimization) and nosetests -extras_require['all'] = (extras_require['extras']+extras_require['tests']) +extras_require['all'] = extras_require['tests'] def embed_version(basepath, ref='v0.2.2'): @@ -92,11 +93,11 @@ def get_setup_version(reponame): long_description_content_type="text/markdown", author="Jean-Luc Stevens and Philipp Rudiger", author_email="holoviews@gmail.com", - maintainer="IOAM", - maintainer_email="holoviews@gmail.com", + maintainer="PyViz Developers", + maintainer_email="developers@pyviz.org", platforms=['Windows', 'Mac OS X', 'Linux'], license='BSD', - url='http://www.holoviews.org', + url='https://www.holoviews.org', entry_points={ 'console_scripts': [ 'holoviews = holoviews.util.command:main' diff --git a/tox.ini b/tox.ini index 61cc54b7dd..872ecbc5fb 100644 --- a/tox.ini +++ b/tox.ini @@ -16,11 +16,20 @@ deps = .[tests] passenv = TRAVIS TRAVIS_* commands = nosetests --with-doctest --with-coverage --cover-package=holoviews +[_examples] +description = Test that examples run +deps = .[tests] +commands = + cd doc/nbpublisher + chmod +x test_notebooks.py + QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True ./test_notebooks.py + [_all_recommended] description = Run all recommended tests deps = .[recommended, tests] commands = {[_flakes]commands} {[_unit]commands} + {[_examples]commands} [_pkg] commands = bokeh sampledata From a0ce6935fe87d2c183683aea7a4a92cfb0ceb719 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Sat, 2 Feb 2019 03:47:22 +0000 Subject: [PATCH 16/20] Split build stages --- .travis.yml | 52 +++++++++++++++++++++++++++++++--------------------- tox.ini | 3 +-- 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6715d69800..fe370d8167 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,7 +46,7 @@ jobs: - &default stage: test - env: DESC="dev test_all_recommended" + env: DESC="Python 3 tests" before_install: - pip install pyctdev && doit miniconda_install && pip uninstall -y doit pyctdev - export PATH="$HOME/miniconda/bin:$PATH" && hash -r @@ -58,6 +58,33 @@ jobs: - doit develop_install $CHANS_DEV -o all - doit env_capture - bokeh sampledata + script: + - doit test_all_recommended + after_script: + - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html + - cd ../../; mv doc/Tutorials/.coverage ./.coverage.notebooks + - coverage combine --append + - if [ "$TRAVIS_BRANCH" == 'master' ]; then + cd doc/test_data; + zip -r test_data.zip *; + aws s3 cp --region eu-west-1 ./test_data.zip "s3://preview.holoviews.org/$TRAVIS_BUILD_NUMBER/test_data_py${TRAVIS_PYTHON_VERSION:0:1}.zip"; + cd -; + fi + - aws s3 cp --recursive --region eu-west-1 ./doc/test_html "s3://travis.holoviews.org/build_$TRAVIS_BUILD_NUMBER" + - curl -s -X GET "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/travis-holoviews-index" + - echo insecure >> ~/.curlrc + - if [ "$TRAVIS_PULL_REQUEST" != 'false' ]; then + curl -X POST -d "$TRAVIS_BUILD_NUMBER" "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/pr-status"; + fi + after_success: coveralls + after_failure: sleep 10 + + - <<: *default + env: DESC="Python 2.7 tests" PYENV_VERSION=2.7 + + - ®ression_test + <<: *default + env: DESC="Python 3.6 regression tests" before_script: - if [ "$TRAVIS_PULL_REQUEST" == 'false' ]; then echo "Attempting to find any associated pull request"; @@ -84,27 +111,10 @@ jobs: - export HOLOVIEWSRC=`pwd`'/holoviews.rc' - echo 'import holoviews as hv;hv.config(style_17=True);hv.config.warn_options_call=True' > holoviews.rc script: - - doit test_all_recommended - after_script: - - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html - - cd ../../; mv doc/Tutorials/.coverage ./.coverage.notebooks - - coverage combine --append - - if [ "$TRAVIS_BRANCH" == 'master' ]; then - cd doc/test_data; - zip -r test_data.zip *; - aws s3 cp --region eu-west-1 ./test_data.zip "s3://preview.holoviews.org/$TRAVIS_BUILD_NUMBER/test_data_py${TRAVIS_PYTHON_VERSION:0:1}.zip"; - cd -; - fi - - aws s3 cp --recursive --region eu-west-1 ./doc/test_html "s3://travis.holoviews.org/build_$TRAVIS_BUILD_NUMBER" - - curl -s -X GET "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/travis-holoviews-index" - - echo insecure >> ~/.curlrc - - if [ "$TRAVIS_PULL_REQUEST" != 'false' ]; then - curl -X POST -d "$TRAVIS_BUILD_NUMBER" "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/pr-status"; - fi - after_success: coveralls + - QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True doit test_examples - - <<: *default - env: DESC="py2 tests" PYENV_VERSION=2.7 + - <<: *regression_test + env: DESC="Python 2.7 regression tests" PYENV_VERSION=2.7 ########## END-USER PACKAGES ########## diff --git a/tox.ini b/tox.ini index 872ecbc5fb..38eab28683 100644 --- a/tox.ini +++ b/tox.ini @@ -22,14 +22,13 @@ deps = .[tests] commands = cd doc/nbpublisher chmod +x test_notebooks.py - QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True ./test_notebooks.py + ./test_notebooks.py [_all_recommended] description = Run all recommended tests deps = .[recommended, tests] commands = {[_flakes]commands} {[_unit]commands} - {[_examples]commands} [_pkg] commands = bokeh sampledata From 7ba81f4b8a27e69e7c0c7778df8f32a4877bde6e Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Sat, 2 Feb 2019 04:06:33 +0000 Subject: [PATCH 17/20] Reorganized dependencies --- .travis.yml | 36 ++++++++++++++++++------------------ setup.py | 17 ++++++++++------- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/.travis.yml b/.travis.yml index fe370d8167..5c513d5c81 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,6 +28,7 @@ env: - CHANS_DEV="-c pyviz/label/dev -c conda-forge" - CHANS="-c pyviz" - MPLBACKEND="Agg" + - HV_REQUIREMENTS="tests" stages: - test @@ -55,27 +56,11 @@ jobs: install: - doit env_create $CHANS_DEV --python=$PYENV_VERSION - source activate test-environment - - doit develop_install $CHANS_DEV -o all + - doit develop_install $CHANS_DEV -o $HV_REQUIREMENTS - doit env_capture - bokeh sampledata script: - doit test_all_recommended - after_script: - - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html - - cd ../../; mv doc/Tutorials/.coverage ./.coverage.notebooks - - coverage combine --append - - if [ "$TRAVIS_BRANCH" == 'master' ]; then - cd doc/test_data; - zip -r test_data.zip *; - aws s3 cp --region eu-west-1 ./test_data.zip "s3://preview.holoviews.org/$TRAVIS_BUILD_NUMBER/test_data_py${TRAVIS_PYTHON_VERSION:0:1}.zip"; - cd -; - fi - - aws s3 cp --recursive --region eu-west-1 ./doc/test_html "s3://travis.holoviews.org/build_$TRAVIS_BUILD_NUMBER" - - curl -s -X GET "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/travis-holoviews-index" - - echo insecure >> ~/.curlrc - - if [ "$TRAVIS_PULL_REQUEST" != 'false' ]; then - curl -X POST -d "$TRAVIS_BUILD_NUMBER" "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/pr-status"; - fi after_success: coveralls after_failure: sleep 10 @@ -84,7 +69,7 @@ jobs: - ®ression_test <<: *default - env: DESC="Python 3.6 regression tests" + env: DESC="Python 3.6 regression tests" HV_REQUIREMENTS="nbtests" before_script: - if [ "$TRAVIS_PULL_REQUEST" == 'false' ]; then echo "Attempting to find any associated pull request"; @@ -112,6 +97,21 @@ jobs: - echo 'import holoviews as hv;hv.config(style_17=True);hv.config.warn_options_call=True' > holoviews.rc script: - QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True doit test_examples + after_script: + - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html + - if [ "$TRAVIS_BRANCH" == 'master' ]; then + cd doc/test_data; + zip -r test_data.zip *; + aws s3 cp --region eu-west-1 ./test_data.zip "s3://preview.holoviews.org/$TRAVIS_BUILD_NUMBER/test_data_py${TRAVIS_PYTHON_VERSION:0:1}.zip"; + cd -; + fi + - aws s3 cp --recursive --region eu-west-1 ./doc/test_html "s3://travis.holoviews.org/build_$TRAVIS_BUILD_NUMBER" + - curl -s -X GET "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/travis-holoviews-index" + - echo insecure >> ~/.curlrc + - if [ "$TRAVIS_PULL_REQUEST" != 'false' ]; then + curl -X POST -d "$TRAVIS_BUILD_NUMBER" "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/pr-status"; + fi + after_success: echo "Success" - <<: *regression_test env: DESC="Python 2.7 regression tests" PYENV_VERSION=2.7 diff --git a/setup.py b/setup.py index 1cdee062dd..6cc7d45a07 100644 --- a/setup.py +++ b/setup.py @@ -23,19 +23,22 @@ # Requirements to run all examples extras_require['examples'] = extras_require['recommended'] + [ - 'networkx', 'pillow>=5.3.0', 'xarray>=0.10.4', 'flexx==0.4.1', - 'plotly>=3.4', 'datashader', 'selenium', 'phantomjs', 'ffmpeg'] + 'networkx', 'pillow>=5.3.0', 'xarray>=0.10.4', 'plotly>=3.4', + 'datashader', 'selenium', 'phantomjs', 'ffmpeg'] # Extra third-party libraries -extras_require['extras'] = extras_require['examples']+['cyordereddict'] +extras_require['extras'] = extras_require['examples']+[ + 'cyordereddict', 'flexx==0.4.1'] # Test requirements -extras_require['tests'] = extras_require['extras']+[ - 'nose', 'flake8==3.6.0', 'awscli', 'coveralls', 'deepdiff', - 'path.py', 'nbconvert==5.3.1', 'jsonschema==2.6.0'] +extras_require['tests'] = extras_require['examples']+[ + 'nose', 'flake8==3.6.0', 'coveralls', 'path.py'] + +extras_require['nbtests'] = extras_require['recommended'] + [ + 'nose', 'awscli', 'deepdiff', 'nbconvert==5.3.1', 'jsonschema==2.6.0'] # Everything including cyordereddict (optimization) and nosetests -extras_require['all'] = extras_require['tests'] +extras_require['all'] = list(set(extras_require['tests']) | set(extras_require['nbtests'])) def embed_version(basepath, ref='v0.2.2'): From 1efb4a5650a5e6b5ea6af904f69d1bde18b37ea2 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Sat, 2 Feb 2019 04:10:25 +0000 Subject: [PATCH 18/20] Renamed regression tests --- .travis.yml | 4 ++-- tox.ini | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5c513d5c81..f66f21ab31 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,7 @@ env: - CHANS_DEV="-c pyviz/label/dev -c conda-forge" - CHANS="-c pyviz" - MPLBACKEND="Agg" - - HV_REQUIREMENTS="tests" + - HV_REQUIREMENTS="tests" stages: - test @@ -96,7 +96,7 @@ jobs: - export HOLOVIEWSRC=`pwd`'/holoviews.rc' - echo 'import holoviews as hv;hv.config(style_17=True);hv.config.warn_options_call=True' > holoviews.rc script: - - QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True doit test_examples + - QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True doit test_regression after_script: - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html - if [ "$TRAVIS_BRANCH" == 'master' ]; then diff --git a/tox.ini b/tox.ini index 38eab28683..856677e9fd 100644 --- a/tox.ini +++ b/tox.ini @@ -16,9 +16,9 @@ deps = .[tests] passenv = TRAVIS TRAVIS_* commands = nosetests --with-doctest --with-coverage --cover-package=holoviews -[_examples] -description = Test that examples run -deps = .[tests] +[_regression] +description = Run regression tests +deps = .[nbtests] commands = cd doc/nbpublisher chmod +x test_notebooks.py @@ -26,7 +26,7 @@ commands = [_all_recommended] description = Run all recommended tests -deps = .[recommended, tests] +deps = .[tests] commands = {[_flakes]commands} {[_unit]commands} @@ -42,11 +42,13 @@ changedir = {envtmpdir} commands = examples-pkg: {[_pkg]commands} unit: {[_unit]commands} flakes: {[_flakes]commands} + regression: {[_regression]commands} all_recommended: {[_all_recommended]commands} deps = unit: {[_unit]deps} flakes: {[_flakes]deps} all_recommended: {[_all_recommended]deps} + regression: {[_regression]deps} [flake8] include = *.py From 5cadc7759177d5a6217764dcaf376a4dd44d49b4 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Sat, 2 Feb 2019 04:22:20 +0000 Subject: [PATCH 19/20] Add regression tests to build matrix --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 856677e9fd..a5221fd7c3 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,7 @@ [tox] # python version test group extra envs extra commands -envlist = {py27,py35,py36}-{flakes,unit,all_recommended}-{default}-{dev,pkg} +envlist = {py27,py35,py36}-{flakes,unit,all_recommended,regression}-{default}-{dev,pkg} [_flakes] description = Flake check python From d122d5c8367d3e1a18a260bf2c07118c6066170b Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Sat, 2 Feb 2019 11:58:41 +0000 Subject: [PATCH 20/20] Try to fix path issues --- .travis.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index f66f21ab31..018dc81fab 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,6 @@ env: - CHANS_DEV="-c pyviz/label/dev -c conda-forge" - CHANS="-c pyviz" - MPLBACKEND="Agg" - - HV_REQUIREMENTS="tests" stages: - test @@ -47,7 +46,7 @@ jobs: - &default stage: test - env: DESC="Python 3 tests" + env: DESC="Python 3.6 tests" HV_REQUIREMENTS="tests" before_install: - pip install pyctdev && doit miniconda_install && pip uninstall -y doit pyctdev - export PATH="$HOME/miniconda/bin:$PATH" && hash -r @@ -92,13 +91,16 @@ jobs: else echo "Using the master branch reference data"; fi + - ls -a - popd - export HOLOVIEWSRC=`pwd`'/holoviews.rc' - echo 'import holoviews as hv;hv.config(style_17=True);hv.config.warn_options_call=True' > holoviews.rc script: + - pushd doc/nbpublisher - QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True doit test_regression after_script: - - chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html + - python ./concat_html.py ../test_data ../test_html + - popd - if [ "$TRAVIS_BRANCH" == 'master' ]; then cd doc/test_data; zip -r test_data.zip *;