I expect that we will have a soft beta 3 available by the end of this week! This will mean Jython will regain support for pip and easy_install when installing packages from PyPI, which we lost when PyPA tools moved to requiring ssl. In addition, this work will add support for the Python wheel distribution format, the fantastic requests package, and many other fixes that can be seen in the commit log.

Here is my plan for the remaining work for beta 3; I would appreciate any feedback:

Merge in https://bitbucket.org/jimbaker/jython-socket-reboot

The socket reboot project for Jython implements full support for socket, select, and ssl, for valid combinations of blocking/nonblocking, tcp/udp, and server/client by using Netty 4 as its foundation. Among other things, this branch now supports requests, easy_install, and pip. *All tests currently pass on OSX*; I'm looking at some minor address decoding issues on Linux. Perhaps most importantly, with some recent changes and thread pool allocation/deallocation for server sockets, it no longer causes subsequent issues in regrtest.

I gave a talk on the SSL certs work for the Denver Python users group: https://github.com/jimbaker/talks/blob/master/safe-ssl-certs-in-a-hostile-world.md There's also of an early design doc of socket reboot https://github.com/jimbaker/socket-reboot that was reviewed by networking experts Robert Collins, Glyph Lefkowitz, and our own Alan Kennedy. *All errors are of course my own.*

I have made a pull request against html5lib-python (https://github.com/html5lib/html5lib-python/pull/150) to upstream a fix I have made in pip in this vendor lib dependency (https://github.com/jimbaker/pip). For now, Jython users will need to use my pip branch to have pip work.

Note that I'm deferring support for SO_LINGER, SO_TIMEOUT, and select.poll to after beta 3. I also have not tested socket reboot against Windows yet, so if anyone has some cycles to do that against my branch, I would appreciate it. I do have a MSDN license as a Python committer (thanks Microsoft!), but I'm currently somewhat time constrained. My expectation is that we can take advantage of the portability work that Netty has done.

There are some additional changes I would like to see make beta 3:

contributed by Indra Talip - Fix the struct module so that struct.Struct class can be derived from

contributed by Indra Talip - Fix os.stat behaviour for paths with trailing slash when the path exists as a file

contributed by Arfrever Frehtes Taifersar Arahesis - Fix compatibility with jnr-posix 3.0

Replace Guava MapMaker.makeComputingMap with CacheBuilder
This will allow us to upgrade Guava to release 17

defaultdict get behavior causes inconsistent map entries leading to potential memory leaks
Requires fixing #2087 and motivating this, since memory leaks are an obvious priority