Py3progress 2014 and 2015
I haven't done an update about py3progress in a couple of years, so here goes.
2014
Overall the year has been very positive for Python 3 support. The year started with a number of Python 2 only packages falling out of the top 200. There was also quite a few packages going Python 3 compatible. Toward the end of the year, we have three packages mark themselves as Python 2 only, joining only Twisted in the top 200 packages marked that way. Overall, the graph is much more green at the end than the beginning, 69% vs 83% supporting python 3. That is a massive step up.
2015
Starting the year at 83% supporting python 3 was going to be tough to top and impossible to have the same size increase, but something even more impressive happened. By the end of the year, there were no packages marked as Python 2 only! Including Twisted!
Twisted is a big project and they had a plan, so in 2015 they were able to make their first release that was compatible with Python 3. It didn't include everything (even today not everything is ported yet), but its a great start. Well done to all involved with Twisted.
Quite a few red lines peter out during the year, or drift off the right, and the year ended with 87% support for Python 3. The most popular non-Python 3 package at the end of the year was supervisor at rank 37.
2016 so far
After Christmas 2015 the Python 3 Wall of Superpowers stopped updating. When I checked in April it hadn't restarted and I thought it might have been the end. But it has sprung back to life, and on 26 August we have 92% of the top 200 packages support Python 3. Great effort everyone! Yet to be ported are: supervisor (49), carbon (64) and graphite-web (from the same project), a bunch of Mozilla packages, python-gflags (recently marked as py2 only), thrift, and ansible (200). 15 packages total.
The graph below shows the percentage of the top 200 packages on PyPI that support Python 3, from August 2012 to August 2016. That is great progress in 4 years.
Other happenings in the wider Python community indicate that we are almost at the point where Python 2 will be unusual and Python 3 is normal. Python 2 will be around for a long time yet, but the transition to Python 3 having equal support is almost done.