From a149ae94eee61dda839dce30778f6bdbd78d10ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Thu, 29 Oct 2020 20:06:12 +0100 Subject: [PATCH 01/13] Use latest stable release of Debian in the reproducible environment --- scripts/environment/Dockerfile | 10 +++++----- scripts/host-jupyter-using-docker.sh | 11 +++++------ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/scripts/environment/Dockerfile b/scripts/environment/Dockerfile index d85555de..03f27f5a 100644 --- a/scripts/environment/Dockerfile +++ b/scripts/environment/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:stretch +FROM debian:buster MAINTAINER Björn Dahlgren @@ -6,16 +6,16 @@ ENV LANG C.UTF-8 # This dockerfile is designed to run on binder (mybinder.org) RUN apt-get update && \ - apt-get --quiet --assume-yes install curl git g++-6 libgmp-dev binutils-dev bzip2 make cmake sudo \ + apt-get --quiet --assume-yes install curl git g++-8 libgmp-dev binutils-dev bzip2 make cmake sudo \ python3-dev python3-pip libgsl-dev liblapack-dev graphviz && \ apt-get clean && \ - curl -LOs http://computation.llnl.gov/projects/sundials/download/sundials-3.1.2.tar.gz && \ - tar xzf sundials-3.1.2.tar.gz && mkdir build/ && cd build/ && \ + curl -LOs http://computation.llnl.gov/projects/sundials/download/sundials-5.4.0.tar.gz && \ + tar xzf sundials-5.4.0.tar.gz && mkdir build/ && cd build/ && \ cmake -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DEXAMPLES_ENABLE=OFF -DEXAMPLES_INSTALL=OFF \ ../sundials*/ && make install && cd - && rm -r build/ sundials* && \ python3 -m pip install --upgrade pip && \ - curl -LOs http://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.bz2 && \ + curl -LOs http://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2 && \ tar xjf boost_*.tar.bz2 && cd boost* && ./bootstrap.sh && ./b2 -j 2 --prefix=/usr/local/ install && cd - # At this point the system should be able to pip-install the package and all of its dependencies. We'll do so diff --git a/scripts/host-jupyter-using-docker.sh b/scripts/host-jupyter-using-docker.sh index bd7fa7ed..7bd8265a 100755 --- a/scripts/host-jupyter-using-docker.sh +++ b/scripts/host-jupyter-using-docker.sh @@ -30,15 +30,14 @@ if [[ "$PORT" == "0" ]]; then PORTFWD="" else LOCALCMD="jupyter notebook --no-browser --port $PORT --ip=* index.ipynb" - PORTFWD="-p 127.0.0.1:$PORT:$PORT" + PORTFWD="-p ${4:-127.0.0.1}:$PORT:$PORT" fi MYCMD="groupadd -f --gid \$HOST_GID \$HOST_WHOAMI; \ useradd --uid \$HOST_UID --gid \$HOST_GID --home /mount \$HOST_WHOAMI; \ -sudo --preserve-env --login -u \$HOST_WHOAMI python3 -m pip install --user symcxx quantities; \ -sudo --preserve-env --login -u \$HOST_WHOAMI python3 -m pip install --user -e .[all]; \ -sudo --preserve-env --login -u \$HOST_WHOAMI /mount/.local/bin/jupyter-nbextension enable --user --py widgetsnbextension; \ -sudo --preserve-env --login -u \$HOST_WHOAMI LD_LIBRARY_PATH=/usr/local/lib MPLBACKEND=Agg /mount/.local/bin/$LOCALCMD" +sudo --login -u \$HOST_WHOAMI PYCVODES_NO_LAPACK=1 PYCVODES_NO_KLU=1 python3 -m pip install --user -e .[all]; \ +sudo --login -u \$HOST_WHOAMI /mount/.local/bin/jupyter-nbextension enable --user --py widgetsnbextension; \ +sudo --login -u \$HOST_WHOAMI LD_LIBRARY_PATH=/usr/local/lib MPLBACKEND=Agg /mount/.local/bin/$LOCALCMD" set -x sudo docker run --rm --name "${PKG}_nb_${PORT}" $PORTFWD \ -e HOST_WHOAMI=${HOST_USER} -e HOST_UID=$(id -u ${HOST_USER}) -e HOST_GID=$(id -g ${HOST_USER})\ - -v $MOUNT:/mount -w /mount -it $DOCKERIMAGE /usr/bin/env bash -x -c "$MYCMD" + -v $MOUNT:/mount -w /mount -it $DOCKERIMAGE /bin/bash -x -c "$MYCMD" From c1dc81fc8f3a5037d170ac577cacbae95d19ac72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Fri, 30 Oct 2020 07:40:40 +0100 Subject: [PATCH 02/13] Updates to CI setup --- .drone.yml | 25 +++++++++++++------------ chempy/util/testing.py | 16 +++++++++++++++- chempy/util/tests/test_graph.py | 6 +++--- chempy/util/tests/test_table.py | 5 +++-- 4 files changed, 34 insertions(+), 18 deletions(-) diff --git a/.drone.yml b/.drone.yml index c030dc33..e4cba101 100644 --- a/.drone.yml +++ b/.drone.yml @@ -11,12 +11,12 @@ pipeline: ttl: 90 # liftetime in days install: - image: bjodah/bjodahimg20dev:v1.2.3 + image: bjodah/bjodahimg20dot:2.1.0.3 environment: - CC=gcc-10 - CXX=g++-10 - - CPLUS_INCLUDE_PATH=/opt/boost_1_73_p/include - - SUNDBASE=/opt/sundials-5.3.0-klu-lapack + - CPLUS_INCLUDE_PATH=/opt/boost_1_74_p/include + - SUNDBASE=/opt/sundials-5.4.0-klu-lapack - CPATH=/usr/include/suitesparse # sunlinsol_klu.h includes "klu.h" commands: - export PYTHONUSERBASE=$(pwd)/ci-cache/pyusrb @@ -25,7 +25,7 @@ pipeline: - export LIBRARY_PATH=$SUNDBASE/lib - export LD_LIBRARY_PATH=$SUNDBASE/lib - python3 -m pip install --cache-dir ./ci-cache/pip_cache --user -e .[all] - - python3 -c "import pycvodes" # debug this CI config + - python3 -c "import pycvodes; import pyodesys; import pygslodeiv2" # debug this CI config - git fetch -tq - python3 setup.py sdist # test pip installable sdist (checks MANIFEST.in) - git archive -o dist/chempy-head.zip HEAD # test pip installable zip (symlinks break) @@ -33,14 +33,15 @@ pipeline: - cp dist/chempy-* deploy/public_html/branches/${DRONE_BRANCH}/ test-suite: - image: bjodah/bjodahimg20dev:v1.2.3 + image: bjodah/bjodahimg20dot:2.1.0.3 group: testing environment: - CC=gcc-10 - CXX=g++-10 - - CPLUS_INCLUDE_PATH=/opt/boost_1_73_p/include - - SUNDBASE=/opt/sundials-5.3.0-klu-lapack + - CPLUS_INCLUDE_PATH=/opt/boost_1_74_p/include + - SUNDBASE=/opt/sundials-5.4.0-klu-lapack - CPATH=/usr/include/suitesparse # sunlinsol_klu.h includes "klu.h" + - CHEMPY_SKIP_NO_TESTS=1 commands: - export PYTHONUSERBASE=$(pwd)/ci-cache/pyusrb - export CPATH=$SUNDBASE/include:$CPATH @@ -59,11 +60,11 @@ pipeline: - bash -c "source /tmp/test_git_archive/bin/activate; pip install --cache-dir ./ci-cache/pip_cache chempy-head.zip pytest; pytest --pyargs chempy" render-notebooks: - image: bjodah/bjodahimg20dev:v1.2.3 + image: bjodah/bjodahimg20dot:2.1.0.3 group: testing environment: - CHEMPY_DEPRECATION_FILTER=ignore - - SUNDBASE=/opt/sundials-5.3.0-klu-lapack + - SUNDBASE=/opt/sundials-5.4.0-klu-lapack - CC=gcc-10 - CXX=g++-10 commands: @@ -78,7 +79,7 @@ pipeline: - cp -r index.* examples/ "deploy/public_html/branches/${DRONE_BRANCH}" # conda-recipe: -# image: bjodah/bjodahimg20dev:v1.2.3 +# image: bjodah/bjodahimg20dot:2.1.0.3 # group: testing # commands: # - export CONDA_PKGS_DIRS=$(pwd)/ci-cache/conda_packages @@ -88,10 +89,10 @@ pipeline: # - (cd $CONDA_PKGS_DIRS; find . -maxdepth 1 -type d -not -path . -not -path .. | xargs rm -r) compile-documentation: - image: bjodah/bjodahimg20dev:v1.2.3 + image: bjodah/bjodahimg20dot:2.1.0.3 environment: - CHEMPY_DEPRECATION_FILTER=ignore - - SUNDBASE=/opt/sundials-5.3.0-klu-lapack + - SUNDBASE=/opt/sundials-5.4.0-klu-lapack commands: - export PYTHONUSERBASE=$(pwd)/ci-cache/pyusrb - export CPATH=$SUNDBASE/include diff --git a/chempy/util/testing.py b/chempy/util/testing.py index 10dc2931..40837590 100644 --- a/chempy/util/testing.py +++ b/chempy/util/testing.py @@ -3,8 +3,10 @@ from pkg_resources import parse_requirements, parse_version +import os from operator import lt, le, eq, ne, ge, gt import pytest +import warnings _relop = dict(zip('< <= == != >= >'.split(), (lt, le, eq, ne, ge, gt))) @@ -55,4 +57,16 @@ def __call__(self, cb): r += " Missing modules: %s." % ', '.join(self.missing) if self.incomp: r += " Incomp versions: %s." % ', '.join(self.incomp) - return pytest.mark.skipif(self.missing or self.incomp, reason=r)(cb) + if os.environ.get('CHEMPY_SKIP_NO_TESTS', '0') == '1': + if self.missing or self.incomp: + warnings.warn(r) + return lambda x: x + else: + return pytest.mark.skipif(self.missing or self.incomp, reason=r)(cb) + + +def skipif(*args, **kwargs): + if os.environ.get('CHEMPY_SKIP_NO_TESTS', '0') == '1': + return lambda x: x + else: + return pytest.mark.skipif(*args, **kwargs) diff --git a/chempy/util/tests/test_graph.py b/chempy/util/tests/test_graph.py index 698415b3..8fb691c9 100644 --- a/chempy/util/tests/test_graph.py +++ b/chempy/util/tests/test_graph.py @@ -11,7 +11,7 @@ from chempy import Reaction, ReactionSystem, Substance from ..graph import rsys2dot, rsys2graph -from ..testing import requires +from ..testing import requires, skipif try: dot_missing = subprocess.call(['dot', '-?']) != 0 @@ -28,7 +28,7 @@ def _get_rsys(): @requires('numpy') -@pytest.mark.skipif(dot_missing, reason='graphviz not installed? (dot command missing)') +@skipif(dot_missing, reason='graphviz not installed? (dot command missing)') def test_rsys2dot(): rsys = _get_rsys() assert list(map(str.strip, rsys2dot(rsys))) == [ @@ -47,7 +47,7 @@ def test_rsys2dot(): @pytest.mark.slow @requires('numpy') -@pytest.mark.skipif(dot_missing, reason='graphviz not installed? (dot command missing)') +@skipif(dot_missing, reason='graphviz not installed? (dot command missing)') def test_rsys2graph(): rsys = _get_rsys() tempdir = tempfile.mkdtemp() diff --git a/chempy/util/tests/test_table.py b/chempy/util/tests/test_table.py index fc52affc..dbe58007 100644 --- a/chempy/util/tests/test_table.py +++ b/chempy/util/tests/test_table.py @@ -11,6 +11,7 @@ rsys2tablines, rsys2table, rsys2pdf_table ) from .test_graph import _get_rsys +from ..testing import skipif try: @@ -45,7 +46,7 @@ def test_rsys2table(): @pytest.mark.slow @pytest.mark.parametrize('longtable', (True, False)) -@pytest.mark.skipif(pdflatex_missing, reason='latex not installed? (pdflatex command missing)') +@skipif(pdflatex_missing, reason='latex not installed? (pdflatex command missing)') def test_rsys2pdf_table(longtable): rsys = _get_rsys() tempdir = tempfile.mkdtemp() @@ -56,7 +57,7 @@ def test_rsys2pdf_table(longtable): @pytest.mark.slow -@pytest.mark.skipif(pdflatex_missing, reason='latex not installed? (pdflatex command missing)') +@skipif(pdflatex_missing, reason='latex not installed? (pdflatex command missing)') def test_rsys2pdf_table_no_output_dir(): rsys = _get_rsys() rsys2pdf_table(rsys, save=False) From 5b4bf0f9d33f0ac2a607a2288815532a995fba9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Fri, 30 Oct 2020 08:02:53 +0100 Subject: [PATCH 03/13] pytest-pep8 unmaintained, will need to find a replacement --- setup.cfg | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/setup.cfg b/setup.cfg index 15a6b9de..7595289b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,10 +1,10 @@ [tool:pytest] -norecursedirs = .* _* build dist conda-recipe scripts benchmarks doc deploy venv *cache* -pep8maxlinelength=119 -pep8ignore = - doc/conf.py ALL # conf.py is a generated file - test_water_viscosity_korson_1969.py E222 # multiple spaces after operator - chempy/kinetics/tests/test_rates.py E221 E222 E226 E251 +testpaths = chempy +# pep8maxlinelength=119 +# pep8ignore = +# doc/conf.py ALL # conf.py is a generated file +# test_water_viscosity_korson_1969.py E222 # multiple spaces after operator +# chempy/kinetics/tests/test_rates.py E221 E222 E226 E251 flakes-ignore = doc/conf.py ALL # conf.py is a generated file __init__.py UnusedImport ImportStarUsed From d1a68a74cc1a20bff924ec5190c75c148dd265f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Fri, 30 Oct 2020 08:03:25 +0100 Subject: [PATCH 04/13] Fix the new internal skipif function --- chempy/util/testing.py | 14 ++++---------- examples/kinetics.png | Bin 51372 -> 51364 bytes scripts/run_tests.sh | 2 +- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/chempy/util/testing.py b/chempy/util/testing.py index 40837590..fd145d48 100644 --- a/chempy/util/testing.py +++ b/chempy/util/testing.py @@ -6,7 +6,6 @@ import os from operator import lt, le, eq, ne, ge, gt import pytest -import warnings _relop = dict(zip('< <= == != >= >'.split(), (lt, le, eq, ne, ge, gt))) @@ -57,16 +56,11 @@ def __call__(self, cb): r += " Missing modules: %s." % ', '.join(self.missing) if self.incomp: r += " Incomp versions: %s." % ', '.join(self.incomp) - if os.environ.get('CHEMPY_SKIP_NO_TESTS', '0') == '1': - if self.missing or self.incomp: - warnings.warn(r) - return lambda x: x - else: - return pytest.mark.skipif(self.missing or self.incomp, reason=r)(cb) + return skipif(self.missing or self.incomp, reason=r)(cb) -def skipif(*args, **kwargs): +def skipif(predicate, *, reason): if os.environ.get('CHEMPY_SKIP_NO_TESTS', '0') == '1': - return lambda x: x + return pytest.mark.skipif(False, reason=reason) else: - return pytest.mark.skipif(*args, **kwargs) + return pytest.mark.skipif(predicate, reason=reason) diff --git a/examples/kinetics.png b/examples/kinetics.png index 3f55717b37de532e684ff86f9190a4f6cf4ad300..6e8866ac468ff9f3753c5fa2fd019aa4ce3ef0dd 100644 GIT binary patch literal 51364 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%0A2e=aIW&&8FO$M34#Ep?x{+4+w(JR>yY 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 F{{_7dR&4+P literal 51372 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 U?7kE=2tALil%iy*grWcc16;#;wg3PC diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh index dc7745c4..542a19c6 100755 --- a/scripts/run_tests.sh +++ b/scripts/run_tests.sh @@ -3,6 +3,6 @@ # $ ./scripts/run_tests.sh # or # $ ./scripts/run_tests.sh --cov chempy --cov-report html -CHEMPY_DEPRECATION_FILTER='ignore' ${PYTHON:-python3} -m pytest -ra --doctest-modules --pep8 --flakes --slow --veryslow $@ +CHEMPY_DEPRECATION_FILTER='ignore' ${PYTHON:-python3} -m pytest -ra --doctest-modules --flakes --slow --veryslow $@ MPLBACKEND=Agg ${PYTHON:-python3} -m doctest README.rst rstcheck README.rst From 748303d4b777b54192079683f2d6cf91535ff0aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Fri, 30 Oct 2020 08:10:17 +0100 Subject: [PATCH 05/13] CI: try to evict cache --- .drone.yml | 30 +++++++++++++++--------------- setup.py | 7 ++++--- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/.drone.yml b/.drone.yml index e4cba101..5a132a55 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,9 +3,9 @@ pipeline: image: drillster/drone-volume-cache restore: true mount: - - ./ci-cache/pyusrb - - ./ci-cache/conda_packages - - ./ci-cache/pip_cache + - ./ci_cache/pyusrb + - ./ci_cache/conda_packages + - ./ci_cache/pip_cache volumes: - /tmp/cache:/cache ttl: 90 # liftetime in days @@ -19,12 +19,12 @@ pipeline: - SUNDBASE=/opt/sundials-5.4.0-klu-lapack - CPATH=/usr/include/suitesparse # sunlinsol_klu.h includes "klu.h" commands: - - export PYTHONUSERBASE=$(pwd)/ci-cache/pyusrb + - export PYTHONUSERBASE=$(pwd)/ci_cache/pyusrb - if [ ! -d $PYTHONUSERBASE ]; then mkdir -p $PYTHONUSERBASE; fi - export CPATH=$SUNDBASE/include:$CPATH - export LIBRARY_PATH=$SUNDBASE/lib - export LD_LIBRARY_PATH=$SUNDBASE/lib - - python3 -m pip install --cache-dir ./ci-cache/pip_cache --user -e .[all] + - python3 -m pip install --cache-dir ./ci_cache/pip_cache --user -e .[all] - python3 -c "import pycvodes; import pyodesys; import pygslodeiv2" # debug this CI config - git fetch -tq - python3 setup.py sdist # test pip installable sdist (checks MANIFEST.in) @@ -43,7 +43,7 @@ pipeline: - CPATH=/usr/include/suitesparse # sunlinsol_klu.h includes "klu.h" - CHEMPY_SKIP_NO_TESTS=1 commands: - - export PYTHONUSERBASE=$(pwd)/ci-cache/pyusrb + - export PYTHONUSERBASE=$(pwd)/ci_cache/pyusrb - export CPATH=$SUNDBASE/include:$CPATH - export LIBRARY_PATH=$SUNDBASE/lib - export LD_LIBRARY_PATH=$SUNDBASE/lib @@ -56,8 +56,8 @@ pipeline: - python3 -m virtualenv /tmp/test_sdist - python3 -m virtualenv /tmp/test_git_archive - cd deploy/public_html/branches/${DRONE_BRANCH} - - bash -c "source /tmp/test_sdist/bin/activate; pip install --cache-dir ./ci-cache/pip_cache $(eval ls chempy-*.tar.gz) pytest; pytest --pyargs chempy" - - bash -c "source /tmp/test_git_archive/bin/activate; pip install --cache-dir ./ci-cache/pip_cache chempy-head.zip pytest; pytest --pyargs chempy" + - bash -c "source /tmp/test_sdist/bin/activate; pip install --cache-dir ./ci_cache/pip_cache $(eval ls chempy-*.tar.gz) pytest; pytest --pyargs chempy" + - bash -c "source /tmp/test_git_archive/bin/activate; pip install --cache-dir ./ci_cache/pip_cache chempy-head.zip pytest; pytest --pyargs chempy" render-notebooks: image: bjodah/bjodahimg20dot:2.1.0.3 @@ -68,7 +68,7 @@ pipeline: - CC=gcc-10 - CXX=g++-10 commands: - - export PYTHONUSERBASE=$(pwd)/ci-cache/pyusrb + - export PYTHONUSERBASE=$(pwd)/ci_cache/pyusrb - export CPATH=$SUNDBASE/include - export LIBRARY_PATH=$SUNDBASE/lib - export LD_LIBRARY_PATH=$SUNDBASE/lib @@ -82,7 +82,7 @@ pipeline: # image: bjodah/bjodahimg20dot:2.1.0.3 # group: testing # commands: -# - export CONDA_PKGS_DIRS=$(pwd)/ci-cache/conda_packages +# - export CONDA_PKGS_DIRS=$(pwd)/ci_cache/conda_packages # - git fetch -tq # - PATH=/opt/miniconda3/bin:$PATH conda config --add channels bjodah # sym, pyodesys, pyneqsys # - PATH=/opt/miniconda3/bin:$PATH conda build --output-folder "deploy/public_html/branches/${DRONE_BRANCH}" conda-recipe @@ -94,7 +94,7 @@ pipeline: - CHEMPY_DEPRECATION_FILTER=ignore - SUNDBASE=/opt/sundials-5.4.0-klu-lapack commands: - - export PYTHONUSERBASE=$(pwd)/ci-cache/pyusrb + - export PYTHONUSERBASE=$(pwd)/ci_cache/pyusrb - export CPATH=$SUNDBASE/include - export LIBRARY_PATH=$SUNDBASE/lib - export LD_LIBRARY_PATH=$SUNDBASE/lib @@ -106,10 +106,10 @@ pipeline: image: drillster/drone-volume-cache rebuild: true mount: -# - ./ci-cache/sund-3.2.1 - - ./ci-cache/pyusrb - - ./ci-cache/conda_packages - - ./ci-cache/pip_cache +# - ./ci_cache/sund-3.2.1 + - ./ci_cache/pyusrb + - ./ci_cache/conda_packages + - ./ci_cache/pip_cache volumes: - /tmp/cache:/cache diff --git a/setup.py b/setup.py index 1327bd61..403754db 100755 --- a/setup.py +++ b/setup.py @@ -75,6 +75,7 @@ def _path_under_setup(*args): 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', ] with io.open(_path_under_setup(pkg_name, '__init__.py'), 'rt', encoding='utf-8') as f: @@ -88,11 +89,11 @@ def _path_under_setup(*args): extras_req = { 'integrators': ['pyodeint>=0.10.4', 'pycvodes>=0.13.1', 'pygslodeiv2>=0.9.4'], - 'solvers': ['pykinsol>=0.1.5'], - 'native': ['pycompilation>=0.4.9', 'pycodeexport>=0.1.2', 'appdirs'], + 'solvers': ['pykinsol>=0.1.6'], + 'native': ['pycompilation>=0.4.12', 'pycodeexport>=0.1.3', 'appdirs'], 'docs': ['Sphinx', 'sphinx_rtd_theme', 'numpydoc'], 'plotting': ['bokeh>=0.13.0', 'ipywidgets'], - 'testing': ['pytest>=3.9', 'pytest-cov', 'pytest-flakes', 'pytest-pep8', 'rstcheck'] + 'testing': ['pytest>=3.9', 'pytest-cov', 'pytest-flakes', 'rstcheck'] } extras_req['all'] = list(chain(extras_req.values())) From cf4657122e4e40364582c7909e9453575eea8dc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Fri, 30 Oct 2020 08:22:38 +0100 Subject: [PATCH 06/13] Try to specify extras to pip when installing from file --- .drone.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 5a132a55..5ac342e2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -56,8 +56,8 @@ pipeline: - python3 -m virtualenv /tmp/test_sdist - python3 -m virtualenv /tmp/test_git_archive - cd deploy/public_html/branches/${DRONE_BRANCH} - - bash -c "source /tmp/test_sdist/bin/activate; pip install --cache-dir ./ci_cache/pip_cache $(eval ls chempy-*.tar.gz) pytest; pytest --pyargs chempy" - - bash -c "source /tmp/test_git_archive/bin/activate; pip install --cache-dir ./ci_cache/pip_cache chempy-head.zip pytest; pytest --pyargs chempy" + - bash -c "source /tmp/test_sdist/bin/activate; pip install --cache-dir ./ci_cache/pip_cache file://$(realpath $(eval ls chempy-*.tar.gz))#chempy[all] pytest; pytest --pyargs chempy" + - bash -c "source /tmp/test_git_archive/bin/activate; pip install --cache-dir ./ci_cache/pip_cache file://$(realpath chempy-head.zip)#chempy[all] pytest; pytest --pyargs chempy" render-notebooks: image: bjodah/bjodahimg20dot:2.1.0.3 From 799f1bd4c7af1cc2f357c3e1d07a3908207385cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Fri, 30 Oct 2020 08:26:57 +0100 Subject: [PATCH 07/13] Skip native in some test runs for now --- .drone.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.yml b/.drone.yml index 5ac342e2..0734dc65 100644 --- a/.drone.yml +++ b/.drone.yml @@ -56,6 +56,7 @@ pipeline: - python3 -m virtualenv /tmp/test_sdist - python3 -m virtualenv /tmp/test_git_archive - cd deploy/public_html/branches/${DRONE_BRANCH} + - unset CHEMPY_SKIP_NO_TESTS # I can't get pip to install extras when using local file... - bash -c "source /tmp/test_sdist/bin/activate; pip install --cache-dir ./ci_cache/pip_cache file://$(realpath $(eval ls chempy-*.tar.gz))#chempy[all] pytest; pytest --pyargs chempy" - bash -c "source /tmp/test_git_archive/bin/activate; pip install --cache-dir ./ci_cache/pip_cache file://$(realpath chempy-head.zip)#chempy[all] pytest; pytest --pyargs chempy" From f6dee12ee15e5e7c0ab55b1fd3122b2d5bbc9df5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Fri, 30 Oct 2020 08:34:15 +0100 Subject: [PATCH 08/13] Handle sundials including "klu.h" --- .drone.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 0734dc65..c29217a7 100644 --- a/.drone.yml +++ b/.drone.yml @@ -68,9 +68,10 @@ pipeline: - SUNDBASE=/opt/sundials-5.4.0-klu-lapack - CC=gcc-10 - CXX=g++-10 + - CPATH=/usr/include/suitesparse # sunlinsol_klu.h includes "klu.h" commands: - export PYTHONUSERBASE=$(pwd)/ci_cache/pyusrb - - export CPATH=$SUNDBASE/include + - export CPATH=$SUNDBASE/include:$CPATH - export LIBRARY_PATH=$SUNDBASE/lib - export LD_LIBRARY_PATH=$SUNDBASE/lib - ./scripts/render_notebooks.sh From b21c8ff2bb4b5a8ad73eb734c3b200f0c43a7831 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Tue, 24 Nov 2020 00:58:45 +0100 Subject: [PATCH 09/13] Use sundials-5.5.0 --- scripts/environment/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/environment/Dockerfile b/scripts/environment/Dockerfile index 03f27f5a..4fb0f7ba 100644 --- a/scripts/environment/Dockerfile +++ b/scripts/environment/Dockerfile @@ -9,8 +9,8 @@ RUN apt-get update && \ apt-get --quiet --assume-yes install curl git g++-8 libgmp-dev binutils-dev bzip2 make cmake sudo \ python3-dev python3-pip libgsl-dev liblapack-dev graphviz && \ apt-get clean && \ - curl -LOs http://computation.llnl.gov/projects/sundials/download/sundials-5.4.0.tar.gz && \ - tar xzf sundials-5.4.0.tar.gz && mkdir build/ && cd build/ && \ + curl -LOs http://computation.llnl.gov/projects/sundials/download/sundials-5.5.0.tar.gz && \ + tar xzf sundials-5.5.0.tar.gz && mkdir build/ && cd build/ && \ cmake -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DEXAMPLES_ENABLE=OFF -DEXAMPLES_INSTALL=OFF \ ../sundials*/ && make install && cd - && rm -r build/ sundials* && \ From 40a9906f54ce1d3420f3f2bd984fa999657a5aac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Tue, 24 Nov 2020 10:00:10 +0100 Subject: [PATCH 10/13] debian:buster -> debian:bullseye --- scripts/environment/Dockerfile | 42 +++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/scripts/environment/Dockerfile b/scripts/environment/Dockerfile index 4fb0f7ba..aa4145fc 100644 --- a/scripts/environment/Dockerfile +++ b/scripts/environment/Dockerfile @@ -1,22 +1,38 @@ -FROM debian:buster +FROM debian:bullseye MAINTAINER Björn Dahlgren ENV LANG C.UTF-8 -# This dockerfile is designed to run on binder (mybinder.org) RUN apt-get update && \ - apt-get --quiet --assume-yes install curl git g++-8 libgmp-dev binutils-dev bzip2 make cmake sudo \ - python3-dev python3-pip libgsl-dev liblapack-dev graphviz && \ - apt-get clean && \ - curl -LOs http://computation.llnl.gov/projects/sundials/download/sundials-5.5.0.tar.gz && \ - tar xzf sundials-5.5.0.tar.gz && mkdir build/ && cd build/ && \ - cmake -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DEXAMPLES_ENABLE=OFF -DEXAMPLES_INSTALL=OFF \ - ../sundials*/ && make install && cd - && rm -r build/ sundials* && \ - python3 -m pip install --upgrade pip && \ - curl -LOs http://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2 && \ - tar xjf boost_*.tar.bz2 && cd boost* && ./bootstrap.sh && ./b2 -j 2 --prefix=/usr/local/ install && cd - + apt-get --quiet --assume-yes install curl git g++-10 gfortran-10 libgmp-dev binutils-dev bzip2 make cmake sudo \ + python3-dev python3-pip libboost-dev libgsl-dev liblapack-dev libsuitesparse-dev graphviz && \ + apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +RUN mkdir /tmp/sundials-5.5.0-build && \ + curl -Ls https://github.com/LLNL/sundials/releases/download/v5.5.0/sundials-5.5.0.tar.gz | tar xz -C /tmp && \ + FC=gfortran-10 cmake \ + -S /tmp/sundials-5.5.0 \ + -B /tmp/sundials-5.5.0-build \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_STATIC_LIBS=OFF \ + -DEXAMPLES_ENABLE_C=OFF \ + -DEXAMPLES_INSTALL=OFF \ + -DENABLE_LAPACK=ON \ + -DSUNDIALS_INDEX_SIZE=32 \ + -DENABLE_KLU=ON \ + -DKLU_INCLUDE_DIR=/usr/include/suitesparse \ + -DKLU_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu && \ + cmake --build /tmp/sundials-5.5.0-build && \ + cmake --build /tmp/sundials-5.5.0-build --target install && \ + rm -r /tmp/sundials-5.5.0*/ && \ + python3 -m pip install --upgrade-strategy=eager --upgrade pip && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + + +# http://computation.llnl.gov/projects/sundials/download/sundials-5.5.0.tar.gz # At this point the system should be able to pip-install the package and all of its dependencies. We'll do so # when running the image using the ``host-jupyter-using-docker.sh`` script. Installed packages are cached. From 3f86acf9fb2c223f4da18d1cf7589e3ea08490d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Tue, 24 Nov 2020 10:03:22 +0100 Subject: [PATCH 11/13] more verbose test output from docker based script --- scripts/host-jupyter-using-docker.sh | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/scripts/host-jupyter-using-docker.sh b/scripts/host-jupyter-using-docker.sh index bd807cd0..6e38493a 100755 --- a/scripts/host-jupyter-using-docker.sh +++ b/scripts/host-jupyter-using-docker.sh @@ -1,14 +1,17 @@ #!/bin/bash -ue # -# Usage: +# This script requires that Docker is installed. +# +# Arguments: mount-path, port-number, Dockerfile-path +# +# To host a local jupyter notebook server rung e.g.: # # $ ./scripts/host-jupyter-using-docker.sh # $ ./scripts/host-jupyter-using-docker.sh . 8888 ./scripts/environment -# $ ./scripts/host-jupyter-using-docker.sh . 0 ./scripts/environment # -# Arguments: mount-path, port-number, Dockerfile-path +# To instead run the test suite, specify "0" as the port number: # -# If port == 0: the test suite is run +# $ ./scripts/host-jupyter-using-docker.sh . 0 ./scripts/environment # MOUNT=${1:-.} PORT=${2:-8888} @@ -26,7 +29,7 @@ if [[ "$DOCKERIMAGE" == ./* ]]; then DOCKERIMAGE=$(sudo docker build $DOCKERIMAGE | tee /dev/tty | tail -1 | cut -d' ' -f3) fi if [[ "$PORT" == "0" ]]; then - LOCALCMD="pytest -rs --pyargs $PKG" + LOCALCMD="pytest -sv -ra --pyargs $PKG" PORTFWD="" else LOCALCMD="jupyter notebook --no-browser --port $PORT --ip=* index.ipynb" From 47255be4c5d838d0fd050a7eb4f4cb22966101bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Tue, 24 Nov 2020 10:05:29 +0100 Subject: [PATCH 12/13] bump dev version --- chempy/_release.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chempy/_release.py b/chempy/_release.py index f16d534d..8a3e0698 100644 --- a/chempy/_release.py +++ b/chempy/_release.py @@ -1 +1 @@ -__version__ = "0.8.0.dev0+git" +__version__ = "0.8.1.dev0+git" From 1e55ca94bb7cec8c6cf6f431b7f56611ed7f8805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Tue, 24 Nov 2020 10:06:32 +0100 Subject: [PATCH 13/13] remove unused import --- chempy/util/tests/test_graph.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/chempy/util/tests/test_graph.py b/chempy/util/tests/test_graph.py index 5e0e949e..796b747c 100644 --- a/chempy/util/tests/test_graph.py +++ b/chempy/util/tests/test_graph.py @@ -7,8 +7,6 @@ import shutil import tempfile -import pytest - from chempy import Reaction, ReactionSystem, Substance from ..graph import rsys2dot, rsys2graph from ..testing import requires, skipif