poezio-0.14 draft

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This commit is contained in:
Maxime “pep” Buquet 2022-03-31 20:49:18 +02:00
parent 4511504ba2
commit cd5b0a8169
Signed by: pep
GPG key ID: DEDA74AEECA9D0F2

View file

@ -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