Last modified: 2014-02-06 14:32:46 UTC
python-tox is only in raring for now, need a backport in Precise.
Note, the source package is "tox". Attempting backporting with: backportpackage -s raring -d precise -w workdir/ tox Created a bunch of files: $ ls -1 tox_1.4.2-2.debian.tar.gz tox_1.4.2-2.dsc tox_1.4.2-2~precise1.debian.tar.gz tox_1.4.2-2~precise1.dsc tox_1.4.2-2~precise1_source.build tox_1.4.2-2~precise1_source.changes tox_1.4.2-2~ubuntu12.04.1.debian.tar.gz tox_1.4.2-2~ubuntu12.04.1.dsc tox_1.4.2-2~ubuntu12.04.1_source.build tox_1.4.2-2~ubuntu12.04.1_source.changes tox_1.4.2.orig.tar.gz
rephrasing to backporting "tox" which is the source package providing "python-tox".
So that needs a bunch of other packages that need to be backported :( The following packages have unmet dependencies: pbuilder-satisfydepends-dummy : Depends: debhelper (>= 8) but it is not going to be installed Depends: python-all but it is not going to be installed Depends: python-argparse Depends: python-doc but it is not going to be installed Depends: python-pkg-resources but it is not going to be installed Depends: python-py but it is not installable Depends: python-pytest but it is not installable Depends: python-setuptools but it is not going to be installed Depends: python-sphinx (>= 1.0.7+dfsg) but it is not going to be installed Depends: python-virtualenv but it is not installable
So maybe instead of backporting we could snapshot tox using pip install in a virtual environment.
With tox 1.5.0 : The following packages have unmet dependencies: pbuilder-satisfydepends-dummy : Depends: python-pytest which is a virtual package. Depends: python-setuptools but it is not going to be installed. Depends: python-sphinx (>= 1.0.7+dfsg) but it is not going to be installed. Depends: python-virtualenv but it is not going to be installed. Would need to backport python-pytest as well :/
Alternatively we could run tox commands on labs. Puppet knows how to fetch from pip and the following would work (tested on integration-pbuilder.pmtpa.wmflabs ): $ cat pip.pp package { 'python-pip': ensure => present, } package { 'tox': ensure => present, provider => 'pip', require => Package['python-pip'], } $ # puppet apply pip.pp notice: /Stage[main]//Package[python-pip]/ensure: ensure changed 'purged' to 'present' notice: /Stage[main]//Package[tox]/ensure: created notice: Finished catalog run in 11.53 seconds # $ which pip && pip --version /usr/bin/pip pip 1.0 from /usr/lib/python2.7/dist-packages (python 2.7) $ which tox && tox --version /usr/local/bin/tox 1.7.0 imported from /usr/local/lib/python2.7/dist-packages/tox/__init__.pyc $ $ which virtualenv /usr/local/bin/virtualenv $ virtualenv --version 1.11.2 $ \O/
Change 111536 had a related patch set uploaded by Hashar: contint: on slave labs, install tox from pip https://gerrit.wikimedia.org/r/111536
Change 111536 merged by Alexandros Kosiaris: contint: on slave labs, install tox from pip https://gerrit.wikimedia.org/r/111536
Since backporting was too cumbersome, the pip option turned out to be an acceptable workaround. pip / tox / virtualenv should now be installed on any instance having role::ci::slave::labs (i.e.: integration-slave01). Such instances would need to be configured in Jenkins to have the 'hasTox' label for now.