Le 7 et 8 Décembre 2024 c’était le Hackaton de CLISS XXI.
Depuis le re-lancement du collectif Chtinux cet été avec les copaines, ce fut l’occasion pour moi de m’investir plus profondément dans la communauté du logiciel libre Lillois et de commencer à rencontrer les gens au delà de Deuxfleurs. Ayant participé à plusieurs des permanence du libre ces derniers mois, j’ai fait la rencontre de membres de CLISS XXI qui nous ont invité au Hackaton qu’iels ont organisé à l’occasion de leurs 20ans. C’est toujours l’occasion de rencontrer de nouvelle têtes, de faire un peu de bidouille, discuter et potentiellement contribuer donc je me suis motivé.e !
Pour ceux qui ne les connaissent pas CLISS XXI est “une coopérative de service informatique en logiciel libre” , proposant des ateliers d’éducation populaire et des services aux associations. Iels font aussi partis du collectif Chtinux.
Comme ce fût un événement dans les communauté numérique je n’ai point pris mon appareil photo pour cette journée, les gens du libre étant souvent réservé sur leur droit à l’image. Je pense que ce fût ma plus grosse erreur de la journée, il y a tellement de choses que j’aurais pus photographier en dehors des gens…
Arrivé
L’événement avait lieu à la coroutine, un lieu de co-working dans les anciens bâtiments de la filature. Ce fut plutôt surprenant de trouver un endroit à l’ambiance chaleureuse au milieu de ce bâtiment dont les halls laissent encore fortement paraitre le passé d’usine désaffecté.
L’accueil fut fort agréable, les gens de CLISS savent recevoir ! J’ai revu pas mal de visages que je connaissait mais aussi de nouvelles têtes, c’est toujours agréable de rencontrer des gens lors de ces événements.
L’objectif de la journée était d’apporter une contribution à 4 projets différents :
- Bénévalibre : logiciel de suivi de temps au sein d’une association. L’idée de l’atelier était de s’occuper de l’écriture de la documentation administrateurice et utilisateurice.
- [Paheko][(https://paheko.cloud/) : logiciel d’administration d’association. L’objectif de l’atelier était de travailler autour de l’expérience utilisateurice.
- La refonte de framadate : Avancer sur les issues du projet, notamment sur les aspects front-end et CI/CD.
- Un projet de création d’application autour des réseaux sociaux ouvert (veuillez m’excuser, n’étant pas très intéressé par cette option je n’ai que peu de souvenir sur son contenu…)
La pluspart de ces activités tournent autour du retour d’éxpérience utilisateurice et nécessite donc un travail en communauté, un Hackaton est le bon moment pour ce genre d’atelier. Cependant, étant plus intéressé.e par les aspects code je me suis concentré sur le projet Framadate !
Framadate
Commençons avec un peu d’histoire : pourquoi Framadate a besoin d’une refonte ?
Et bien le repo officiel n’est plus maintenu, cela fait 2 ans depuis la dernière release. Ce qui peut devenir assez vite un problème si l’on souhaite ajouter des fonctionalités ou même faire tourner le programme sur un serveur. Les versions minimale des logiciels évoluant, ne pas faire monter de version un projet c’est le condamner à l’obsolésence (c’est un problème mais ça sera le sujet d’un autre billet de blog, un jour peux être).
Le premier travail à faire est donc de faire la monté de version du code depuis php 7.4 à php 8.2 et de tout ce qui va avec. C’est à dire l’ensemble des librairie utilisées (symfony, doctrine, phpunit, etc.) mais aussi de mettre a jour les commandes de compilation. En plus de cela ou souhaitait mettre en place une CI propre avec test unitaire, lintage et construction d’image docker pour un deploiement facilité sur les serveurs. Au final les tâches à se répartir étaient les suivantes :
- Avancer sur le front (je n’ai pas suivi cette partie dutout)
- Migrer la version du php
- Mettre en place la CI
- Mettre en place le Dockerfile
Pour la journée j’ai fait équipe avec Andrès de code lutin. Les commits seront d’ailleurs à son nom car je n’avais pas de compte framagit pour contribuer directement sur le projet…
La CI
Pour la CI on a fait quelque chose de très classique : build/lint/test. Il y avait pas mal de changement de version à effectuer dans les dépendances pour prendre en compte la montée de version et on a aussi du corriger quelques problèmes des fichiers de configuration.
On a paralléliser l’execution des workflow pour qu’un maximum d’erreur soit remonté, cela nous a permis de montrer que le lint du code demandait pas mal de travail, et qu’il y avait des failles de securité dans le code. Ne souhaitant pas digresser nous avons créer les tickets associés et continué notre chemin.
Je ne vais pas m’éterniser là dessus, on a pris plus de temps que nécessaire notamment parceque nous n’avions pas forcément fait de php précédement et donc découvrions l’environnement.
Le Docker-composer
Nous voulions automatiser la construction de l’image docker, il y avait eu quelques ébauches précédement mais pas avec la version actuelle du code.
Et lors des derniers travaux sur le code les developpeurs lancait le code en local et jamais dans un docker ou sur une installe fraiche.
On est partie sur une image php-apache en plusieurs étapes :
- Build de l’image via composer
- Configuration d’apache pour le faire marcher avec la sortie de composer (changer le RootDirectory principalement)
- Copier les fichiers nécessaire dans une nouvelle image afin de réduire la taille de l’image (see here
)
En parallèle de ça on a changer le moteur de base de donnée de mysql à mariaDB qui est moins propice au bug. Un docker-compose.yaml a été ajouté dans le dépôt afin de pouvoir tester le projet un local avec la partie DB, backen et frontend.
L’ensemble du travail fait lors de cette journée est résumé dans cette MR
Pour plus tard
Nous étions loin d’avoir fini la refont de Framadate mais l’idée était de déblayer le terrains pour les prochaines personnes qui souhaiterait s’y attaquer. Si jamais chèr lecteurice tu es intéressé à poser une pierre sur l’édificie n’hésite pas à jeter un oeil au depôt
Suite et Fin de la journée
Le reste de la journée fût pour moi l’occasion de digresser sur du deuxfleurs, mes compères ayant travaillé à continuer la refonte du guide je me suis penché sur le manque de runner woodpecker pour la CI afin de pouvoir enfin relancer les CI de deploiement de site web notamment Chtinux (les copaines m’ont solicité pour que je répare ça afin que le site soit oppérationnel).
En plus de cela ce fût l’occasion de papôter sur diverse sujet, notamment de sécurité réseau dont j’ai encore beaucoup à apprendre…
Après les repas (qui par ailleur furent excellent, un immense merci a CLISS et les bénévoles pour leur acceuil) nous nous sommes posé devant le film Hackers de 1995, qui fût pour moi une agréable surprise. En dehors de quelques remarques dérangeante dans le film (c’était il y a 30 ans quand même) le film est très agréable à regarder, les Hackers sont montrés comme des gens cools qui essaient de bidouiller ce qu’ils peuvent. Un peu un esprit ado cool des années 90, avec une grosse dose de kitsh. Bref, à voir si vous êtes amateurice de vieux films.
Conclusion
C’était ma première expérience d’Hackaton et une excellente expérience que je recommande ! L’important est de trouver une tâche qui nous motive et sur laquelle on pense pouvoir avancer significativement dans le temps impartie. C’est pour ça que je me suis concentré sur la CI que je connaissais déjà plutot que de m’attaquer au php. C’est aussi l’occasion de faire de super rencontre. Je pense que j’irais sans hésiter au prochain événement de ce stylé, voir même que je reflechirais à en proposer un.
Encore un grand merci au copaines présent.e à l’événement et la prochaine fois je n’oublierai pas l’appareil photo !
Comments
No comments yet. Be the first to react!