Déroulement du Hackathon 2017
12 juillet 2017 15:24
La hackathon de 2017 a été organisé pour promouvoir le développement d'Inkscape et la coordination entre les développeurs. Nous avons invité les développeurs et autres contributeurs à nous rejoindre à Paris pour une semaine de programmation intense, de discussion et de conception de projet.
Le hackathon a commencé le mardi 27 juin. Il a démarré un peu tard avec différents groupes pas totalement sûrs de la position des autres participants et de l'endroit où se retrouver. Mais après une coordination par téléphone, tout le monde s'est trouvé installé dans la salle de programmation principale qui nous avait gracieusement été accordée par le Carrefour Numérique². L'espace était ouvert, contenait des bureaux en forme de haricots avec des prises électriques et des chaises, et comprenait également l'équipement nécessaire à la projection que nous avons utilisé aussitôt pour analyser les interfaces et parler du développement d'Inkscape. Le réseau était fonctionnel malgré des soucis mineurs pour accéder à nos dépôts Git et notre messagerie électronique via la connexion Wi-Fi.
Inkscape a migré vers Gtk3, ce qui fait qu'il y avait de nombreux problèmes dont il fallait discuter pour déterminer l'agencement et la programmation de différentes parties de l'interface utilisateur. Cette migration s'est révélée nécessaire car les anciennes versions d'Inkscape utilisant Gtk2 ne pouvaient pas être empaquetées correctement pour Mac OS X et s'éloignaient des avancées de la boîte à outils disponibles avec les dernières versions de la bibliothèque.
Le premier agencement dont nous avons voulu parler était la boîte de dialogue pour l'édition de filtres. Ce dialogue permet aux utilisateurs d'Inkscape de concevoir et modifier de nouveaux filtres qui s'appliquent aux objets SVG. Ces filtres s'appliquent comme les filtres appliqués aux pixels présents dans des programmes tels que GIMP, mais sont bien sûr non destructifs et peuvent être modifiés à tout moment. Le problème était que le dialogue ne fonctionnait pas correctement avec la nouvelle version de Gtk3 vers laquelle Inkscape venait de migrer, et était d'autre part compliqué à utiliser. Il fallait des idées d'agencement pour condenser les notions complexes de la hiérarchie dans laquelle chaque filtre affecte les précédents, avec des contrôles Gtk plus basiques qui resteraient faciles à utiliser. Marc a pris les propositions et a travaillé sur leur implantation avec l'interface de GNOME Glade. Cette méthode permet en fait aux fichiers d'interface de Glade d'être empaquetés avec Inkscape, ainsi des non-programmeurs peuvent modifier les agencements s'ils le souhaitent.
Elisa et Cédric ont participé aux discussions d'interface et ont testé diverses idées. Par ailleurs, ils ont apporté avec eux des livres et des supports d'apprentissage, montrant l'importance du partage de la connaissance de l'utilisation d'Inkscape — pas seulement le code. L'amélioration de la documentation et la traduction ont été leurs principaux objectifs au cours du hackathon.
D'autres développeurs autour ont nettoyé le code. Martin a uni du code dupliqué listant des fichiers dans un emplacement central. Cela permet d'améliorer le code en utilisant les nouvelles méthodes disponibles en C++11, et d'assurer le fonctionnement et la consistance de chaque endroit où le programme liste des fichiers du disque dur. Exemples : lister des fichiers de palette, rechercher des extensions, rechercher des thèmes. Chacune de ces tâches est maintenant moins vulnérable aux erreurs et peut également regarder dans les sous-dossiers pour la ressource qu'ils veulent lister.
En plus de fournir du café et nous apporter de formidables tasses avec le logo d'Inkscape, Chris a travaillé sur une nouvelle fonctionnalité pour la pipette. Il n'est pas programmeur, mais a pu modifier les fichiers XPM décrivant des images de pointeurs de souris avec GIMP, et faire ses premières commissions au dépôt d'Inkscape avec l'aide du reste de l'équipe. Ses contributions nous ont permis de disposer de meilleures images pour ces curseurs. Il a également travaillé avec Martin pour nettoyer le code gérant les curseurs afin qu'il soit plus consistant.
Alex a travaillé sur l'utilisation des thèmes d'icônes GNOME standardisés, supprimant de ce pas le code de génération d'icônes propre à Inkscape. Cela permet d'une part de permettre de meilleurs thèmes d'icônes pour Inkscape, et d'autre part de faciliter l'ajout et la modification d'icônes. Ce travail a causé des régressions, donc nous espérons que la tâche va être poursuivie un temps après le hackathon. Cela était attendu car les icônes sont depuis longtemps présentes dans Inkscape et la tâche de les supprimer toutes était grande.
Le deuxième jour, nous avons été déplacé dans un autre espace, plus petit. Il était tout à fait adapté puisque nous n'étions pas nombreux, et plus simple d'accès. chr[] a offert une présentation de son travail fait avec Inkscape : des voiles pour des bateaux et navires. Les machines utilisées étaient complexes et l'équipement était parfois très vieux. Utiliser Inkscape ainsi que des extensions générant du vectoriel s'est trouvé très utile pour réaliser ces éléments. Le seul problème semblait être le projecteur, qui devait être configuré manuellement — voir la photo de Martin se tenant en équilibre sur une chaise afin d'allumer le projecteur pour la présentation. En majorité, nous avons continué à travaillé sur ce que nous avions commencé auparavant.
Sylvain a effectué une mise à niveau de l'outil Connecteur avec une nouvelle version de libavoid. C’est le code qui fait que les lignes évitent et contournent automatiquement les objets pour produire des graphes élégants d'éléments connectés. Pour cette tâche, il a fallu récupérer une grande quantité de code de la bibliothèque originale ; celle-ci n'est pas empaquetée et n'est pas disponible de façon générale sous Linux ni sous les autres plateformes. Il est cependant important de conserver des bibliothèques à jour et cela nous permettra peut-être de sortir ce code du dépôt d'Inkscape dans l'avenir.
Tav s'est chargé de soutenir un grand nombre des projets pris en main lors du hackathon, s'assurant que nous faisions les bonnes rencontres et discutions des problèmes relatifs à l'outil Texte et le dialogue Style. Il a également travaillé avec CRogers sur l'espacement entre les lignes, améliorant l'interface utilisateur et déboguant des soucis relatifs au fonctionnement de l'espacement entre les lignes. Jabier a travaillé à distance et a fait beaucoup, en dépit du fait qu'il n'ait pas pu nous rejoindre. Le travail sur le rapprochement des nœuds sélectionnés permettra aux nœuds contrôlant des outils tels qu'Étoile et Rectangle d'être sélectionnés puis rapprochés avec le clavier.
Le soir du premier jour, nous sommes sorti prendre notre dîner d'Inkscape. Un repas réglé par le projet Inkscape pour nourrir l'interaction sociale et remercier chacun de ses efforts pour participer à cet événement bénévole. Le repas a été pris dans un restaurant japonais/asiatique. Des membres de la famille de certains participants nous ont rejoints et ont rencontré certains des fidèles professionnels avec lesquels nous travaillons tous en ligne. Ces événements sociaux ont continué chaque soir, avec différentes personnes sortant boire ou prendre un repas. Le troisième soir, par exemple, Marc s'est comporté comme un guide pour Paris, menant les gens vers un restaurant traditionnel au bord de la Seine. La nourriture a été appréciée, et nous sommes restés pour le dessert. Ensuite, Marc nous a guidés pour une longue marche dans Paris, nous amenant vers des vues célèbres et commentant l'histoire de la ville. Nous espérons que Marc ne saisira pas l'opportunité de devenir guide de voyages, car ses contributions à Inkscape nous manqueraient.
Le samedi, dernier jour du hackathon, il n'y avait pas d'espace disponible pour que nous nous réunissions de nouveau. Tav a donc invité tout le monde à prendre le train vers les banlieues de Paris pour découvrir son foyer et continuer à programmer tandis qu'il cuisinait un barbecue. Un grand merci à la famille de Tav pour nous avoir accueilli le dernier jour de hackage. Certains d'entre nous sommes restés un peu plus longtemps à Paris et nous sommes réunis dans nos chambres d'hôtel pour continuer à hacker, mais c'était le dernier jour pour la majorité d'entre nous.
Chaque participant a passé du temps avec chaque autre pour l'aider à comprendre du code et à toucher une technologie ou une technique. En plus des interactions sociales, cette possibilité de poser des questions rapidement constitue réellement l'intérêt de se retrouver ensemble physiquement, et est l'une des grandes raisons pour lesquelles nous allons continuer à organiser des hackathons. Le prochain hackathon aura probablement lieu à Boston aux États-Unis, en 2018, et les préparations sont déjà en cours pour assurer la disponibilité de l'endroit. Si vous souhaitez apporter de l'aide, vous pouvez faire un don ici. À l'année prochaine, et bon bidouillage !