[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