Hi all
We are fortunate to be part of the Python Software Foundation (PSF) and
even more fortunate to receive donations from Thinkst [1] and from various
organizations via Tidelift and GitHub Sponsors [2].
Summary:
* At the start of 2024, cash on hand for the Twisted project was at
~$27,000 USD.
* We plan to have Glyph as a paid maintainer, 5 hours a week at $100/hour.
* Work will focus on code review, merge of PRs, documentation
* The paid maintainer will keep the community updated on the progress via
blog posts.
* Anyone is invited to decide the future of the Twisted project
--------
At this point only I and Glyph were involved in the discussions / decision
making with the PSF.
I know that the communication was not ideal.
We have quarterly meetings with the PSF.
If anyone wants to participate, let us know and we will ask PSF to send you
an invitation for the next meeting
The next meeting is scheduled for 7th of July, 16:00 UTC.
-------------
We plan to spend that money to pay for a maintainer, 5 hours a week at
$100/hour,
not to exceed our current budget.
The plan is to use the majority of the time to do reviews and merge any PRs
that are very close to the point where they can be merged.
The maintainer will write a public report / blog post that will support the
person/people reviewing/approving the invoices.
In this regard, the paid maintainer will also do a bit of community
management work.
Glyph has agreed to start working as a paid maintainer and he is available
starting with June 2025
--------------
I wish that in the near future we can increase the number of sponsors and
the number of paid maintainers.
For now the only maintainer that expressed the desire to help with paid
maintainer work was Glyph. If you would like to work as a paid maintainer,
let us know.
For now, the only public sponsors are Thinks and SFTPPlus [3]
To disclose, I partially own SFTPPlus.
If anyone has any suggestions or comments, please let us know.
Cheers
[1] https://thinkst.com/
[2] https://github.com/sponsors/twisted
[3] https://www.sftpplus.com/
--
Adi Roiban
Hello friends,
The native websockets branch that I've been puttering with is now available for review, so I'm asking for someone to review it:
https://github.com/twisted/twisted/pull/12397/files
I'm excited to get this landed and released. WebSockets are probably the most popular and common form of bidirectional asynchronous communication happening on the internet today, and it's been a bit of a weakness that we don't have a simple showcase for that in Twisted. IMAP and SSH are great to have, but they're not the first thing people go looking for these days when they're looking to do something async.
We have of course had some access to the WebSockets world via Autobahn, but first-party integration will have some significant advantages:
We can put a WebSockets example onto our minimal-examples showcase on twisted.org, because the example is similarly very small, and now included with no imports from other libraries. This is the major thing; a dozen or so lines of code illustrating how to push data from Twisted into a browser that a user can immediately interact with is an important missing piece of the pitch of Twisted both as a library and as a web server.
There will be a much simpler onboarding experience to this functionality. Autobahn is still there for anyone who wants WAMP or XBR, but users won't be presented with those confusing concepts when just trying to do simple server-side push.
Since the gross private API internals that we rely upon are our own, we don't have the version-skew problems that Autobahn does <https://github.com/crossbario/autobahn-python/blob/7bc85b34e200640ab98a41cf…>, nor do we need overhead like anyio.
Since this is a much more recent implementation it also comes with modern niceties like coroutines rather than inlineCallbacks, comprehensive type annotations, and 100% code coverage.
This should also be a pretty easy layup of a review:
There is full code coverage and I believe full public API documentation coverage.
There's new narrative documentation <https://twisted--12397.org.readthedocs.build/en/12397/web/howto/web-in-60/w…> explaining how to use it.
The protocol implementation itself is delegated to the existing, minimal, sans-io wsproto library <https://github.com/python-hyper/wsproto> so there's not a lot of protocol implementation stuff to review.
The tests are all the new, good kind (i.e.: no native sockets, no real reactors), using IOPump (and improving that infrastructure a bit as I passed through it), with (hopefully!) no new flakiness or weird slowdowns.
The downside is that it is brushing up against 1500 changed lines, with most of that being additions, so it is on the longer side.
Thanks in advance for volunteering,
-g