Ajouter la prise en charge des permissions UNIX dans la bibliothèque Shmdata — conclusion du programme GSoC’22

Bonjour, je m’appelle Vanshita Verma et j’écris ce billet pour faire le point sur mon expérience de contributrice au Google Summer of Code 2022 pour l’organisme Société des arts technologiques. J’y étais stagiaire en développement de logiciels libres, au sein du département de recherche et développement du Metalab de la SAT.

Mon parcours avec la SAT a commencé en juin, pendant la période de rapprochement communautaire du programme GSoC’22. Nous avons tenu des rencontres pour discuter du travail à accomplir au cours des mois suivants et de la façon d’amorcer le développement.

Mon projet, pour toute la durée du programme, portait sur l’ajout des permissions UNIX à la bibliothèque Shmdata. Cette bibliothèque fournit une couche permettant de partager des flux de données structurées en trames entre différents processus, par mémoire partagée. Ma tâche consistait à y ajouter la compatibilité avec les permissions d’accès aux données. Le code devait vérifier si le fichier du flux de données concerné disposait des permissions nécessaires pour être lu, écrit ou exécuté. Il vérifiait aussi si c’était le propriétaire, le groupe ou un autre utilisateur qui tentait d’accéder au fichier de données, et indiquait en conséquence s’il avait la permission d’effectuer l’opération.

Il m’a fallu un bon moment pour me familiariser avec le dépôt et le code de la bibliothèque Shmdata, et j’ai eu la chance d’avoir des mentors qui m’ont guidée à chaque étape.

Quand j’ai commencé à contribuer au dépôt, je croyais devoir écrire du code pour modifier les permissions des flux de données ; on m’a rapidement fait comprendre que ma tâche était plutôt de vérifier les permissions et d’accorder l’accès en conséquence.

À plusieurs reprises pendant le programme, je me suis retrouvée coincée devant des défis et des problèmes qui semblaient insurmontables, mais j’en suis venue à bout petit à petit, à mesure que je passais du temps sur le code et que je lisais et comprenais son fonctionnement.

Mes mentors, Nicolas Bouillot, Thomas Piquet et Valentin Laurent, m’ont énormément aidée par leurs suggestions et leurs commentaires, tout en faisant preuve d’une grande patience pour répondre à mes questions (et souvent pour corriger mes erreurs).

Vers la fin de la période de développement, mon mentor, M. Nicolas Bouillot, a apporté des modifications à mon échantillon de code et déplacé la majeure partie de celui-ci des fichiers d’interface et d’implémentation vers le fichier de tests.

À la fin du programme, j’ai été ravie d’apprendre que la demande de fusion que j’avais soumise avait été fusionnée avec succès dans le dépôt et qu’elle fera partie de la prochaine version de Shmdata.

Pour voir le travail accompli, voici le lien vers le bilan de travail final.