There are four different versions of setuptools installed into the xenial Python 3.6 environment
Here I uninstall them one at a time: https://travis-ci.org/jayvdb/coala/jobs/567438424#L204
It would be nice if there was just one or two (often the last one is hard to remove)
Also pipenv 2018.11.26 is preinstalled into the xenial Python 3.6 environment, even when there isnt a Pipfile. I dont recall this being present in trusty images. I see it in https://github.com/travis-ci/cpython-builder/pull/27
This is a rather large change from the baseline python virtualenv, as pipenv 2018.11.26 depends on
required = [ "pip>=18.0", "certifi", "setuptools>=36.2.1", "virtualenv-clone>=0.2.5", "virtualenv", 'enum34; python_version<"3"', # LEAVE THIS HERE!!! we have vendored dependencies that require it 'typing; python_version<"3.5"' ]
It would be good if pipenv was optional based on whether a
Pipfile exists in the repo.
Also IMO it would be a good idea to pin the preinstalled pytest dependency to pytest<5 , at least for a while, as pytest 5 broke most non-core plugins, and decommissioned py27 and py34 support. If a user has a
requirements.txt which includes unpinned
pytest and a pytest plugin which isnt maintained by the core pytest devs , there is a very high chance that their build will start breaking.