Page MenuHomePhabricator

Jenkins: install tox on Precise labs instances
Closed, ResolvedPublic

Description

python-tox is only in raring for now, need a backport in Precise.


Version: unspecified
Severity: enhancement

Details

Reference
bz44443

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 1:18 AM
bzimport set Reference to bz44443.
bzimport added a subscriber: Unknown Object (MLST).

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.

@hashar is there still any reason to keep tox pinned to this old version? Any chance we could upgrade it to a newer one? Jessie backports has 2.5.0 and latest from pip is 2.7.0.