blog.bouah.net/content/posts/sprint-lyon.md

130 lines
6 KiB
Markdown
Raw Normal View History

---
title: "New Sprint, new goodies"
date: 2019-07-17T12:45:49+02:00
tags: [XMPP, Sprint]
draft: true
---
On this weekend of [Bastille day][Bastille_Day] some of us gathered and worked
around some interesting new features in XMPP implementations.
[Wisolv][Wisolv] -- tailor-made software development company -- generously
sponsored the venue and provided us with their office in Villeurbanne (next to
Lyon).
I think most of us are happy with this sprint, we managed to get quite some
work done. On the agenda were DOAP, Message Reactions, Occupant-id, various
fixes and discussions, also including work on a Jabber client for Haiku!
[Bastille_Day]: https://en.wikipedia.org/wiki/Bastille_Day
[Wisolv]: https://wisolv.com
### DOAP - Description Of A Project
[There][list1] [are][list2] [many][list3] [different][list4] [lists][list5]
[of][list6] [XMPP software][list7], each listing the favourite features of the
author, being displayed in various ways, having specific highlights, being more
or less up to date and maintained, and generally not really usable by a
machine. The [DOAP project][DOAP_GH] provides a way for each project to host a
[semantic][Semantic_web] description of itself, which can then be used by
anyone to display information about XMPP software.
A few years ago, Link Mauve [submitted a proposal][DOAP_thread] to extend DOAP
with information most of these lists want to expose, but it didnt get much
interest… until this sprint! PulkoMandy wrote [a bunch of XSLT
stylesheets][Clients_Table] to render such tables, Link Mauve wrote a
[schema][DOAP_Schema] and a [JavaScript integration][DOAP_JS] into the XEP
pages (an example can be seen here for [Bookmarks][DOAP_Example]), and all
client authors present at the sprint wrote a DOAP file for their client.
[list1]: https://xmpp.org/software/clients.html
[list2]: https://jabber.at/clients/
[list3]: https://en.wikipedia.org/wiki/Comparison_of_XMPP_clients
[list4]: https://fr.wikipedia.org/wiki/Clients_XMPP#Actifs
[list5]: https://nl.movim.eu/?about#caps_widget_tab
[list6]: https://wiki.jabberfr.org/Clients
[list7]: https://code.zash.se/xmpp-features/
[DOAP_GH]: https://github.com/ewilderj/doap/wiki
[Semantic_web]: https://en.wikipedia.org/wiki/Semantic_Web
[DOAP_thread]: https://mail.jabber.org/pipermail/standards/2017-August/033123.html
[Clients_table]: https://github.com/pulkomandy/xmpp-doap
[DOAP_Schema]: https://github.com/pulkomandy/xmpp-doap/blob/master/xmpp-doap.rdf
[DOAP_JS]: https://github.com/pulkomandy/xmpp-doap/blob/master/xmpp.org/doap.js
[DOAP_Example]: https://linkmauve.fr/extensions/xep-0048.xml
### Reactions
Some time ago, [Movim][Movim] [implemented reactions][Movim_Reactions] using
the [Message Attaching][XEP_0367] specification. [Dino][Dino] developers felt
that the situation could be improved, especially some issues with
non-supporting clients, and started working on a new specification a few weeks
ago. The protoXEP has been sent to [the inbox][XEP-Reactions] this weekend!
Edhelas [reworked][Movim_Reactions_Commit] the Movim implementation using this
new specification, mathieui worked on an implementation in [Poezio][Poezio]
(not yet merged, but [the Slixmpp bits are][Slix_Reactions]), and fiaxh and
larma started an [implementation in Dino][Dino_Reactions].
[Movim]: https://movim.eu
[Movim_Reactions]: https://nl.movim.eu/?node/pubsub.movim.eu/Movim/movim-is-the-first-xmpp-client-that-supports-message-reactions-Id7F5J
[XEP_0367]: https://xmpp.org/extensions/xep-0367.xml
[Dino]: https://dino.im
[XEP-Reactions]: https://xmpp.org/extensions/inbox/reactions.html
[Movim_Reactions_commit]: https://github.com/movim/movim/commit/24e4d5d18b36940f853a2fc18f316cb3c83f12a4
[Poezio]: https://poez.io
[Slix_Reactions]: https://lab.louiz.org/poezio/slixmpp/commit/b50bfb2f34a3ace3a70b1647f54ad6a0e761acf7
[Dino_Reactions]: https://github.com/dino/dino/tree/fiaxh/reactions
### Occupant-id
[Occupant-id][XEP-Occupant-id] is a protoXEP that was also submitted by larma
this weekend.
It mandates that [MUC][XEP_0045] components provide a stable and unique id
that is attributed per room per user (bare real JID). This is especially useful
semi-anonymous rooms, where it is usually not possible to ensure messages are
coming from the same participant between rejoins.
Some clients are talking about requiring occupant-id for features like Last
Message Correction, or Reactions, in semi-anonymous rooms.
A [prosody module][Prosody-occupant-id] is now available and is usable with the
current release (0.11) or trunk.
[XEP-Occupant-id]: https://xmpp.org/extensions/inbox/occupant-id.html
[XEP_0045]: https://xmpp.org/extensions/xep-0045.xml
[Prosody-occupant-id]: https://modules.prosody.im/mod_muc_occupant_id.html
<figure>
<img src="../sprint-lyon-fireworks.jpg"/>
<figcaption>Bastille day fireworks by https://twitter.com/olek_impek</figcaption>
</figure>
### And more
PulkoMandy started porting [Jabber4Haiku][Jabber4Haiku] -- now renamed Renga
-- to gloox. Fiaxh worked on [stable and unique IDs][XEP_0359] in Dino.
Slixmpp finally [uses non-predictable ids][Slix_predictable_ids]. Mathieui
and I worked around issues with asynchronous APIs in Poezio and Slixmpp.
xmpp-parsers got a new [release][xmpp-parsers-0.14], fixing
[documentation][xmpp-parsers-docs] on the way!
[Jabber4Haiku]: https://github.com/HaikuArchives/Jabber4Haiku
[XEP_0359]: https://xmpp.org/extensions/xep-0359.xml
[Slix_predictable_ids]: https://lab.louiz.org/poezio/slixmpp/commit/b29bb30eb7bb46ce2b945efed55a265324e05383
[xmpp-parsers-0.14]: https://gitlab.com/xmpp-rs/xmpp-parsers/blob/fb71acd8d13db734d8a742e0b8b9604b171333c9/ChangeLog
[xmpp-parsers-docs]: https://docs.rs/xmpp-parsers
### What's next
I'd like to thank [Wisolv][Wisolv] again for hosting us this weekend.
Next month, members of the community will be present at [FrosCon][FrosCon] at
the XMPP booth, and at [CCCamp2019][Camp]. See our [events page][Events] for
more information about future events!
[FrosCon]: https://froscon.de/en/
[Camp]: https://wiki.xmpp.org/web/Camp2019
[Events]: https://xmpp.org/community/events.html