SàT développement

De Goffiwiki
Aller à : navigation, rechercher


Bienvenue sur la page destinées au développeurs du projet SàT. Que vous souhaitiez contribuer à Salut à Toi, ou juste vous en servir pour un autre projet, cette page est un point de départ pour regrouper la documentation technique.

Avant-propos

Pensez à consulter la documentation utilisateur pour tout ce qui concerne l'installation de SàT, où se le procurer, et même où se trouvent les dépôts du code source. D'autre part une partie de la documentation technique risque d'être en anglais: c'est le seul moyen actuellement d'être compris par le plus grand nombre (la plupart des développeurs de logiciels Libres ayant des notions d'anglais), et je n'ai malheureusement pas les ressources pour tout traduire systématiquement en français (ou autre). J'espère qu'avec le temps les traductions seront plus nombreuses, n'hésitez pas à contribuer dans les traductions si vous pouvez.

Notez aussi qu'il est difficile de garder la documentation dans plusieurs langues à jour. Afin de pouvoir être lu par le plus grand nombre, la page des développeurs en anglais est probablement plus à jour.

Vue globale

Erreur lors de la création de la miniature : Fichier manquant
Ceci est une vue générale de l'architecture de Salut à Toi

Ponts (Bridge)

SàT peut communiquer avec ses interfaces (frontends) grâce à des « ponts ». Un pont est un protocole de communication. SàT n'utilise pour le moment qu'un seul pont: DBus. Si vous comptez faire un frontend, vous pouvez consulter l'interface de programmation (API) du pont.

Le modèle de l'API peut être modifiée si besoin dans le fichier src/bridge/bridge_constructor/bridge_template.ini. Pour régénérez les fichiers Python correspondant, tapez ceci dans une console :

cd src/bridge/bridge_constructor/bridge_template.ini
./bridge_constructor.py --force && cp generated/DBus.py ../DBus.py
./bridge_constructor.py -s frontend --force && cp generated/DBus.py ../../../frontends/src/bridge/DBus.py

Si vous modifiez un nom de méthode ou sa signature dans l'API, n'oubliez pas de répercuter le changement partout (dans sat et dans les interfaces).

Extensions (plugins)

SàT utilise une architecture de plugins en back-end: voir la page sur les extensions (en anglais pour l'instant).

Interactions avec la messagerie électronique

Ici un schéma détaillant l'interaction de SàT avec la messagerie électronique (MTA, MUA, ...) et des systèmes XMPP (SMTP gateway, XMPP server, ...).

Erreur lors de la création de la miniature : Fichier manquant
Aperçu des interactions de SàT

Explications

  • "Salut à Toi" est un client Jabber composé de plusieurs front-ends (interfaces utilisateurs) et d'un back-end (1)
  • Comme tout client Jabber, SàT utilise le protocole XMPP pour communiquer avec un serveur Jabber (2) et envoyer/recevoir des messages d'autres utilisateurs (3).
  • XMPP est un protocole extensible, et les serveurs XMPP peuvent comporter des passerelles pour discuter avec d'autres réseaux (comme par exemple avec la messagerie électronique en utilisant le protocole SMTP).

Howto

Ici une liste de Howto divers:

À faire

Voici une liste des choses les plus urgentes à faire, n'hésitez pas à écrite sur la liste de diffusion si vous pouvez aider à l'une de ces taches

  • Système de test: Il faut absolument créer un système de tests pouvant être lancé à chaque commit, pour tester notamment les régressions, la conformité aux norme (RFC et XEP respectées), le bon fonctionnement global
  • Utilisation d'une base de données: jusqu'ici, SàT utilise la mémoire vive et un système trivial pour la persistance des données. Le projet devenant plus conséquent et gérant de plus en plus de données, il faut désormais passer à une base de données
  • Passage des méthodes synchrones en asynchrones: SàT étant basé sur twisted, il est asynchrone et conçu comme tél depuis le début. Cependant certaines méthodes (en particulier au niveau de l'API DBus) nécessite un travail de ce côté.
  • Documentation: un gros travail de documentation est nécessaire. L'architecture de SàT étant assez complexe, il est important de bien les expliquer pour réduire la difficulté d'accès.