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:
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.
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