Hello Twisted list,
We had a brief Twisted birds-of-a-feather session at PyCon 2024.
One issue that came up was that while Twisted works fine for the things that it does, we don't have a great onboarding process to motivate new developers to get involved and maintain it or build new things. In particular, Twisted's main value these days is no longer in the reactor, as the stdlib's core asyncio functionality is quite capable, but in our suite of protocol implementations and integrations. However, "it's got a ton of custom wire protocols" is less interesting in an era where there are fewer mainstream things that use custom wire protocols. So what are interesting things that we already do with wire protocols that, with a fresh coat of paint, could appeal to an audience of new developers to revitalize the project in general?
To that end, we discussed a few projects:
We should resurrect the effort to build a first-party websockets implementation: <https://github.com/twisted/twisted/issues/4173>. It's been nice to have Autobahn available, but websockets are by far the quickest and easiest way to provide a native demonstration of Twisted's capabilities. Luckily, we do not have to build an implementation ourselves, as a maintained sans-io kernel implementation exists in the <https://github.com/python-hyper/wsproto> project. So we just need to do a direct integration with the Resource model in twisted.web. I will probably do some work on this project myself.
Twitch's chat is IRC <https://dev.twitch.tv/docs/irc/>, but Twisted's IRC implementation is missing some implementation details. An IRC bot tutorial could thus actually be a very relevant introduction to a large audience of developers. Joel McGrady has volunteered for this effort and has written up some of the IRCv3 issues that will need addressing as part of it: https://github.com/twisted/twisted/issues/12180
We could probably do something interesting and fun with email, if we updated twisted.mail to make sure it worked with recent mail clients and did a little tutorial? Email is still relentlessly popular despite decades of progress. Nobody has volunteered for this yet.
We already have a ton of work on SMB that just needs to be un-stuck, both in terms of reviews and fixes: <https://github.com/twisted/twisted/pull/1274>. I really appreciate Ian contributing this to Twisted and I'd like it to see it eventually make it into a release, so I'm highlighting it here. If anyone wants to pick up responding to review feedback, you can make a fork of his fork, grab the branch and open a new PR to start addressing things.
Everyone then mumbled "HTTP/3"? But nobody seemed to actually care about that.
All of these efforts should be done documentation-first, to try to evaluate how to build a successor to the aging "finger" tutorial series, and to make sure that we have something to point new developers at so that they can find their way around Twisted.
-g