23 mai 2022
sourceLa semaine dernière, j'ai entamé une présentation sur un sujet pas tout à fait pour débutants : Accelerate. Le sujet est intéressant, mais nécessite à un moment de reprendre le schéma illustrant les capacités des équipes de développement.
Et dans ma présentation, je veux pouvoir manipuler ce schéma (mettre des couleurs, du gras, des trucs comme ça). J'ai bien essayé de créer le diagramme avec PlantUML - parce que j'aime ça. Mais je n'ai jamais obtenu de rendu propre. Au bout d'un moment, j'ai même hésité à franchir le rubicon, c'est-à-dire faire ma présentation dans ces outils de consommation de productivité que peuvent être PowerPoint ou Google Slides.
Et puis au dernier moment je me suis souvenu que j'affichais mes diagrammes grâce à l'incroyable Kroki, qui supporte bien plus que PlantUML. J'ai donc cherché dans les différents formats supportés celui qui me donnerait la liberté que je cherchais ... Et en moins d'une heure, je commençai un diagramme pikchr. Vous allez évidement me demander la différence avec PlantUML, et elle est assez évidente. Dans PlantUML, vous faites du diagramme déclaratif : vous déclarez la liste des objets (blocs et connecteurs) et vous laissez au moteur de rendu l'intégralité des décisions de rendu. Dans pikchr, vous dessinez beaucoup plus : vous commencez par poser les blocs avec une syntaxe qui ressemble pas mal au logo (pose un bloc, va vers la gauche, avance d'une case), et vous les reliez ensuite par des connecteurs dont vous pouvez configurer le comportement à l'envie. C'est évidement bien plus fin, et donc bien plus complexe à écrire correctement.
J'ai donc installé l'extension VSCode qui va bien (enfin, pas tant que ça, puisqu'elle échoue la moitié du temps à m'afficher le diagramme sans jamais montrer d'erreur), et j'ai commencé à éditer mon schéma.
Et à un moment, je me suis rendu compte qu'il n'apparaissait pas dans ma présentation asciidoctor-revealjs. Evidement, c'était parce que j'utilisais une version dépassée d'asciidoctor-kroki.
Et là, bienvenue dans le terrier du lapin façon Lewis Carroll
En mettant à jour l'extension, mon build s'est mis à échouer avec un message d'erreur cryptique :
[INFO] --- gem-maven-plugin:2.0.1:initialize (install-gems) @ conferences --- [WARNING] ERROR: While executing gem ... (ArgumentError) " html, b" is not an octal string
Bon, je vais vous renvoyer directement vers le ticket GitHub et la question Stackoverflow, mais dans l'idée, le proxy façon maven pour les gems ruby n'existe plus (parce que l'équipe JRuby ne paye plus la facture), et il faut changer de mode de téléchargement de ces gems en utilisant le plugin mavengem-wagon qui agit comme un protocole supplémentaire.
Résultat ? Trois jours d'investigations assez tordues, pour une mise à jour de plugin qui fait que heureusement, je peux enfin utiliser correctement des schémas pikchr dans mes présentations ! (merci Kroki !)