[Twisted-Python] Twisted 16.7.0rc1 Release Candidate Announcement

Amber "Hawkie" Brown hawkowl at atleastfornow.net
Wed Dec 28 16:37:28 MST 2016


Hi John,

.whl is just an optimised binary format, and can be installed by pip from a local file. If you want to get all the dependencies of Twisted in a future-proof way, without network on production, just do this on a machine with the same arch/OS:

hawkowl /p/t/tx> pip download twisted[tls]==16.7.0rc1
[LOADING BARS ELINED]
Successfully downloaded twisted zope.interface constantly incremental Automat pyopenssl service-identity idna setuptools six characteristic cryptography pyasn1 pyasn1-modules attrs ipaddress enum34 cffi pycparser

hawkowl /p/t/tx> ls
Automat-0.3.0-py2.py3-none-any.whl                      ipaddress-1.0.17-py2-none-any.whl
Twisted-16.7.0rc1.tar.bz2                               pyOpenSSL-16.2.0-py2.py3-none-any.whl
attrs-16.3.0-py2.py3-none-any.whl                       pyasn1-0.1.9-py2.py3-none-any.whl
cffi-1.9.1-cp27-cp27m-macosx_10_10_intel.whl            pyasn1_modules-0.0.8-py2.py3-none-any.whl
characteristic-14.3.0-py2.py3-none-any.whl              pycparser-2.17.tar.gz
constantly-15.1.0-py2.py3-none-any.whl                  service_identity-16.0.0-py2.py3-none-any.whl
cryptography-1.7.1-cp27-cp27m-macosx_10_10_intel.whl    setuptools-32.3.0-py2.py3-none-any.whl
enum34-1.1.6-py2-none-any.whl                           six-1.10.0-py2.py3-none-any.whl
idna-2.2-py2.py3-none-any.whl                           zope.interface-4.3.3-cp27-cp27m-macosx_10_11_x86_64.whl
incremental-16.10.1-py2.py3-none-any.whl

Put these files on the target machine. Then on the target machine, with no internet connection:

hawkowl /p/t/tx> virtualenv venv
Using real prefix '/System/Library/Frameworks/Python.framework/Versions/2.7'
New python executable in /private/tmp/tx/venv/bin/python
Installing setuptools, pip, wheel...done.

# Because incremental is setup_requires on twisted, install it explicitly or setuptools will go try and fetch it
hawkowl /p/t/tx [1]> venv/bin/pip install --no-index --find-links ./ incremental
Collecting incremental
Installing collected packages: incremental
Successfully installed incremental-16.10.1

hawkowl /p/t/tx> venv/bin/pip install --no-index --find-links ./ twisted[tls]
Collecting twisted[tls]
Collecting Automat>=0.3.0 (from twisted[tls])
Collecting zope.interface>=3.6.0 (from twisted[tls])
Collecting constantly>=15.1 (from twisted[tls])
Requirement already satisfied: incremental>=16.10.1 in ./venv/lib/python2.7/site-packages (from twisted[tls])
Collecting service-identity; extra == "tls" (from twisted[tls])
Collecting idna>=0.6; extra == "tls" (from twisted[tls])
Collecting pyopenssl>=16.0.0; extra == "tls" (from twisted[tls])
Requirement already satisfied: six in ./venv/lib/python2.7/site-packages (from Automat>=0.3.0->twisted[tls])
Requirement already satisfied: characteristic in ./venv/lib/python2.7/site-packages (from Automat>=0.3.0->twisted[tls])
Requirement already satisfied: setuptools in ./venv/lib/python2.7/site-packages (from zope.interface>=3.6.0->twisted[tls])
Collecting pyasn1 (from service-identity; extra == "tls"->twisted[tls])
Collecting pyasn1-modules (from service-identity; extra == "tls"->twisted[tls])
Requirement already satisfied: attrs in ./venv/lib/python2.7/site-packages (from service-identity; extra == "tls"->twisted[tls])
Collecting cryptography>=1.3.4 (from pyopenssl>=16.0.0; extra == "tls"->twisted[tls])
Collecting ipaddress (from cryptography>=1.3.4->pyopenssl>=16.0.0; extra == "tls"->twisted[tls])
Collecting enum34 (from cryptography>=1.3.4->pyopenssl>=16.0.0; extra == "tls"->twisted[tls])
Collecting cffi>=1.4.1 (from cryptography>=1.3.4->pyopenssl>=16.0.0; extra == "tls"->twisted[tls])
Collecting pycparser (from cffi>=1.4.1->cryptography>=1.3.4->pyopenssl>=16.0.0; extra == "tls"->twisted[tls])
Installing collected packages: Automat, zope.interface, constantly, pyasn1, pyasn1-modules, idna, ipaddress, enum34, pycparser, cffi, cryptography, pyopenssl, service-identity, twisted
Successfully installed Automat-0.3.0 cffi-1.9.1 constantly-15.1.0 cryptography-1.7.1 enum34-1.1.6 idna-2.2 ipaddress-1.0.17 pyasn1-0.1.9 pyasn1-modules-0.0.8 pycparser-2.17 pyopenssl-16.2.0 service-identity-16.0.0 twisted-16.7.0rc1 zope.interface-4.3.3

This will install Twisted and its dependencies the official pip way, without needing to hardcode which libraries you fetch, and will do the right thing as Twisted eventually adds more dependencies (like when we split out FilePath and Deferred).

- Amber

> On 29 Dec. 2016, at 10:20, John Santos <john at egh.com> wrote:
> 
> Seems to require a new Python module, Automat.  (Not mentioned in the NEWS file, INSTALL, etc.)  I found Automat 0.3.0 (with Glyph's fingerprints on it) at PyPI, but it only exists in .whl format.  Downloaded it, but I'm not sure what to do next.  I was able to get it working by downloading and installing get-pip.py and Automat (contrary to the python.org documentation, I didn't have pip installed on my system even though it is Python 2.7.13 downloaded from python.org.)
>    sudo python get-pip.py
>    sudo pip install Automat
> 
> This is worrisome to me because I think this requires Internet access to pypi.python.org, which I have on my development and testing systems, but not on my production systems.  Everything else I've ever needed, I could download and install source files.
> 
> Having done this, my app seems to run fine (only quick sanity testing so far.)
> 
> 
> ----install---
> Searching for Automat>=0.3.0
> Reading https://pypi.python.org/simple/Automat/ <https://pypi.python.org/simple/Automat/>
> Download error on https://pypi.python.org/simple/Automat/ <https://pypi.python.org/simple/Automat/>: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) -- Some packages may not be found!
> Couldn't find index page for 'Automat' (maybe misspelled?)
> Scanning index of all packages (this may take a while)
> Reading https://pypi.python.org/simple/ <https://pypi.python.org/simple/>
> Download error on https://pypi.python.org/simple/ <https://pypi.python.org/simple/>: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) -- Some packages may not be found!
> No local packages or working download links found for Automat>=0.3.0
> error: Could not find suitable distribution for Requirement.parse('Automat>=0.3.0')
> ------
> 
> ---try to use without Automat---
> medusa at Medusa:~/run> python medusa_server.py Rain
> Traceback (most recent call last):
>   File "medusa_server.py", line 72, in <module>
>     from twisted.application import service, internet
>   File "/usr/lib/python2.7/site-packages/Twisted-16.7.0rc1-py2.7-linux-x86_64.egg/twisted/application/internet.py", line 54, in <module>
>     from automat import MethodicalMachine
> ImportError: No module named automat
> ------
> 
> On 12/22/2016 11:33 PM, Amber "Hawkie" Brown wrote:
>> Hello everyone, and happy holidays!
>> 
>> Although it didn't quite fall on the solstice, one could call this Twisted release a little ray of sunshine, with some nice new improvements. 16.7.0rc1 brings the following stocking stuffers:
>> 
>> - twisted.web.client.Agent now supports IPv6! It's also now the primary web client in Twisted, with twisted.web.client.getPage being deprecated in favour of it and Treq.
>> - twisted.internet.ssl.CertificateOptions has had its `method` argument deprecated, in favour of the new raiseMinimumTo, lowerMaximumSecurityTo, and insecurelyLowerMinimumTo arguments, which take TLSVersion arguments. This allows you to better give a range of versions of TLS you wish to negotiate, rather than forcing yourself to any one version.
>> - twisted.internet.ssl.CertificateOptions will use OpenSSL's MODE_RELEASE_BUFFERS, which will let it free unused memory that was held by idle TLS connections.
>> - You can now call the new twist runner with `python -m twisted`.
>> - Conch has the beginnings of ECDH key exchange, and supports `hmac-sha2-384` in twisted.conch.ssh.
>> - Better Unicode support in twisted.internet.reactor.spawnProcess, especially on Windows on Python 3.6.
>> - More Python 3 porting in Conch, and more under-the-hood changes to facilitate a Twisted-wide jump to new-style classes only on Python 2 in 2018/2019. This release has also been tested on Python 3.6 on Linux.
>> - Lots of deprecated code removals, to make a sleeker, less confusing Twisted.
>> - 20+ closed tickets.
>> 
>> You can get the tarball and the NEWS file at https://twistedmatrix.com/Releases/rc/16.7.0rc1/ <https://twistedmatrix.com/Releases/rc/16.7.0rc1/> , or you can try it out from PyPI:
>> 
>>     python -m pip install Twisted==16.7.0rc1
>> 
>> Please test it, and let me know how your applications fare, good or bad! If nothing comes up, 16.7 looks like it'll land just before the new year.
>> 
>> With festive hoots,
>>     Amber Brown
>> 
>> 
>> 
>> _______________________________________________
>> Twisted-Python mailing list
>> Twisted-Python at twistedmatrix.com <mailto:Twisted-Python at twistedmatrix.com>
>> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python <http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python>
> 
> 
> -- 
> John Santos
> Evans Griffiths & Hart, Inc.
> 781-861-0670 ext 539
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20161229/350d4896/attachment-0002.html>


More information about the Twisted-Python mailing list