[Twisted-Python] Twisted 16.7.0rc1 Release Candidate Announcement
Tim Allen
screwtape at froup.com
Thu Dec 29 17:20:05 MST 2016
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.
More information about the Twisted-Python
mailing list