diff --git a/.travis.yml b/.travis.yml index 140dbe257..ef5c2cf19 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ sudo: false env: global: - PATH=$HOME/miniconda/bin:$PATH - - common_py_deps="conda-build=2.1.2" + - common_py_deps="conda-build=2.1.4" - PACKAGENAME=pyemma - ORGNAME=omnia - PYTHONHASHSEED=0 @@ -21,12 +21,13 @@ env: - CONDA_PY=2.7 CONDA_NPY=1.11 - CONDA_PY=3.4 CONDA_NPY=1.10 - CONDA_PY=3.5 CONDA_NPY=1.11 + - CONDA_PY=3.6 CONDA_NPY=1.11 before_install: - devtools/ci/travis/install_miniconda.sh - conda config --set always_yes true - conda config --add channels omnia -- conda config --add channels conda-forge +#- conda config --add channels conda-forge - conda install -q $common_py_deps script: @@ -34,7 +35,5 @@ script: after_success: - pwd; ls -alh -#- bash <(curl -s https://codecov.io/bash) -s $HOME -- pip install codecov -- codecov --file $HOME/coverage.xml +- bash <(curl -s https://codecov.io/bash) -s $HOME -e CONDA_PY,CONDA_NPY diff --git a/appveyor.yml b/appveyor.yml index fcaa521d3..cc35cefbc 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -23,13 +23,17 @@ environment: CONDA_PY: "34" ARCH: "64" + - MINICONDA_PYTHON: "C:\\Miniconda3-x64" + CONDA_PY: "36" + ARCH: "64" + install: - "SET PATH=%MINICONDA_PYTHON%;%MINICONDA_PYTHON%\\Scripts;%PATH%;" - conda config --set always_yes true - conda config --add channels omnia - - conda config --add channels conda-forge - - conda install -q conda-build=2.1.2 jinja2 +# - conda config --add channels conda-forge + - conda install -q conda-build=2.1.4 jinja2 # use agg backend in matplotlib to avoid gui popup, which can not be closed. - echo %userprofile% @@ -40,7 +44,7 @@ build: false # Not a C# project, build stuff at the test step instead. test_script: # run testsuite and upload test results to AppVeyor; return exit code of testsuite - - conda build -q devtools/conda-recipe + - "%CMD_IN_ENV% conda build -q devtools/conda-recipe" #on_success: # - devtools/ci/appveyor/after_success.bat diff --git a/circle.yml b/circle.yml index 7ece6be08..4e4fb2092 100644 --- a/circle.yml +++ b/circle.yml @@ -15,7 +15,7 @@ checkout: dependencies: override: - devtools/ci/circle/install_miniconda.sh - - conda config --add channels conda-forge + - conda config --add channels omnia - conda config --set always_yes true - conda install conda-build diff --git a/devtools/conda-recipe/bld.bat b/devtools/conda-recipe/bld.bat index 38163a4c3..c8a7eacfb 100644 --- a/devtools/conda-recipe/bld.bat +++ b/devtools/conda-recipe/bld.bat @@ -1,9 +1 @@ -if not defined APPVEYOR ( - echo not on appveyor - "%PYTHON%" setup.py install -) else ( - echo on appveyor - cmd /E:ON /V:ON /C %APPVEYOR_BUILD_FOLDER%\devtools\ci\appveyor\run_with_env.cmd "%PYTHON%" setup.py install -) -set build_status=%ERRORLEVEL% -if %build_status% == 1 exit 1 +%PYTHON% setup.py install --single-version-externally-managed --record record.txt diff --git a/devtools/conda-recipe/build.sh b/devtools/conda-recipe/build.sh old mode 100755 new mode 100644 index 4dad93a1c..6dc773ab9 --- a/devtools/conda-recipe/build.sh +++ b/devtools/conda-recipe/build.sh @@ -1,2 +1,6 @@ #!/bin/bash -$PYTHON setup.py install +if [[ $OSTYPE == darwin* ]]; then + export CFLAGS="-headerpad_max_install_names" + export CXXFLAGS=$CFLAGS +fi +$PYTHON setup.py install --single-version-externally-managed --record record.txt diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml index 5c5b74408..7faef6caa 100644 --- a/devtools/conda-recipe/meta.yaml +++ b/devtools/conda-recipe/meta.yaml @@ -11,50 +11,34 @@ build: requirements: build: + - cython + - mdtraj + - numpy x.x - python - - setuptools - - cython >=0.20 - - bhmm >=0.6,<0.7 - - joblib >0.8.4 - - matplotlib - - mdtraj >=1.7 - - mock - - funcsigs - - msmtools >=1.1.3 - - thermotools >=0.2.3 - - nose - - numpy x.x - - pyyaml - scipy - - six - - psutil >=3.1.1 - - decorator >=4.0.0 - - progress_reporter <=1.2 - - run: - - python - setuptools + run: - bhmm >=0.6,<0.7 + - decorator >=4.0.0 - joblib >0.8.4 - matplotlib - - mdtraj >=1.7 + - mdtraj - mock - - funcsigs - - msmtools >=1.1.3 - - thermotools >=0.2.3 + - msmtools >=1.2 - numpy x.x + - progress_reporter <=1.2 + - psutil >3.1 + - python - pyyaml - scipy + - setuptools - six >=1.10 - - psutil >=3.1.1 - - decorator >=4.0.0 - - progress_reporter <=1.2 + - thermotools >=0.2.3 test: requires: - pytest - pytest-cov - #- pytest-xdist imports: - pyemma diff --git a/pyemma/conftest.py b/pyemma/conftest.py index f56e4cc7a..9297df445 100644 --- a/pyemma/conftest.py +++ b/pyemma/conftest.py @@ -7,28 +7,3 @@ def no_progress_bars(): import pyemma pyemma.config.show_progress_bars = False pyemma.config.use_trajectory_lengths_cache = False - - -def static_var(name, value): - def decorate(func): - setattr(func, name, value) - return func - return decorate - - -def get_extension_names(): - import json, pkg_resources - extensions_file = pkg_resources.resource_filename('pyemma', '_extensions.json') - with open(extensions_file) as f: - inp = json.load(f) - extension_stubs = [e.split('.')[-1] for e in inp] - return extension_stubs - - -# this hook should ignore setuptools generated stub loaders for extension, -# because they cause PathMismatch errors in pytest during discovery. -@static_var('extension_stubs', get_extension_names()) -def pytest_ignore_collect(path, config): - - if any(path.basename.startswith(e) for e in pytest_ignore_collect.extension_stubs): - return True diff --git a/setup.py b/setup.py index afbfbd64d..c1ee94941 100755 --- a/setup.py +++ b/setup.py @@ -219,23 +219,6 @@ def run_tests(self): versioneer_cmds['test'] = PyTest - from setuptools.command.egg_info import egg_info - - class extensions_json(egg_info): - def run(self): - f = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'pyemma', '_extensions.json') - print("Generating {}".format(f)) - extension_names = [e.name for e in extensions()] - - with open(f, 'wb') as fp: - import json - s = json.dumps(extension_names).encode('ascii') - fp.write(s) - - egg_info.run(self) - - versioneer_cmds['egg_info'] = extensions_json - return versioneer_cmds @@ -262,9 +245,9 @@ def run(self): # runtime dependencies install_requires=['numpy>=1.7.0', 'scipy>=0.11', - 'mdtraj>=1.7.0', + 'mdtraj>=1.8.0', 'matplotlib', - 'msmtools>=1.1.4', + 'msmtools>=1.2', 'thermotools>=0.2.3', 'bhmm>=0.6,<0.7', 'joblib>0.8.4', @@ -293,7 +276,7 @@ def run(self): ] metadata['package_data'] = { - 'pyemma': ['pyemma.cfg', 'logging.yml', '_extensions.json', 'setup.cfg'], + 'pyemma': ['pyemma.cfg', 'logging.yml', 'setup.cfg'], 'pyemma.coordinates.tests': ['data/*'], 'pyemma.msm.tests': ['data/*'], 'pyemma.datasets': ['*.npz'],