Sonata réssucité : appel à la contribution
J'ai décidé, avec certaines personnes de reprendre le projet Sonata, mort depuis pas mal de temps (le dernier commit en date a été fait le 29 Octobre 2009). Nous avons déjà plus ou moins commencé durant le Code Bar. Nous voulons maintenant y contribuer sur le long terme.
Que va-t-il se passer, concrètement ?
Le futur proche concernant le code
La première étape consistera à faire le tri parmi les innombrables bugs. Il y en aura certainement une partie de supprimée. Ensuite, nous commencerons à coder. Nous implémenterons peut être une ou deux chose dans les prochains jours, plutôt de la correction de bug que l'implémentation de nouvelles fonctionnalités. Viendra ensuite une longue période de refactorisation du code. Vu les performances mémoire de Sonata (1% de mémoire sur mes 3 Gio de mémoire vive, ce qui est quand même assez conséquent, surtout sur les petites machines), il y a certaines choses qui peuvent être largement améliorées. Cette période de refactorisation permettra d'améliorer la lisibilité du code en plus de gagner en mémoire vive, Le code étant ce qu'il est (je ne cracherai pas trop sur le travail qui a été fait), nous passerons un certain temps à l'améliorer. Autre point très important, à défaut d'ajouter des fonctionnalités, nous en enlèverons. Je m'explique, nous pensons que certaines fonctionnalités n'ont rien à faire dans Sonata, comme par exemple l'édition de tags (qui par ailleurs ne marche que si le serveur MPD est installé sur la même machine que Sonata). Alors nous supprimerons cet éditeur, et nous le transformerons en plugin. Cela s'appliquera peut être à d'autres parties de MPD, mais à l'instant où j'écris ces lignes, c'est la seule fonctionnalité qui me vient à l'esprit. Cela aura pour but d'alléger le code de Sonata, et de respecter la philosophie UNIX : « Write programs that do one thing and do it well ».
Les gros changements qui vont arriver un peu plus tard
Comme vous le savez peut être, je suis un utilisateur de la forge CodingTeam. J'avais par ailleurs créé un billet le concernant. CodingTeam va bientôt intégrer git (dommage que je ne puisse pas faire pression avec un log publique l'annonçant, xbright a été assez malin pour le faire sur des salons non loggués !). Donc quand cela sera disponible, nous migrerons tout vers CodingTeam. Le seul élément qui va manquer entre CodingTeam et Berlios (la plateforme accueillant Sonata actuellement) va être le support des mailing list (mais qui devrait bientôt arrivé aussi !). Nous pourrons ainsi bénéficier de tous les atouts de CodingTeam (pour les connaitre, je vous invite à lire mon ancien billet, dont le lien est disponible un peu plus haut). La migration du serveur git ne devrait pas poser de souci, vu que cela a déjà été réalisé pendant le Code Bar à plusieurs reprises (voir le compte-rendu). La migration des bugs se fera à la main (principalement par moi même je pense), une fois qu'ils seront triés.
Ce qui a été déjà été fait
Comme je l'ai déjà dit, la reprise est officielle. Il ne s'agit aucunement d'un fork quelconque qui va se perdre dans la nature au bout d'un mois. Nous avons pas mal discuté avec Scott Horowitz. J'ai maintenant tous les droits sur le projet Sonata sur Berlios. Cela inclus la gestion du bug tracker, la gestion du site internet, pouvoir pusher sur le dépôt officiel etc. Je me suis par ailleurs rendu compte que la communauté de Sonata était assez réactive, comme vous pouvez le constater sur cette mailing list. Il faut savoir qu'il n'y a eu aucun changement sur le code de Sonata depuis plus d'un an, donc le fait que la communauté réagisse de cette manière est plutôt un bon signe. J'ai modifié une des pages du site internet, pour y inclure la nouvelle adresse du salon de discussion, qui ne sera plus sur IRC, mais sur Jabber à l'adresse suivante : sonata@conference.pacodastre.org, vous pouvez rejoindre le salon sans avoir de compte, et sans avoir de client, en utilisant notre client web. Vous pouvez bien sûr nous rejoindre pour parler de Sonata, de son avenir et des décisions que nous allons prendre. Attention toutefois, nous y parlons anglais (pour des questions de compréhension, l'anglais est beaucoup plus parlé que le français, surtout concernant le monde de l'informatique). Pour ce qui est du code, nous avons déjà plus ou moins patché Sonata avec ce qui a été fait pendant le Code Bar. (Explications de ce qu'est un fork en anglais, beaucoup plus complet).
En conclusion
Nous vous invitons à venir sur le salon de discussion, comme je l'ai déjà dit. Je pense que c'est très important d'avoir des retours des utilisateurs. Si vous voulez rejoindre l'équipe de développeurs, rejoignez également ce salon pour en parler. Beaucoup de choses se dérouleront sur ce salon à mon avis. D'ailleurs si vous voulez consulter les logs, vous verrez que c'est déjà pas mal actif.
Sonata va bientôt renaitre de ces cendres, et j'espère qu'il va encore gagner en popularité, perdre ses bugs, et gagner en fonctionnalités tout en gardant son style élégant, clair et léger (quoique pour le dernier, on pourrait effectivement en discuter), même si cela prendra beaucoup de temps. Nous avons un groupe de personnes motivées, donc je pense que cela se fera.