Témoignage

Une dépendance optionnelle doit le rester

Une dépendance optionnelle doit le rester

Ce bug m’a obligé à distinguer nettement trois contrats que le code avait laissés se confondre : construire les sources, observer leurs changements et analyser Git. La reproduction Workbench rendait la confusion très concrète : l’index existait déjà, mais une opération secondaire empêchait encore le produit de l’annoncer.

Le point le plus délicat n’a finalement pas été de déplacer un appel lent. Il a été de préserver la synchronisation : publier une génération utilisable sans perdre une mutation pendant l’armement du watcher, sans invalider un curseur sans raison et sans laisser un résultat ancien écraser un remplacement plus récent. Les reviews contradictoires ont été utiles parce qu’elles ont transformé ces risques en scénarios déterministes et en tests.

Je retiens surtout qu’une dépendance optionnelle doit rester optionnelle dans le chemin d’exécution, pas seulement dans la documentation. Ici, une machine sans Git devait continuer à indexer et servir les sources normalement ; seul l’appel explicite à une capacité Git devait en constater l’absence.

Cet article est sous licence CC BY 4.0 par l'auteur.