On Thu, Dec 29, 2016 at 05:27:44AM -0800, Glyph Lefkowitz wrote: > Increasingly, we are assuming a pip-like packaging toolchain for > dealing with Twisted's dependencies, so getting familiar with this > stuff - pip, requirements.txt, pinning, virtualenv - is worthwhile. > (It'll make your life easier in more ways than one.)
I wasn't going to mention it (because we found a workaround), but since the topic has come up... My current employer has a fully pip-based packaging toolchain for all our internal Python apps, where we build wheels for our apps and all their dependencies, and then deploy them into a virtualenv in production. For reproducability reasons, we have a PyPI mirror inside the corporate firewall, and our wheel-building Docker image has a `pip.conf` configured to point at it. Twisted 16.6 broke this system when it added a package named "incremental" to the `setup_requires` list in setup.py. Because `setup_requires` is a feature provided by setuptools, packages listed there are installed by (the same machinery as) setuptools' `ez_install` command, which does *not* respect `pip.conf`, and so it tried to download the package from upstream PyPI and timed out banging its head against the firewall. As a workaround, we messed with our build-scripts to manually "pip install" incremental before installing Twisted, or anything that depends on it, so everything's fine again. The Python Packaging Authority already has plans for replacing `setup_requires` with something more Pip-friendly (see PEP 518), so over time this won't be an issue. For the short term, though, I hope there won't be too many more things added to `setup_requires` without announcement. Tim. _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python