Skip to content

Comment écrire une bonne issue

Pierre de La Morinerie edited this page Jul 9, 2018 · 1 revision

tl;pl

  • Le titre doit commencer par un verbe à l’infinitif,
  • Décrire le problème, le comportement attendu, et comment reproduire,
  • Au besoin mettre des liens, captures d’écrans et tout pour donner du contexte,
  • Ne pas hésiter à créer des issues imparfaites, les mainteneurs du projet reformuleront.

Le titre doit commencer par un verbe à l’infinitif

C’est la règle générale : ça force à formuler ce qu’on veut. Le but est avant tout d’éviter l’ambiguïté comportement attendu entre comportement constaté :

Bof : Le bouton « Enregistrer le brouillon » est décalé vers la droite.
Mieux : Centrer le bouton « Enregistrer le brouillon ».

Faut-il centrer ou décaler le bouton « Enregistrer » ? Il vaut mieux être explicite.

Un autre exemple plus concret :

Bof : L’aperçu d’une procédure peut afficher les boutons d’enregistrement
Mieux : Éviter d’afficher les boutons d’enregistrement sur l’aperçu d'une procédure

Pareil, les « boutons d’enregistrement » sont-ils le bug ou le comportement attendu ?

Pour les rapports de bugs, on peut aussi écrire « Crash quand blabla » ou « X ne fonctionne pas quand Y ». Le principal est d’indiquer que c’est un problème. Ça marche aussi en choisissant des mots à connotation négative, comme « Le bouton est mal aligné. » au lieu de « Le bouton est décalé. »

Autre point important : dans les présentation en liste, on ne voit que le titre. Celui-ci doit donc suffire à comprendre l’issue.

Réécrire au besoin

On peut re-rédiger une issue, y compris son titre et sa description, même si elle a été créée par quelqu’un d’autre. (Même si c’est sympa de prévenir et de noter l’historique.)

Idéalement, toutes les issues sont des Actions à réaliser. Mais ça n’empêche pas de créer une issue quand on ne connait pas la solution à apporter à un problème : la discussion et les commentaires peuvent justement permettre de clarifier l’issue d’origine et de la réécrire, ou de la remplacer par une nouvelle issue qui décrie la solution à apporter.

Tous les détails vont dans la description

On a toute la place pour décrire le problème, la solution et les circonstances dans la description. C’est bien d’être concis ; c’est encore mieux d’être explicite. Ne pas hésiter à mettre des liens vers :

  • la conversation avec le service client,
  • les tweets,
  • le code concerné,
  • les logs Sentry,
  • etc.

Si le message au service client ou le tweet contenait des captures d’écran, autant les inclure directement dans l’issue.

Idem pour les tweets, ou les stacktraces Sentry : ils peuvent disparaitre avant que l’issue ne soit fermée, il vaut donc mieux copier les passages pertinents dans la description.

Autres astuces sur GitHub

(La syntaxe Markdown de GitHub est documentée ici.)

  • La syntaxe des listes à cocher permet de faire des sous-taches. Comme ceci:
* [ ] truc 1
* [ ] truc 2
  • On peut référencer les issues et pull requests liées. La syntaxe est #123, pour les issues et pour les merge requests. GitHub rajoute automatiquement une référence inverse dans l’autre sens.

Labels et milestones

Dans l’ensemble, les labels indiquent les catégories générales d’une issue — alors que les milestones indiquent une question de planning.

Pour savoir si une catégorie devrait être un label ou une milestone, une manière est de se poser la question « Est-ce que cette catégorie est bornée dans le temps » ? Si oui, c’est une milestone ; sinon, c’est un label.

Clone this wiki locally