diff --git a/content/posts/poezio-0.14.en.md b/content/posts/poezio-0.14.en.md new file mode 100644 index 0000000..926a71b --- /dev/null +++ b/content/posts/poezio-0.14.en.md @@ -0,0 +1,116 @@ +--- +title: "Updates from the Poezio ecosystem" +date: 2022-04-02T12:00:00+09:00 +translationKey: 'poezio-0.14' +tags: [XMPP, Poezio, Slixmpp, OMEMO] +draft: true +--- + +Releases have happened recently that revolve around [Poezio][poezio], a TUI +(Terminal UI) client for XMPP, including Poezio itself ([0.14][poezio014]), +its backend XMPP library [Slixmpp][slix], and also the +[poezio][poezio-omemo] and [slixmpp][slix-omemo] plugins for OMEMO. + +# Many bug fixes and improvements + +[Mathieui][mathieui] has already made a proper [release note for +Slixmpp][slix180] for it and I invite you to read it! It includes many +bugfixes of course, and internal changes around async handling, that may +reflect on some of the APIs you are using. + +Poezio has also seen many improvements. + +Internally, for one, our default branch has also been moved to "main", many +type hints have been added, implicit casts (safeJID) have been removed, lots +of event handlers and calls are now async, APIs from Slixmpp are being used +instead of redoing our own, many refactoring, various performance +improvements. + +A big license change has happened, and poezio is now licensed under GPLv3+! +While I am not exactly in favour of intellectual property[^0], this is a +straightforward lever we have against capitalism[^1]. Poezio being a prime +resource for Slixmpp examples, GPL code should reasonably ensure that the 4 +freedoms reach the end-users. In practice, this will in term allow for +poezio-omemo to be merged into Poezio. I am now personally hoping for Slixmpp +to change its license as well. + +[^0]: TODO: write about this. A TL;DR would certainly be "abolish intellectual + property, and private property in general". +[^1]: When they don't decide to ignore it and give us the finger. + +And others more visible to users! To name a few, quality of life improvements +such as `xmpp:...?join` URIs handling in `/join`, impromptu rooms creation is +now more reliable and creates rooms with shorter names. Read more [in the +changelog][poezio-changelog]. + +Plugins have also seen changes. A new `untrackme` plugin now replaces the +deprecated `remove_get_trackers`. [Link Mauve][linkmauve] has also developped +a sticker plugin, similar in essence to what [Movim][movim] has been doing for +ages. And again many fixes. + +Many of these fixes have been realized by [mathieui][mathieui], who is by far +the biggest committer on the release, and in general probably the person with +the best understanding of the project. Thanks also to louiz for providing the +infrastructure all this time, and to eijebong, Ge0rG, Kaghav Gururajan, +kaliko, Thomas Hrnciar and southerntofu for the many patches. + +# Encryption + +The Poezio `E2EEPlugin` API has been improved to accomodate changes in +poezio-omemo, slixmpp-omemo and changes of the OMEMO backend library. Two +plugins which are also seeing changes! + +Heartbeats are now supported. Heartbeats are meta-messages which transfer only +cryptographic key material (nothing else) and are used to strengthen OMEMO's +forward secrecy. This is particularly relevant on clients like Poezio that can +stay running in the back for some time, receiving messages without replying. + +Some other changes include colored fingerprints using the [Consistent Color +Generation][XEP-0392] document -- such as specified in the current (0.8) +[OMEMO][XEP-0384] spec, and sending encrypted media (aesgcm URIs). + +What hasn't changed is that this plugin lacks a UI and trust management. +Hopefully this should come next, with a little motivation to do UI work. + +# What comes next + +All in all, there aren't (m)any revolutionary changes, but with these releases +come many fixes for paper cuts that hopefully make users happier. + +This makes me think that even though Poezio is far from being perfect, there +doesn't seem to be many important things missing. There are however changes +that would require a lot of refactoring, such as a multi-account feature. + +We have decided to start migrating Poezio to Rust, in part to be able to +refactor the project more easily, but also because it's a language we've come +to appreciate over the years over multiple projects, but more specifically +with [xmpp-rs][xmpp-rs]. + +All of this will happen right after the release, and we invite interested +people to join the effort! + +[poezio]: https://lab.louiz.org/poezio/poezio +[slix]: https://lab.louiz.org/poezio/slixmpp +[poezio-omemo]: https://lab.louiz.org/poezio/poezio-omemo +[slix-omemo]: https://lab.louiz.org/poezio/slixmpp-omemo +[movim]: https://movim.eu + +[mathieui]: https://mathieui.net +[linkmauve]: https://linkmauve.fr + +[poezio014]: https://lab.louiz.org/poezio/poezio/-/tags/v0.14 +[poezio-changelog]: https://lab.louiz.org/poezio/poezio/-/raw/v0.14/CHANGELOG +[slix180]: https://lab.louiz.org/poezio/slixmpp/-/tags/slix-1.8.0 +[slix181]: https://lab.louiz.org/poezio/slixmpp/-/tags/slix-1.8.1 +[slix182]: https://lab.louiz.org/poezio/slixmpp/-/tags/slix-1.8.2 +[poezio-omemo050]: https://lab.louiz.org/poezio/poezio-omemo/-/tags/v0.5.0 +[poezio-omemo051]: https://lab.louiz.org/poezio/poezio-omemo/-/tags/v0.5.1 +[poezio-omemo060]: https://lab.louiz.org/poezio/poezio-omemo/-/tags/v0.6.0 +[slix-omemo060]: https://lab.louiz.org/poezio/slixmpp-omemo/-/tags/v0.6.0 +[slix-omemo061]: https://lab.louiz.org/poezio/slixmpp-omemo/-/tags/v0.6.1 +[slix-omemo070]: https://lab.louiz.org/poezio/slixmpp-omemo/-/tags/v0.7.0 + +[XEP-0384]: https://xmpp.org/extensions/xep-0384.html +[XEP-0392]: https://xmpp.org/extensions/xep-0392.html + +[xmpp-rs]: https://xmpp.rs