Déroulement du Hackathon 2016

Le hackathon d'Inkscape de cette année s'est tenu au hall Devonshire, Université de Leeds, au Royaume-Uni. Le lieu de rencontre était un ensemble de grands et vieux immeubles, un emplacement agréable pour hacker sur Inkscape.

Dix développeurs ont assisté au hackathon, seul l'hébergeur était de Leeds et tous les autres provenaient de l'extérieur du Royaume-Uni, ayant effectué le transport au cours de la fin de la semaine précédente. La première nuit, nous nous sommes rencontrés pour boire un verre et manger des pizzas dans le pub local, avant de nous installer dans nos hôtels respectifs. Cela nous a permis de commencer à nous connaître et à nous sentir plus à l'aise au hall le jour suivant.

Le premier jour, nous nous sommes installés dans une salle de rencontre à l'arrière du hall Devonshire. On nous a servi du thé, du café et des biscuits dans cet espace social et puis nous sommes allés à la salle principale où des tables étaient installées. Chacune d'entre elles pouvait accueillir trois personnes et nous avons commencé avec les présentations, les intérêts dans le projet et les points de concentration du hackathon. Il s'agissait de :

  1. CMake : Nous voulons terminer notre migration vers le système de construction CMake, afin d'avoir un système de construction commun à toutes les plateformes. C'est l'objectif principal avant la livraison 0.92.
  2. Corriger le bogue de scintillement dans la branche Gtk3. Nous souhaitons migrer vers Gtk3 une fois que la version 0.92 est livrée. Cela simplifiera nettement notre code, puisqu'il comporte environ 700 structures conditionnelles basées sur Gtk2 au milieu de Gtk3. Gtk3 permettra plus de flexibilité dans l'interface graphique (par ex. des icônes plus grandes ou plus petites) et est également mieux supporté pour OS X.
  3. Il y a eu aussi de nombreuses discussions et de plus petites corrections de bogues, des ajouts au site web et du nettoyage.

À chaque déjeuner, le hall Devonshire nous a apporté un repas très nourrissant. Tout le monde s'est accordé sur le fait que l'hôte était le plus approprié pour un hackathon d'Inkscape et sera retenu pour les événements futurs.

Ce soir, nous avons passé un moment à socialiser et à manger dans un pub appelé « The Library » (la Bibliothèque) avant de nous rendre à nos hôtels.

Le jour suivant, nous avons passé la majorité du temps à travailler sur le code. La réussite la plus importante est probablement la trouvaille par Krzysztof d'une solution pour le bogue de scintillement avec Gtk3. Le correctif casse cependant l'aperçu dans la boîte de dialogue de sélection de fichier, donc cela nécessitera encore du travail. La version Gtk3 étant utilisable, il y a beaucoup, beaucoup plus de travail qui doit être effectué. Alex et Martin ont travaillé dessus. Nous avons décidé de passer la version par défaut de Gtk2 à Gtk3 après la livraison 0.92 pour assurer que le développement futur se concentre sur Gtk3. Du progrès a également été effectué sur le système de construction CMake ainsi que sur d'autres éléments.

Nous avons eu une démonstration du système d'extensions en C++ de Sebastian et Moritz de Semiodesk, incluant une démo de l'extension Grille implémentée en C++. Ils mettront une documentation, incluant un exemple « Hello World », sur le wiki d'Inkscape. Il faut maintenant faire fonctionner ces extensions en C++ sur Windows. Ces extensions compléteront nos extensions existantes en Python et ne les remplaceront pas.

Alex nous a amené vers une spécialité locale pour notre deuxième jour de socialisation, un curry au restaurant en ville. Cela a nécessité beaucoup de marche, mais en a vraiment valu la peine.

Le jour final a fait venir plus de hackage ! Environ 70 soumissions ont été effectuées à l'arbre du code d'Inkscape durant le hackathon entier, certaines d'une ligne ou deux, d'autres plus importantes. Le succès principal a été la correction du bogue de scintillement avec Gtk3, ce qui a pris un certain nombre d'itérations. Il était pratique d'avoir tant de testeurs dans la pièce pour avoir des retours directs, tandis que Krzysztof travaillait sur le correctif. Après la livraison 0.92, nous utiliserons Gtk3 par défaut dans le tronc pour que plus de développeurs travaillent sur les nombreuses corrections additionnelles qui devront être effectuées. Alex et Martin ont déjà bien démarré en réduisant les véritables milliers de lignes d'avertissements de dépréciation lors de la compilation de la version Gtk3.

L'autre tâche majeure, corriger la construction avec CMake, est presque aboutie. CMake fonctionne bien sur Linux, mais sur Windows, il reste un problème d'édition de liens. Les relations de Semiodesk souhaitent réellement que cela soit effectué, afin de pouvoir utiliser le système d'extensions en C++ sous Windows.

Nous avons aussi passé du temps à discuter des problèmes d'infrastructure. Le consensus est de migrer notre code vers Git. Cela aura de véritables avantages. Git est plus familier parmi les développeurs, et il sera donc plus faciles pour les nouveaux développeurs de contribuer. Git permet aussi d'utiliser des « sous-modules », ce qui signifie qu'Inkscape peut déplacer du code dans des bibliothèques séparées. Nous n'aurons plus besoin de conserver une copie de lib2geom dans notre arborescence.

Martin a travaillé sur l'amélioration et le nettoyage de l'extension Barcode.

Tav a rassemblé tout le monde après le déjeuner pour une réunion rapide.

  1. Nous avons choisi GitHub pour héberger nos sources. Il y a un peu de réticence à utiliser un hébergeur à source fermée, mais ils proposent la meilleure solution d'intégration continue pour la compilation et les tests automatisés. Nous n'avons pas beaucoup de temps de développement pour gérer une solution plus complexe. Le traqueur de bogues de GitHub n'est pas encore utilisable pour Inkscape à l'heure actuelle, donc les bogues et les réponses vont rester sur Launchpad.
  2. Nous voulons migrer nos listes de diffusion vers nos propres serveurs et nous mettre à niveau depuis Mailman 2 vers Mailman 3. Cela est de faible priorité pour notre hébergeur OSUOSL, mais Martin a proposé ses services pour installer Mailman 3.
  3. Nous avons décidé de migrer vers C++11 après la livraison 0.92. Certaines des bibliothèques dont nous dépendons en ont déjà fait une nécessité. Il y a de véritables atouts dans C++11, particulièrement concernant la simplification et la lisibilité du code.

L'activité finale du dernier jour était un dîner officiel de hackathon au pub de Leeds avec les meilleurs desserts et une très bonne discussion. Le hackage a continué le jour suivant, avant que nous nous rendions à Londres au LGM (Rendez-vous du graphisme libre) pour la deuxième étape de cette aventure.

Pour conclure, c'était un hackathon très réussi. Nous remercions nos contributeurs qui ont rendu le hackathon possible ! Regardez la galerie complète !