> On Dec 29, 2016, at 7:20 PM, Tim Allen <screwt...@froup.com> wrote:
> 
> 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.
> 



FTR, you can configure setup_requires too, it just uses a different format.
In any of the files listed at 
https://docs.python.org/3.6/install/index.html#location-and-names-of-config-files
 
<https://docs.python.org/3.6/install/index.html#location-and-names-of-config-files>
You can drop a 

[easy_install]
Index_url = https://private.example.com/simple/
allow_hosts = private.example.com  # not strictly required, but will error 
instead of timeout for non private.example.com

I’m not 100% sure on the exact syntax/structure, but something like that should 
work.


—
Donald Stufft



_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to