diff --git a/.travis.yml b/.travis.yml index 8e2530d..0204f00 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,14 +4,29 @@ branches: except: - gh-pages +env: + - ROS_DISTRO=indigo + - ROS_DISTRO=kinetic + # Not LTS + - ROS_DISTRO=lunar + python: + # always test python2 (default supported python version for ROS1) - 2.7 - - 3.4 - - 3.5 + # always test latest python3 (to guarantee recent python support) - 3.6 #- pypy #- pypy3 +# Add specific python3 versions +matrix: + include: + # explicitely matching python version to the version on the ubuntu distro supported by the ROS LTS distro + - python: 3.4 + env: ROS_DISTRO=indigo + - python: 3.5 + env: ROS_DISTRO=kinetic + before_install: install: diff --git a/dev-requirements.txt b/requirements/indigo.txt similarity index 87% rename from dev-requirements.txt rename to requirements/indigo.txt index 31ae007..80fb301 100644 --- a/dev-requirements.txt +++ b/requirements/indigo.txt @@ -11,4 +11,4 @@ numpy>=1.8.2 # from trusty version # ros dependencies (necessary when running tests from install) -e git+https://github.com/asmodehn/genmsg.git@setuptools#egg=ros_genmsg --e git+https://github.com/asmodehn/genpy.git@setuptools-kinetic-py3#egg=ros_genpy +-e git+https://github.com/asmodehn/genpy.git@setuptools#egg=ros_genpy diff --git a/requirements/kinetic.txt b/requirements/kinetic.txt new file mode 100644 index 0000000..25fd621 --- /dev/null +++ b/requirements/kinetic.txt @@ -0,0 +1,14 @@ +gitchangelog +twine +pytest>=2.8.0 # as per hypothesis requirement (careful with 2.5.1 on trusty) +pytest-xdist # for --boxed (careful with the version it will be moved out of xdist) +hypothesis>=3.0.1 # to target xenial LTS version +numpy>=1.8.2 # from trusty version + +# source access to latest filefinder and rosimport from git ... +-e git+https://github.com/asmodehn/filefinder2.git#egg=filefinder2 +-e git+https://github.com/asmodehn/rosimport.git#egg=rosimport + +# ros dependencies (necessary when running tests from install) +-e git+https://github.com/asmodehn/genmsg.git@setuptools#egg=ros_genmsg +-e git+https://github.com/asmodehn/genpy.git@setuptools-kinetic#egg=ros_genpy diff --git a/requirements/lunar.txt b/requirements/lunar.txt new file mode 100644 index 0000000..25fd621 --- /dev/null +++ b/requirements/lunar.txt @@ -0,0 +1,14 @@ +gitchangelog +twine +pytest>=2.8.0 # as per hypothesis requirement (careful with 2.5.1 on trusty) +pytest-xdist # for --boxed (careful with the version it will be moved out of xdist) +hypothesis>=3.0.1 # to target xenial LTS version +numpy>=1.8.2 # from trusty version + +# source access to latest filefinder and rosimport from git ... +-e git+https://github.com/asmodehn/filefinder2.git#egg=filefinder2 +-e git+https://github.com/asmodehn/rosimport.git#egg=rosimport + +# ros dependencies (necessary when running tests from install) +-e git+https://github.com/asmodehn/genmsg.git@setuptools#egg=ros_genmsg +-e git+https://github.com/asmodehn/genpy.git@setuptools-kinetic#egg=ros_genpy diff --git a/tox.ini b/tox.ini index d3f7bbb..54e309b 100644 --- a/tox.ini +++ b/tox.ini @@ -1,30 +1,40 @@ # content of: tox.ini , put in same dir as setup.py [tox] -envlist = py27, py34, py35, py36 +# Only considering ROS LTS for simplicity +envlist = py27-ros1{indigo,kinetic,lunar}, py34-ros1indigo, py35-ros1kinetic, py36-ros1{indigo,kinetic,lunar} #, pypy #, pypy3 [travis] -2.7 = py27 -3.4 = py34 -3.5 = py35 -3.6 = py36 +python = + # we test every current ROS1 distro on python 2.7 (official python support for ROS1) + 2.7 : py27 + # specific old python supported natively on ubuntu/ROS LTS distro + 3.4 : py34 + 3.5 : py35 + # we test every current ROS1 distro on latest python (to ensure support from pure python) + 3.6 : py36 # not tested yet #pypy = pypy #pypy3 = pypy3 -# Note : We can depend on travis matrix if needed -;[travis:env] -;DJANGO = -; 1.7: django17 -; 1.8: django18, docs +# We depend on travis matrix +[travis:env] +ROS_DISTRO = + kinetic: ros1kinetic + indigo: ros1indigo + lunar: ros1lunar [testenv] + +# Dependencies matching the version in each ROS distro deps = # TODO : check why / how install_requires are installed or not in tox environments... - -rdev-requirements.txt + ros1indigo: -rrequirements/indigo.txt + ros1kinetic: -rrequirements/kinetic.txt + ros1lunar: -rrequirements/lunar.txt # to always force recreation and avoid unexpected side effects recreate=True