Intégrer Mattermost comme appli officielle à Yunohost
Allez, puisqu'il faut lancer les choses, ceci est la première demande de contribution open-source financée par le pot à cookie :)
_NB : je me lance – mais on voudra sans doute réfléchir à nouveau au fonctionnement du pot à cookies : j'entrevois des raisons pour lesquelles c'est difficile de demander. Peut-être faire du pot à cookie rétrospectif, ou systématique. Tristram a déjà commencer à lancer des pistes dans https://gitlab.com/CodeursEnLiberte/fondations/issues/29#note_49852274)_
## Objectif
Intégrer le package [Mattermost](https://github.com/YunoHost-Apps/mattermost_ynh) à la liste des applis officielles de [Yunohost](https://yunohost.org/).
## Détails
[Yunohost](https://yunohost.org/) est un service permettant d'administrer facilement un serveur dédié. Il fournit des mails, un chat, et une interface graphique pour ajouter ou supprimer en un clic des applications web hébergées en ligne (OwnCloud, client Bittorrent, Mastodon, Gitlab, etc.). C'est fait essentiellement par des français, depuis quelques années, et le projet commence à avoir une certaine assise. Je l'utilise depuis deux ans, avec grande satisfaction.
[Mattermost](https://about.mattermost.com/) est un service de chat auto-hébergé. Il est disponible en _open-core_ (open-source, fonctionnalités de base gratuites, fonctions supplémentaires payantes).
[mattermost_ynh](https://github.com/YunoHost-Apps/mattermost_ynh) est un paquet permettant d'ajouter facilement une installer de Mattermost à un serveur Yunohost.
J'ai commencé à travailler sur `mattermost_ynh` il y a plus d'un an. Il y a deux mois, j'ai passé pas mal de temps à refactorer les scripts pour avoir quelque chose de vraiment robuste (et qui puisse être sauvegardé). Au passage j'ai dû développer une suite de tests à faire tourner en local pour pouvoir vérifier que les scripts fonctionnent toujours correctement après des changements. _(C'est plus compliqué que ça en a l'air, faut des LXC-dans-des-VM et tout…)_
Yunohost propose deux types d'applications :
- [les applis officielle](https://yunohost.org/#/apps), qui sont garanties fonctionner ;
- les applis de la communauté, qui ne sont pas forcément parfaites dans tous les coins.
Pour faire partie de la liste officielle, il faut avoir un code correct, qui a passé la revue, et qui passe tous les tests automatisés de [package_check](https://github.com/YunoHost/package_check) (une suite de tests qui vérifie les cas les plus chelous).
Faire partie de la liste officielle permet d'avoir une bien meilleure visibilité, et de proposer une certaine garantie de fonctionnement aux utilisateurs.
## Pourquoi c'est pertinent ?
- C'est un **commun**, un projet qui a vocation à être utilisés par d'autres ;
- Ça **encourage la décentralisation du web** : ça permet aux aux gens comme moi qui ne veulent pas s'embêter avec l'administration d'un serveur de proposer un service décentralisé à leurs copine·ain·s.
- C'est une **amélioration incrémentale** d'un projet existant (moins risqué que de partir de zéro) ;
## Étapes concrètes et chiffrage
- Obtenir une note de 10/10 sur les tests automatiques de [package_check](https://github.com/YunoHost/package_check) : 2 jours
- Créer une [page de documentation](https://yunohost.org/#/app_mattermost_fr) pour l'appli (anglais et français) : 1/2 journée
- Demander l'inclusion à la liste officielle, et pousser le processus : 1 jour
Total : 3 jours 1/2
## Prochaines étapes
- @CodeursEnLiberte **Est-ce que ça vous semble pertinent ?**
- Si oui, comment est-ce qu'on s'organise ? :)
issue