Sortie de Prosody 0.11

Ceci est la traduction de l’article Prosody 0.11.0 released, et est également disponible sur le blog de Prosody et sur LinuxFR.

Nous somme ravis d’annoncer la sortie longuement attendue de Prosody 0.11.0 !

Ceci est la première version de la série 0.11, qui sera maintenant considérée comme la série stable. Cette version, avec plus de 2000 commits, n’aurait pas pu se faire sans l’aide de nombreux contributeurs, testeurs, et autres membres de la communauté. Merci !

Points importants

Si vous êtes impatients d’utiliser 0.11.0, c’est certainement dû au travail important qui a été fait dans cette version sur deux composants : MUC et PubSub.

Ces deux composants implémentent les XEPs les plus complexes que XMPP fournit actuellement. Même si les versions précédentes fournissaient déjà MUC et PubSub, ceux-ci sont tous les deux des protocoles complexes ; ainsi, après une première implémentation, il nous semblait important de les revisiter pour mieux couvrir les fonctionnalités décrites dans les XEPs, mais aussi pour améliorer la structure du code et permettre la montée en charge.

Cette version comprend beaucoup d’autres changements, corrections de bugs, amélioration de performances, etc. Les principaux changements sont détaillés ci-dessous.

Fonctionnalités principales

Amélioration des salons

Un des plus gros changement dans cette version est le fait que MUC a été presque entièrement réécrit. Ce project ambitieux a été démarré plusieurs années plus tôt par daurnimator, qui a développé la majorité de ce nouveau code.

Même si la plupart des changement restent internes au composant, cela nous a permis d’ajouter de nouvelles fonctionnalités plus facilement, mais aussi de permettre la montée en charge des services de MUC, (cette nouvelle version de MUC est utilisée par Jitsi Meet ainsi que d’autres services hébergeant des centaines de milliers de salons).

Les améliorations sont trop nombreuses pour être toutes citées, cependant quelques points sont mis en avant ici.

Amélioration de la configuration

Le formulaire de configuration a été réorganisé, et propose maintenant un agencement et des options plus clairs.

Boîte de dialogue de configuration d’un salon

Nous avons hâte d’intégrer des traductions dans une version future !

Archivage des messages

Nous avons ajouté le support pour l’archivage et de la récupération des messages envoyés à un salon, en utilisant le protocole de la XEP-0313 (MAM). Ceci permet à un client d’afficher des messages qui ont été envoyés lorsqu’il était hors-ligne.

Réservation du pseudo

Pour éviter toute confusion, Prosody peut désormais forcer la réservation de pseudo dans un salon, pour empêcher quelqu’un d’autre de se faire passer pour quelqu’un qui n’est pas actuellement présent dans le salon. Par défaut, seuls les propriétaires et administrateurs d’un salon peuvent réaliser cette action — en rendant un utilisateur membre du salon —, mais il est aussi possible de le configurer pour autoriser les utilisateurs à enregistrer leur propre pseudo, et à devenir membres par la même occasion.

Protocole PubSub

Notre implémentation de PubSub a beaucoup été améliorée pour cette version. Link Mauve a contribué la persistance des nodes et des items, ce qui veut dire que les données peuvent être stockées sur le disque plutôt qu’en mémoire, et ne seront donc plus perdues lorsque le serveur est relancé.

Nous avons également implémenté la configuration des nodes et la gestion des affiliations, nécessaires à un contrôle d’accès avancé. Et finalement, nous avons ajouté le fameux ‘publish-options’, qui permet aux clients de publier des items en spécifiant leurs droits d’accès de façon sécurisée.

PEP

Notre ancien code pour PEP était une implémentation minimale, séparée du code de PubSub, qui implémentait tout ce dont les clients avaient besoin en 2009. De plus en plus de fonctionnalités de PubSub ont été demandées au fil de années pour PEP, qui devenait de plus en plus utilisé. Il devenait évident que PEP devait fournir toutes les fonctionnalités de PubSub, et aurait dû utiliser le même code.

Florian Zeitz a démarré ce project en créant un nouveau module mod_pep_plus. Ce module est maintenant l’implémentation par défaut, et est utilisé à la place du module mod_pep d’origine.

Ceci nous permet de prendre en charge OMEMO pour les gens n’étant pas dans votre liste de contacts. Ça permet aussi pour les clients d’utiliser PEP pour stocker les marque-pages et autres données.

Nouveau format de vCard

Cette version implémente la nouvelle version de la spécification vCard, décrite dans la XEP-0292, et supporte de nombreux nouveaux champs.

Votre vCard est aussi stockée dans PEP, ce qui autorise un contrôle d’accès avancé, (par exemple vous pouvez choisir que votre vCard soit publique, ou disponible uniquement pour vos contacts).

Peu voire aucun client ne supporte vCard4, mais l’ancien protocole vcard-temp est toujours supporté en utilisant mod_vcard_legacy, qui traduit vers le nouveau format de manière transparente, jusqu’à ce que les clients se mettent à jour.

Optimisations de l’autonomie des portables

Cette version vient avec quelques modules communautaires visant à améliorer l’autonomie des clients mobiles. Un traffic constant peut empêcher un téléphone de passer en mode d’économie d’énergie, par exemple avec les changements de statut des contacts, ou beaucoup de messages des salons. Mais ces informations ne sont généralement pas importantes, surtout quand le téléphone est en veille ou que l’application est en arrière-plan.

Les clients qui prennent en charge la XEP-0352, tels que Conversations, peuvent informer le serveur quand leur application est mise en arrière-plan, et Prosody va réagir en optimisant le traffic sur la connexion.

Ceci est implémenté dans mod_csi_simple.

Changements internes

APIs asynchrones

Nous avons consacré beaucoup d’efforts à ajouter des tests, et à rendre notre API asynchrone interne plus robuste. Cette API sera utilisée pour améliorer les performance des plus gros services.

Avec ces changements, l’authentification ou les plugins de stockage asynchrones sont maintenant supportés de façon expérimentale. Prosody ne supportera pas cette API officiellement pour cette version, car il reste beaucoup de changements prévus.

Automatisation des tests

Une des plus grosses améliorations récentes au projet a été le nombre croissant de tests automatisés. Les versions précédentes ont été presque entièrement testées à la main, à cause du peu de tests automatiques disponibles, mais nous avons désormais une large batterie de tests qui tourne après chaque changement. Plus de détails dans un futur article !

Support natif d’epoll

Ce nouveau backend réseau expérimental fournit une alternative à libevent. Parmi ses advantages, il est plus petit et plus simple, mais disponible uniquement sous Linux.

Mise à jour depuis une version précédente

Si vous mettez à jour depuis une version précédente, nous vous recommandons très fortement de lire les notes de version.

Quelques changements importants sont listés ici.

Mise à jour de MySQL

Les utilisateurs de MySQL doivent mettre à jour leur schéma avant que Prosody 0.11 puisse fonctionner. Ceci afin de corriger quelques bugs qui empêchent le bon fonctionnement des nouvelles fonctionnalités de PEP.

Après la mise à jour, exécutez : prosodyctl mod_storage_sql upgrade

Lua 5.2

Prosody dépend de Lua 5.1 depuis le tout début. Comme nous l’avons annoncé lorsque Prosody 0.10 est sorti, nous sommes en train de le mettre à jour vers des versions de Lua plus récentes.

La version de Lua recommandée pour Prosody 0.11 est Lua 5.2, mais Lua 5.1 est toujours compatible pour les platformes qui en ont besoin. Cependant, les versions 0.11.x sont les dernières versions à être compatibles avec Lua 5.1 (et par extension, LuaJIT).

Tutoriels

Si vous prévoyez d’installer Prosody pour la première fois, le Homebrew Server Club a publié un excellent tutoriel sur comment configurer un serveur XMPP moderne sur Debian, en utilisant Prosody 0.11.

Téléchargement

Comme d’habitude, vous pouvez trouver les instructions de téléchargement pour de nombreuses plateformes sur notre page de téléchargement.

Si vous avez des questions, commentaires ou problèmes quelconques avec cette version, dites-le nous !

3 réflexions sur « Sortie de Prosody 0.11 »

  1. Ping : Sortie de Prosody 0.11 - My Tiny Tools

  2. Ping : Lettre d’actualité XMPP du 30 novembre 2018 | News JabberFR

  3. Ping : Lettre d’actualité XMPP du 30 novembre 2018 - My Tiny Tools

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment ID: g3RoAA

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.