I’m highly motivated, as a Pythonista who loves Python 3 and all of the new features, syntax, and improvements, to help the rest of the community upgrade to Python 3 and enjoy all of its benefits.
To that end, I would like to end the dependence of Python 2 in the general community. Since I feel I am a fairly average power user of Gentoo, I figured I would start with the packages on my own system, and this is what I found:
dev-lang/python-2.7.10 pulled in by: app-emulation/qemu-2.3.0-r2 app-emulation/virtualbox-4.3.28 app-misc/ca-certificates-20141019.3.19 app-text/gnome-doc-utils-0.20.10-r1 dev-lang/spidermonkey-1.8.5-r4 dev-lang/spidermonkey-17.0.0-r3 dev-lang/spidermonkey-24.2.0-r2 dev-lang/yasm-1.3.0 dev-libs/glib-2.44.1 dev-libs/gobject-introspection-1.44.0 dev-libs/libevdev-1.4 dev-libs/libgamin-0.1.10-r5 dev-libs/libnatspec-0.2.6-r1 dev-libs/libxslt-1.1.28-r4 dev-libs/protobuf-2.6.1-r3 dev-libs/zziplib-0.13.62 dev-python/google-apputils-0.4.0 dev-python/ipaddress-1.0.7 dev-python/librsvg-python-2.32.0-r1 dev-python/m2crypto-0.22.3-r3 dev-python/ndg-httpsclient-0.3.2 dev-python/pygobject-2.28.6-r55 dev-python/pygoocanvas-0.14.1-r1 dev-python/python-gflags-2.0 dev-python/twisted-core-15.2.1 dev-python/wxpython-220.127.116.11 dev-util/boost-build-1.56.0 dev-util/scons-2.3.4 dev-vcs/git-2.4.3 dev-vcs/mercurial-3.4.1 games-emulation/m64py-0.2.1-r1 gnome-base/gconf-3.2.6-r3 gnome-base/libglade-2.6.4-r2 kde-apps/kajongg-4.14.3 kde-base/krosspython-4.14.3 kde-base/plasma-workspace-4.11.20 media-gfx/gimp-2.8.14 media-libs/alsa-lib-1.0.29 media-libs/avidemux-plugins-2.6.8 media-libs/libcaca-0.99_beta19 media-libs/libgpod-0.8.3 media-video/openshot-1.4.3 net-analyzer/nmap-6.49_beta1 net-dns/avahi-0.6.31-r7 net-libs/farstream-0.1.2-r2 net-libs/gupnp-0.20.14 net-libs/libproxy-0.4.11-r2 net-print/cups-2.0.2-r2 net-wireless/crda-3.18 sys-apps/usbutils-008-r1 sys-devel/llvm-3.5.2 sys-process/audit-2.4.1-r1 sys-process/htop-1.0.3 www-client/firefox-38.0.1 x11-libs/xpyb-1.3.1-r3 x11-plugins/purple-plugin_pack-2.7.0-r1
Not terrible for a world that has 1,277 packages. Now, we can wipe some of those off:
- dev-lang/spidermonkey, www-client/firefox
- The Mozilla build system…
- dev-libs/protobuf, dev-python/google-apputils, dev-python/ipaddress, dev-python/python-gflags-2.0
- I can’t make Google care about Python 3. I’m just a lone fox.
- This is apparently only pulled in because I have 2.7 compatibility enabled on other packages, and it also appears abandoned upstream.
- All but deprecated upstream. dev-python/cryptography pretty cleanly replaces it. I simply need to change dependencies to use that instead.
- The Twisted project is large, and already has a Python 3 objective. No need to worry about that until later, since they have others working on it.
- They, too, are working on an official Python 3 port already. I’ve even used it; though it is ridiculously unstable, there has been a lot of progress made.
- As of August 2014, they are officially porting to Python 3. Same as Twisted, then.
- This is a very large codebase with a lot of issues related to 2->3. Not something one fox can help with either, I’m afraid.
- any gnome package
- Not really interested in contributing to the ever-dying and unmaintained GTK 2, and definitely not interested in contributing to the abomination of GTK 3.
- KDE 4
- As KDE 5 nears stability, this will become less and less maintained, so it probably isn’t worth it either.
- net-print/cups, sys-devel/llvm
- I doubt there is any hope of getting Python 3 code into Apple projects, since they seem to enjoy clinging to 1990-era development tech 😦
After doing some sorting to show the order I’d like to work on these, this leaves us with:
app-misc/ca-certificates-20141019.3.19 app-emulation/virtualbox-4.3.28 dev-libs/libevdev-1.4 media-libs/libcaca-0.99_beta19 media-libs/libgpod-0.8.3 media-libs/alsa-lib-1.0.29 dev-libs/libxslt-1.1.28-r4 net-wireless/crda-3.18 dev-vcs/git-2.4.3 sys-apps/usbutils-008-r1 dev-lang/yasm-1.3.0 x11-plugins/purple-plugin_pack-2.7.0-r1 sys-process/audit-2.4.1-r1 net-dns/avahi-0.6.31-r7 sys-process/htop-1.0.3 games-emulation/m64py-0.2.1-r1 net-libs/libproxy-0.4.11-r2 dev-libs/zziplib-0.13.62 dev-libs/libnatspec-0.2.6-r1 app-emulation/qemu-2.3.0-r2 net-analyzer/nmap-6.49_beta1 dev-util/boost-build-1.56.0 media-video/openshot-1.4.3 media-libs/avidemux-plugins-2.6.8 x11-libs/xpyb-1.3.1-r3
I would really like to do at least one per week, but there’s no guarantees of course. Wish me luck!