2018-08-25 00:08:44 +00:00
|
|
|
---
|
|
|
|
title: "Xmpp Sprint"
|
|
|
|
date: 2018-08-27T23:56:33+01:00
|
|
|
|
draft: true
|
2018-08-29 00:36:46 +00:00
|
|
|
tags: [XMPP, IM, Sprint]
|
2018-08-25 00:08:44 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
A week ago, on August 18-19th, was held the first developer event in the XMPP
|
|
|
|
community for a long time.
|
|
|
|
|
|
|
|
The idea came up at the [Gulaschprogrammiernacht][0], in Karlsruhe earlier
|
|
|
|
this year, talking with Daniel Gultsch, and JC Brand. We gathered there to
|
|
|
|
work on an implementation of [OMEMO encryption
|
|
|
|
mechanism](https://conversations.im/omemo/) for
|
|
|
|
[conversejs](https://conversejs.org), and [poezio](https://poez.io). The
|
|
|
|
former is currently being merged, the latter is taking a bit more time, but
|
|
|
|
we'll get there eventually.
|
|
|
|
|
|
|
|
JC mentioned sprints organised by the Plone community, and I felt that was
|
|
|
|
something we were missing for XMPP. While the XMPP summit is held every year
|
|
|
|
before FOSDEM, it is often more oriented towards protocol discussions.
|
|
|
|
Developer events are scarce.
|
|
|
|
|
|
|
|
I set a goal for myself to start a movement in the community, gather
|
|
|
|
interested people, and work together to improve the ecosystem.
|
|
|
|
|
|
|
|
The first event -- of this hopefully long series of events -- was held two
|
|
|
|
weeks ago, sponsored by my employer, [Collabora](https://collabora.com), in
|
|
|
|
their UK office in Cambridge!
|
|
|
|
|
|
|
|
[0]: https://opkode.com/blog/2018-gulaschprogrammiernacht/
|
|
|
|
|
|
|
|
## Who attended
|
|
|
|
|
|
|
|
- [Daniel Gultsch][2] from [Conversations][3]
|
|
|
|
- [MattJ][4] from [Prosody][5]
|
|
|
|
- fiaxh and larma from [Dino][6]
|
|
|
|
- Andrey Utkin from [decent.im][7]
|
|
|
|
- [Link Mauve][8] from [JabberFR][9]
|
|
|
|
- Link Mauve and [I, pep.][10] from [Poezio][11]
|
|
|
|
- Friends and colleagues, first time XMPP contributors
|
|
|
|
|
|
|
|
And remotely:
|
|
|
|
|
|
|
|
- [JC Brand][12] from [Conversejs][13]
|
|
|
|
|
|
|
|
|
|
|
|
[2]: https://gultsch.de/
|
|
|
|
[3]: https://conversations.im
|
|
|
|
[4]: https://matthewwild.co.uk/
|
|
|
|
[5]: https://prosody.im
|
|
|
|
[6]: https://dino.im
|
|
|
|
[7]: https://decent.im
|
|
|
|
[8]: https://linkmauve.fr
|
|
|
|
[9]: https://jabberfr.org
|
|
|
|
[10]: https://bouah.net
|
|
|
|
[11]: https://poez.io
|
|
|
|
[12]: https://opkode.com
|
|
|
|
[13]: https://conversejs.org
|
|
|
|
|
|
|
|
## Objectives
|
|
|
|
|
2018-08-29 00:37:14 +00:00
|
|
|
In retrospective, _User Experience_ seems to fit the ambiance of the sprint
|
|
|
|
(**badly said**), and is generally a theme that comes back regularly within
|
|
|
|
the community lately.
|
|
|
|
|
2018-08-25 00:08:44 +00:00
|
|
|
At the beginning of the sprint, here is roughly what we planned to work on:
|
|
|
|
|
2018-08-29 00:37:14 +00:00
|
|
|
1. Bookmarks: Sync [Private XML](https://xmpp.org/extensions/xep-0049.html)
|
|
|
|
bookmarks with [PEP](https://xmpp.org/extensions/xep-0048.html) ones.
|
|
|
|
XMPP has different standard places to store bookmarks, and this has often
|
2018-08-29 01:08:47 +00:00
|
|
|
proven to be a painful experience to the user, when using different clients
|
2018-08-29 00:37:14 +00:00
|
|
|
for examle. The objective here was to transparently synchronize both
|
|
|
|
stores, so that the user gets an overall nicer experience.
|
|
|
|
2. [Message Attaching](https://xmpp.org/extensions/xep-0367.html)
|
|
|
|
**TDB**
|
|
|
|
3. [In-Band Registration](https://xmpp.org/extensions/xep-0077.html) in
|
|
|
|
clients that don't support it, namely dino and poezio.
|
|
|
|
In-Band Registration is a mechanism that allows clients to provide an
|
|
|
|
interface to create accounts on servers that allow it. This way the user
|
|
|
|
doesn't have to go through multiple hops to start chatting with their
|
|
|
|
friends.
|
|
|
|
4. Reactions
|
|
|
|
**TBD**
|
|
|
|
5. [Consistent color generation](https://xmpp.org/extensions/xep-0392.html)
|
|
|
|
This specification aims at providing algorithms that will be used to
|
|
|
|
generate deterministic colors, so that they stay consistent across clients,
|
|
|
|
and thus help with recognition, for nicknames in groupchats, for example.
|
|
|
|
5. [Hats](https://xmpp.org/extensions/xep-0317.html)
|
|
|
|
Hats are **TBD**
|
2018-08-29 00:36:11 +00:00
|
|
|
|
2018-08-29 01:06:59 +00:00
|
|
|
![Hard working developers](xmpp-sprint-1.jpg)
|
2018-08-25 00:08:44 +00:00
|
|
|
|
|
|
|
## Accomplishments
|
|
|
|
|
|
|
|
Not everything that was mentioned on the saturday morning was worked on, but
|
2018-08-29 01:20:07 +00:00
|
|
|
we did manage to get quite a few things done. This was also the opportunity to
|
2018-08-25 00:08:44 +00:00
|
|
|
discuss about various topics.
|
|
|
|
|
|
|
|
Here is a non-exhaustive list of issues/topics we worked on:
|
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
__Conversations__
|
2018-08-25 00:08:44 +00:00
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
- Use PEP Bookmarks if `urn:xmpp:bookmarks-conversion:0` is annouced.
|
|
|
|
[commit](https://github.com/siacs/Conversations/commit/dc5e7e5d95e30b8220a0f2d0ada969a3006c3437)
|
|
|
|
- Experiments with XEP-0392:
|
|
|
|
Disabled by default variant that uses HSLUV instead of YCbCr.
|
|
|
|
HSLUV provides more uniform colors and also 'nicer' colors by default.
|
|
|
|
[commit](https://github.com/siacs/Conversations/commit/268fcd3838f35050008bc03a81c0873e515e75f6)
|
|
|
|
- Updated Conversations Compliance Checker help for Prosody:
|
|
|
|
[pull/6](https://github.com/iNPUTmice/caas/pull/6)
|
2018-08-25 00:08:44 +00:00
|
|
|
|
|
|
|
__Converse.js__
|
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
- Detailed [Converse.js][13] walkthrough for all people attending, by JC himself
|
|
|
|
- Better ordering of name fallbacks:
|
2018-08-25 00:08:44 +00:00
|
|
|
[pull/1168](https://github.com/conversejs/converse.js/pull/1168)
|
2018-08-29 01:08:47 +00:00
|
|
|
- Attempt at a new UI/design:
|
2018-08-25 00:08:44 +00:00
|
|
|
[pull/1167](https://github.com/conversejs/converse.js/pull/1167)
|
2018-08-29 01:08:47 +00:00
|
|
|
- Almost working XEP-0156 implementation:
|
|
|
|
[pull/1170](https://github.com/conversejs/converse.js/pull/1170)
|
2018-08-25 00:08:44 +00:00
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
__Dino__
|
2018-08-25 00:08:44 +00:00
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
- SCRAM-SHA-1: [tree/scram-sha-1](https://github.com/dino/dino/tree/scram-sha-1)
|
|
|
|
- [Fixed](https://github.com/dino/dino/issues/300) nVidia specific rendering
|
|
|
|
and performance issue
|
2018-08-25 00:08:44 +00:00
|
|
|
- Experiments with XEP-0392
|
2018-08-29 01:08:47 +00:00
|
|
|
- Visually improve Sign In dialog
|
|
|
|
- [Add In-Band Registration
|
|
|
|
support](https://github.com/dino/dino/commit/4be8c92a2c0e454ae217aea8f8eac69c99416214)
|
|
|
|
(supports [forms](https://xmpp.org/extensions/xep-0077.html#extensibility)
|
|
|
|
and [OOB](https://xmpp.org/extensions/xep-0077.html#redirect))
|
|
|
|
- Fix display names in MUCs without localparts (!)
|
2018-08-25 00:08:44 +00:00
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
__Packaging__
|
|
|
|
|
|
|
|
- Added XMPP-related software to main Gentoo package repository
|
|
|
|
- slixmpp (Python lib) https://bugs.gentoo.org/533586
|
|
|
|
- poezio (console client app) https://bugs.gentoo.org/377137
|
|
|
|
- dino (GUI client app) https://bugs.gentoo.org/631772
|
|
|
|
- Working on adding the following projects to the Gentoo main repo:
|
|
|
|
- Biboumi (IRC gateway)
|
|
|
|
- Spectrum (multiprotocol gateway)
|
|
|
|
- Swift (client and library)
|
|
|
|
- Profanity (console client)
|
2018-08-25 00:08:44 +00:00
|
|
|
|
|
|
|
__Poezio__
|
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
- XML pretty-printing plugin:
|
|
|
|
[xmlindent.py](https://linkmauve.fr/files/xmlindent.py)
|
|
|
|
- Start implementation of In-Band Registration in
|
|
|
|
[poezio!10](https://lab.louiz.org/poezio/poezio/merge_requests/10) and
|
|
|
|
[slixmpp!4](https://lab.louiz.org/poezio/slixmpp/merge_requests/4)
|
|
|
|
- [Fix](https://lab.louiz.org/poezio/slixmpp/merge_requests/4) launch script version
|
2018-08-29 01:20:18 +00:00
|
|
|
- Discuss about how to correctly handle [xmpp
|
|
|
|
URIs](https://lab.louiz.org/poezio/poezio/issues/3402) in poezio
|
2018-08-25 00:08:44 +00:00
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
__Prosody__
|
2018-08-25 00:08:44 +00:00
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
- Bookmarks sync:
|
|
|
|
[mod_bookmarks](https://modules.prosody.im/mod_bookmarks.html)
|
|
|
|
- Updated default bookmarks for that:
|
|
|
|
[mod_default_bookmarks](https://modules.prosody.im/mod_default_bookmarks.html)
|
2018-08-25 00:08:44 +00:00
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
__XEPs/Discussions/Misc__
|
2018-08-25 00:08:44 +00:00
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
- Message attachments XEP updated: [pull/696](https://github.com/xsf/xeps/pull/696)
|
|
|
|
- Talk about threads and how (not) to implement them, (comparing with other IM solutions).
|
2018-08-25 00:08:44 +00:00
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
<!--
|
2018-08-25 00:08:44 +00:00
|
|
|
|
|
|
|
_Day 1_
|
|
|
|
|
|
|
|
- Bookmarks sync in Prosody:
|
|
|
|
[mod_bookmarks](https://modules.prosody.im/mod_bookmarks.html)
|
|
|
|
- Updated default bookmarks for that:
|
|
|
|
[mod_default_bookmarks](https://modules.prosody.im/mod_default_bookmarks.html)
|
|
|
|
- Use PEP Bookmarks in Conversations if `urn:xmpp:bookmarks-conversion:0` is annouced.
|
|
|
|
[commit](https://github.com/siacs/Conversations/commit/dc5e7e5d95e30b8220a0f2d0ada969a3006c3437)
|
|
|
|
- Message attachments XEP updated: [pull/696](https://github.com/xsf/xeps/pull/696)
|
|
|
|
- Added XMPP-related software to main Gentoo package repository
|
|
|
|
- slixmpp (Python lib) https://bugs.gentoo.org/533586
|
|
|
|
- poezio (console client app) https://bugs.gentoo.org/377137
|
|
|
|
- dino (GUI client app) https://bugs.gentoo.org/631772
|
|
|
|
- Experiments with XEP-0392 (Consistent Color Generation) in Conversations and Dino
|
|
|
|
- Conversations: Disabled by default variant that uses HSLUV instead of YCbCr.
|
|
|
|
HSLUV provides more uniform colors and also 'nicer' colors by default.
|
|
|
|
[commit](https://github.com/siacs/Conversations/commit/268fcd3838f35050008bc03a81c0873e515e75f6)
|
|
|
|
- Start implementation of IBR in poezio and Dino
|
|
|
|
- Mention threads, talk about how (not) to implement them, (comparing with other IM solutions).
|
|
|
|
- Better ordering of name fallbacks in Converse.js:
|
|
|
|
[pull/1168](https://github.com/conversejs/converse.js/pull/1168)
|
|
|
|
- Attempt at a new UI/design for Converse.js:
|
|
|
|
[pull/1167](https://github.com/conversejs/converse.js/pull/1167)
|
|
|
|
|
|
|
|
_Day 2_
|
|
|
|
|
|
|
|
- Detailed [Converse.js][13] walkthrough by JC
|
|
|
|
- XML pretty-printing plugin for poezio:
|
|
|
|
[xmlindent.py](https://linkmauve.fr/files/xmlindent.py)
|
|
|
|
- Updated Conversations Compliance Checker help for Prosody:
|
|
|
|
[pull/6](https://github.com/iNPUTmice/caas/pull/6)
|
|
|
|
- SCRAM-SHA-1 for Dino: [tree/scram-sha-1](https://github.com/dino/dino/tree/scram-sha-1)
|
|
|
|
- [Fixed](https://github.com/dino/dino/issues/300) nVidia specific rendering
|
|
|
|
and performance issue in Dino
|
|
|
|
- Working on adding the following projects to the Gentoo main repo:
|
|
|
|
- Biboumi (IRC gateway)
|
|
|
|
- Spectrum (multiprotocol gateway)
|
|
|
|
- Swift (client and library)
|
|
|
|
- Profanity (console client)
|
|
|
|
- Almost working XEP-0156 implementation for Converse.js:
|
|
|
|
[pull/1170](https://github.com/conversejs/converse.js/pull/1170)
|
|
|
|
- Visually improve Sign In dialog in Dino
|
|
|
|
- [Add IBR support](https://github.com/dino/dino/commit/4be8c92a2c0e454ae217aea8f8eac69c99416214)
|
|
|
|
to Dino (supports forms and OOB)
|
|
|
|
- Initial attempt at IBR in [poezio!10](https://lab.louiz.org/poezio/poezio/merge_requests/10)
|
|
|
|
and [slixmpp!4](https://lab.louiz.org/poezio/slixmpp/merge_requests/4)
|
|
|
|
- [Fix](https://lab.louiz.org/poezio/slixmpp/merge_requests/4) launch script version
|
|
|
|
- Fix display names in MUCs without localparts in Dino (!)
|
|
|
|
- Discuss about how to correctly handle [xmpp URIs](https://dev.louiz.org/issues/3402) in poezio
|
|
|
|
|
2018-08-29 01:08:47 +00:00
|
|
|
-->
|
2018-08-25 00:08:44 +00:00
|
|
|
|
|
|
|
I would like to thank everybody who participated, helped organise the event,
|
|
|
|
and made all this possible. Thanks [Collabora](https://collabora.com) again
|
2018-08-29 01:08:47 +00:00
|
|
|
for sponsoring the event and providing the venue.
|
2018-08-25 00:08:44 +00:00
|
|
|
|
|
|
|
## What's Next
|
|
|
|
|
|
|
|
Talks of organising a next sprint this year in Düsseldorf, or Paris, are
|
|
|
|
already happening. If you are interested and want to participate, please join
|
|
|
|
the [chatroom](xmpp:xmpp-sprint@chat.cluxia.eu?join) to stay updated.
|