Bonjour,


je suis utilisateur régulier des outils Checkstyle, PMD, FindBugs.

Le tout avec maven, dans Hudson.


Ma question est la suivante : est-ce qu'il existe un plugin (maven ou hudson) qui permette de déterminer les différences de qualimétrie entre deux commits liés à un même ID (à travers le commentaire du commit) ?


Je vais illustrer par un exemple, ce sera plus clair (même pour moi ).


J'ai deux développeurs dans mon équipe : D1 et D2.
J'affecte une tâche à chacun des développeurs : T1 pour D1 et T2 pour D2.

Chaque développeur, lorsqu'il fait un commit (dans svn ou autre), doit commenter son commit en renseignant l'ID de la tâche, par exemple D1 fait un commit :
[ID-T1] Correction bla-bla

Imaginons que j'ai une itération de développement de deux semaines.
Mon projet comporte 5 classes : C1, C2, C3, C4, et C5.


Si je regarde l'historique des commits durant ces deux semaines, j'ai ceci :

1°) D1 commit sur C1 et C3 (sur T1)
2°) D2 commit sur C2 et C4 (sur T2)
3°) D2 commit sur C5 (sur T2)
4°) D1 commit sur C1 et C4 (sur T1)
5°) D1 commit sur C1 (sur T1)

J'ai volontairement mis une difficulté (qui n'en est peut-être pas une, si ça se trouve) en mettant une classe (C4) modifiée à la fois par D1 et D2


Ce que j'aimerais, c'est être capable de déterminer très facilement les changements en termes de qualimétrie sur une tâche précise.

L'outil ou plugin que je cherche enchaînerait en quelque sorte les actions suivantes :
1°) Faire un rapport de qualimétrie avant la première modification (facile, ça existe déjà)
2°) Déterminer les impacts apportés par T1 et T2 (donc par ex être capable dire que sur T1, les classes C1, C2, C3 et C4 ont été modifiées de telle manière)
3°) Faire un nouveau rapport de qualimétrie après chaque commit pour déterminer le delta, et additionner tout ça sur l'ensemble des commits d'une tâche

A l'issue de cette analyse, j'aurais un résultat du type :
T1 : +8 Checkstyle, -7 PMD, +2 Findbugs
T2 : +41 Checkstyle, +17 PMD, +24 Findbugs


Idéalement il faudrait pour les +x être capable d'avoir la liste des règles violées concernées.

L'idée est de pouvoir quantifier facilement les impacts en termes de qualimétrie du développement d'une tâche sur une itération.

Je pourrais par exemple dire : Attention sur la tâche 2, c'est devenu très crade, source potentielle de bugs en prod, augmentation de la dette technique, etc...



Sur Hudson il existe un plugin sur le mode d'un jeu, qui permet d'attribuer des bons ou mauvais points aux développeurs, en s'appuyant sur des différentiels à chacun de leurs commit. L'outil est donc capable de faire ces analyses selon la personne qui commit. Il faudrait donc un outil qui soit capable de faire la même chose, mais en triant selon les [ID-Tx] des commentaires de commit.


Est-ce qu'il existe un outil ou un plugin qui fasse ça ?
Ou est-ce que je dois coder à la mimine un programme qui parse les rapports xml de Checkstyle, PMD, FindBugs pour calculer les différences, etc... ? A moins que quelqu'un ait déjà eu à développer ce type d'outil ?

J'espère que je n'ai pas été trop confus dans mon illustration

En tout cas merci d'avoir lu jusque là, et merci d'avance pour vos retours