bidict/.travis.yml

146 lines
4.5 KiB
YAML
Raw Normal View History

language: python
# Version used for jobs that don't override it (e.g. the one-off jobs):
python: "3.6"
sudo: false
2016-06-28 04:05:22 +00:00
env:
global:
- VENV_ROOT="$HOME/venv"
2018-04-07 04:39:32 +00:00
- LINT_SRC="$(ls bidict/*.py tests/*.py setup.py)"
strengthen too-weak assume(..) in test_eq_ne_hash, use "max_examples=5000" for nightly CI jobs, add .readthedocs.yml The `assume(init_items != init_unequal)` was not sufficient because it would allow cases like: bi_cls=bidict, other_cls=bidict, init_items=[(1, 0), (0, 1)], init_unequal=[(0, 1), (1, 0)] causing the resulting bidicts' item sets to still be equal, so assertions like assert items_match(some_bidict, other_unequal, relation=ne) would fail. Changing the assume to assume(set(init_items) != set(init_unequal)) fixes the issue. Surprisingly, hypothesis only just found a failing example for this for the first time (in https://travis-ci.org/jab/bidict/jobs/363962257) despite having numerous opportunities to find it before. Using a new max_examples=5000 hypothesis profile, only on nightly CI, should help surface any remaining issues that hypothesis hasn't found yet, without slowing commit-triggered tests with too much example generation. Also improve Travis config: - ditch ALLOW_FAIL=1, for some reason it didn't work - comment out python 3.7-dev job while Travis is stuck on an old 3.7 alpha - don't use "- |" command block where we want to see output after each command - prefix more network-dependent commands with travis_retry Finally, improve docs building setup: - Factor out sphinx from "dev" extras_require to its own "docs" extras_require. - Add a .readthedocs.yml to customize the readthedocs build. Use pip and the "docs" extras_require to get an up-to-date Sphinx version. Fixes some broken :ref:`addendum:...` autosectionlabel links in learning-from-bidict.
2018-04-10 04:31:29 +00:00
- HYPOTHESIS_PROFILE=$([[ $TRAVIS_EVENT_TYPE = cron ]] && echo max_examples_5000 || echo default)
before_install:
strengthen too-weak assume(..) in test_eq_ne_hash, use "max_examples=5000" for nightly CI jobs, add .readthedocs.yml The `assume(init_items != init_unequal)` was not sufficient because it would allow cases like: bi_cls=bidict, other_cls=bidict, init_items=[(1, 0), (0, 1)], init_unequal=[(0, 1), (1, 0)] causing the resulting bidicts' item sets to still be equal, so assertions like assert items_match(some_bidict, other_unequal, relation=ne) would fail. Changing the assume to assume(set(init_items) != set(init_unequal)) fixes the issue. Surprisingly, hypothesis only just found a failing example for this for the first time (in https://travis-ci.org/jab/bidict/jobs/363962257) despite having numerous opportunities to find it before. Using a new max_examples=5000 hypothesis profile, only on nightly CI, should help surface any remaining issues that hypothesis hasn't found yet, without slowing commit-triggered tests with too much example generation. Also improve Travis config: - ditch ALLOW_FAIL=1, for some reason it didn't work - comment out python 3.7-dev job while Travis is stuck on an old 3.7 alpha - don't use "- |" command block where we want to see output after each command - prefix more network-dependent commands with travis_retry Finally, improve docs building setup: - Factor out sphinx from "dev" extras_require to its own "docs" extras_require. - Add a .readthedocs.yml to customize the readthedocs build. Use pip and the "docs" extras_require to get an up-to-date Sphinx version. Fixes some broken :ref:`addendum:...` autosectionlabel links in learning-from-bidict.
2018-04-10 04:31:29 +00:00
- echo 'TRAVIS_PULL_REQUEST_SHA:' $TRAVIS_PULL_REQUEST_SHA
- echo 'TRAVIS_COMMIT:' $TRAVIS_COMMIT
- git --no-pager log -n2
# Travis does a shallow (--depth=50) clone by default.
# Clone the full history as requested by setuptools_scm.
- travis_retry git fetch --unshallow
# https://github.com/python-trio/trio/issues/487#issuecomment-377931587
- echo 'Installing latest pip...'
- travis_retry curl https://bootstrap.pypa.io/get-pip.py | python
- pip --version
install: # Install our test dependencies.
- export EXTRAS="test"
- if [[ -n $COVERAGE ]]; then export EXTRAS="${EXTRAS},coverage"; fi
- travis_retry pip install .[$EXTRAS]
- pip list
script: # Run our test suite.
2017-11-21 04:07:46 +00:00
- if [[ -n $COVERAGE ]]; then export PYTEST_ADDOPTS="--cov=bidict --cov-config=.coveragerc"; fi
- python setup.py test
2016-06-28 04:05:22 +00:00
2017-11-21 04:07:46 +00:00
after_script:
- |
if [[ -n $COVERAGE ]]; then
echo "Installing codecov..."
travis_retry pip install codecov || exit 1
echo
echo "Uploading coverage report to codecov..."
travis_retry codecov
2017-11-21 04:07:46 +00:00
fi
matrix:
include:
# Each job performs a single task, and sets a "TASK" var so it's evident in the build matrix.
# Run the test suite with various Python versions.
# Also don't bother testing Python 3.4; if we work on 3.5+, we should work on 3.4 too.
## Linux
strengthen too-weak assume(..) in test_eq_ne_hash, use "max_examples=5000" for nightly CI jobs, add .readthedocs.yml The `assume(init_items != init_unequal)` was not sufficient because it would allow cases like: bi_cls=bidict, other_cls=bidict, init_items=[(1, 0), (0, 1)], init_unequal=[(0, 1), (1, 0)] causing the resulting bidicts' item sets to still be equal, so assertions like assert items_match(some_bidict, other_unequal, relation=ne) would fail. Changing the assume to assume(set(init_items) != set(init_unequal)) fixes the issue. Surprisingly, hypothesis only just found a failing example for this for the first time (in https://travis-ci.org/jab/bidict/jobs/363962257) despite having numerous opportunities to find it before. Using a new max_examples=5000 hypothesis profile, only on nightly CI, should help surface any remaining issues that hypothesis hasn't found yet, without slowing commit-triggered tests with too much example generation. Also improve Travis config: - ditch ALLOW_FAIL=1, for some reason it didn't work - comment out python 3.7-dev job while Travis is stuck on an old 3.7 alpha - don't use "- |" command block where we want to see output after each command - prefix more network-dependent commands with travis_retry Finally, improve docs building setup: - Factor out sphinx from "dev" extras_require to its own "docs" extras_require. - Add a .readthedocs.yml to customize the readthedocs build. Use pip and the "docs" extras_require to get an up-to-date Sphinx version. Fixes some broken :ref:`addendum:...` autosectionlabel links in learning-from-bidict.
2018-04-10 04:31:29 +00:00
### Enable coverage for the most recent available CPython 2 and 3 releases and PyPy 3.
#### Latest stable CPython 2 available -> enable coverage.
- python: "2.7"
env: TASK=test COVERAGE=1
strengthen too-weak assume(..) in test_eq_ne_hash, use "max_examples=5000" for nightly CI jobs, add .readthedocs.yml The `assume(init_items != init_unequal)` was not sufficient because it would allow cases like: bi_cls=bidict, other_cls=bidict, init_items=[(1, 0), (0, 1)], init_unequal=[(0, 1), (1, 0)] causing the resulting bidicts' item sets to still be equal, so assertions like assert items_match(some_bidict, other_unequal, relation=ne) would fail. Changing the assume to assume(set(init_items) != set(init_unequal)) fixes the issue. Surprisingly, hypothesis only just found a failing example for this for the first time (in https://travis-ci.org/jab/bidict/jobs/363962257) despite having numerous opportunities to find it before. Using a new max_examples=5000 hypothesis profile, only on nightly CI, should help surface any remaining issues that hypothesis hasn't found yet, without slowing commit-triggered tests with too much example generation. Also improve Travis config: - ditch ALLOW_FAIL=1, for some reason it didn't work - comment out python 3.7-dev job while Travis is stuck on an old 3.7 alpha - don't use "- |" command block where we want to see output after each command - prefix more network-dependent commands with travis_retry Finally, improve docs building setup: - Factor out sphinx from "dev" extras_require to its own "docs" extras_require. - Add a .readthedocs.yml to customize the readthedocs build. Use pip and the "docs" extras_require to get an up-to-date Sphinx version. Fixes some broken :ref:`addendum:...` autosectionlabel links in learning-from-bidict.
2018-04-10 04:31:29 +00:00
#### Latest stable CPython 3 available -> enable coverage.
- python: "3.6"
env: TASK=test COVERAGE=1
#### Latest stable PyPy 3 available -> enable coverage.
- python: pypy3
env: TASK=test COVERAGE=1
#### Latest stable PyPy 2 -> enable coverage.
- python: pypy
env: TASK=test COVERAGE=1
strengthen too-weak assume(..) in test_eq_ne_hash, use "max_examples=5000" for nightly CI jobs, add .readthedocs.yml The `assume(init_items != init_unequal)` was not sufficient because it would allow cases like: bi_cls=bidict, other_cls=bidict, init_items=[(1, 0), (0, 1)], init_unequal=[(0, 1), (1, 0)] causing the resulting bidicts' item sets to still be equal, so assertions like assert items_match(some_bidict, other_unequal, relation=ne) would fail. Changing the assume to assume(set(init_items) != set(init_unequal)) fixes the issue. Surprisingly, hypothesis only just found a failing example for this for the first time (in https://travis-ci.org/jab/bidict/jobs/363962257) despite having numerous opportunities to find it before. Using a new max_examples=5000 hypothesis profile, only on nightly CI, should help surface any remaining issues that hypothesis hasn't found yet, without slowing commit-triggered tests with too much example generation. Also improve Travis config: - ditch ALLOW_FAIL=1, for some reason it didn't work - comment out python 3.7-dev job while Travis is stuck on an old 3.7 alpha - don't use "- |" command block where we want to see output after each command - prefix more network-dependent commands with travis_retry Finally, improve docs building setup: - Factor out sphinx from "dev" extras_require to its own "docs" extras_require. - Add a .readthedocs.yml to customize the readthedocs build. Use pip and the "docs" extras_require to get an up-to-date Sphinx version. Fixes some broken :ref:`addendum:...` autosectionlabel links in learning-from-bidict.
2018-04-10 04:31:29 +00:00
#### Other CPython versions -> no coverage.
##### Supported previous stable releases:
- python: "3.5"
env: TASK=test
- python: "3.4"
env: TASK=test
#### Next (in-development) CPython version:
##### Comment out while stuck on old 3.7-alpha pending https://github.com/travis-ci/travis-ci/issues/9069
strengthen too-weak assume(..) in test_eq_ne_hash, use "max_examples=5000" for nightly CI jobs, add .readthedocs.yml The `assume(init_items != init_unequal)` was not sufficient because it would allow cases like: bi_cls=bidict, other_cls=bidict, init_items=[(1, 0), (0, 1)], init_unequal=[(0, 1), (1, 0)] causing the resulting bidicts' item sets to still be equal, so assertions like assert items_match(some_bidict, other_unequal, relation=ne) would fail. Changing the assume to assume(set(init_items) != set(init_unequal)) fixes the issue. Surprisingly, hypothesis only just found a failing example for this for the first time (in https://travis-ci.org/jab/bidict/jobs/363962257) despite having numerous opportunities to find it before. Using a new max_examples=5000 hypothesis profile, only on nightly CI, should help surface any remaining issues that hypothesis hasn't found yet, without slowing commit-triggered tests with too much example generation. Also improve Travis config: - ditch ALLOW_FAIL=1, for some reason it didn't work - comment out python 3.7-dev job while Travis is stuck on an old 3.7 alpha - don't use "- |" command block where we want to see output after each command - prefix more network-dependent commands with travis_retry Finally, improve docs building setup: - Factor out sphinx from "dev" extras_require to its own "docs" extras_require. - Add a .readthedocs.yml to customize the readthedocs build. Use pip and the "docs" extras_require to get an up-to-date Sphinx version. Fixes some broken :ref:`addendum:...` autosectionlabel links in learning-from-bidict.
2018-04-10 04:31:29 +00:00
#####- python: 3.7-dev
##### env: TASK=test
## macOS
### Commented out pending https://github.com/travis-ci/travis-ci/issues/2312
2017-12-18 02:42:46 +00:00
####- python: "2.7"
#### env: TASK=test
#### os: osx
#### osx_image: xcode9.2
2014-09-23 14:08:21 +00:00
# One-off jobs. Override "install", "before_install", and "script" to do each of these instead.
- env: TASK=pydocstyle
2018-03-27 09:40:42 +00:00
before_install: skip
install: travis_retry pip install pydocstyle
2018-04-07 04:39:32 +00:00
script: pydocstyle $LINT_SRC
- env: TASK=build-docs
2018-03-27 09:40:42 +00:00
before_install: skip
install: travis_retry pip install Sphinx
script:
- ./build-docs.sh
- cd docs
- travis_retry make linkcheck
- env: TASK=flake8
2018-03-27 09:40:42 +00:00
before_install: skip
install: travis_retry pip install 'flake8<3.6' # keep in sync with the pin in setup.py
2018-04-07 04:39:32 +00:00
script: flake8 $LINT_SRC
- env: TASK=pylint
before_install: skip
install: travis_retry pip install 'pylint<2.1' 'hypothesis<4' 'pytest<4' # keep in sync with the pins in setup.py
2018-04-07 05:22:36 +00:00
script: pylint --jobs=0 $LINT_SRC
- env: TASK=test-with-optimization-flag # make sure there are no relied-on side effects in assert statements
2018-03-27 09:40:42 +00:00
before_install: skip
install: skip
script: python -O -m doctest -o IGNORE_EXCEPTION_DETAIL -o ELLIPSIS tests/*.txt
2014-09-23 14:08:21 +00:00
2018-03-27 09:40:42 +00:00
- stage: deploy-if-tag
env: TASK=deploy-if-tag
before_install: skip
install: skip
script: skip
deploy:
- provider: pypi
user: jab
password:
secure: B9LLgXkTbtjeC/IbH4wh9PEBzvKEAuYo3EBNW5f1xuLqVqtsysIyxJa5ar/FQ4qwUCBwZPFAXFurN3lLzRhb2Tc04YQ0GYVv6f8lkzwrjoWau4iB9Qt/nnvdRa7KryEJvtenHCAnwoEUaADCjkZjwo6fIA0hEOLB6/AYfhfgXYA=
on:
tags: true
before_cache:
- rm -rf $HOME/.cache/pip/log
cache:
directories:
- $HOME/.cache/pip
2016-06-28 04:05:22 +00:00
- $HOME/.hypothesis
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/bf64fb45a633c0935b9b
email:
recipients: jab@math.brown.edu