--- title: "New Sprint, new goodies" date: 2019-07-17T12:45:49+02:00 draft: true --- On the weekend of [Bastille day][Bastille_Day] some of us gathered and worked around some interesting new features in XMPP implementations. [Wisolv][Wisolv] generously sponsored the venue and provided us with their office in Villeurbanne (next to Lyon). I think most of us are quite 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 didn’t get much interest… until this sprint! PulkoMandy wrote a [table for clients][Clients_table], edhelas wrote a [DOAP file for Movim][DOAP_Movim] (which can be seen rendered using the former [here][DOAP_Rendered]), and 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]). [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_Movim]: https://github.com/movim/movim/blob/master/doap.xml [DOAP_Rendered]: https://pulkomandy.github.io/xmpp-doap/samples/movim.xml [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 specification][XEP_0367]. [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 submitted [to the inbox][XEP-Reactions] this weekend! Edhelas [reworked the Movim implementation][Movim_Reactions_Commit] using this new specification, mathieui worked on an implementation in 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.html [Dino]: https://dino.im [XEP-Reactions]: https://xmpp.org/extensions/inbox/reactions.html [Movim_Reactions_commit]: https://github.com/movim/movim/commit/24e4d5d18b36940f853a2fc18f316cb3c83f12a4 [Slix_Reactions]: https://lab.louiz.org/poezio/slixmpp/commit/b50bfb2f34a3ace3a70b1647f54ad6a0e761acf7 [Dino_Reactions]: https://github.com/dino/dino/tree/fiaxh/reactions ### Occupant-id [Occupand-id][XEP-Occupant-id] is a protoXEP that was also submitted by larma this weekend. It mandates that MUC components provide a stable and unique id that is attributed per room per user (real JID). This can be used in 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 [Prosody-occupant-id]: https://modules.prosody.im/mod_muc_occupant_id.html ### 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.html [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. In August, 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 events! [FrosCon]: https://froscon.de/en/ [Camp]: https://wiki.xmpp.org/web/Camp2019 [Events]: https://xmpp.org/community/events.html