Je suis à la recherche d'un outil comme libcheck pour évaluer les différentes versions du même SDK [fermé]
-
13-09-2019 - |
Question
Je travaille sur un SDK. Comme je l'ai de nouvelles versions, je voudrais produire un rapport des différences dans l'API. Ce ne sont pas les différences dans le code. La plupart du code ne devrait pas être utilisé directement. Les classes publiques / méthodes est ce que je suis intéressé. De plus, nous avons adopté la convention que tout dans un espace qui comprend la mise en œuvre ne doit pas être utilisé par un client du SDK. Je cherche donc les différences dans les interfaces publiques, des classes et des méthodes qui ne sont pas dans un espace de noms qui comprend la mise en œuvre. Je veux savoir ce qui a été enlevé, ajouté et modifié entre deux versions.
J'ai trouvé un outil de Microsoft appelé libcheck qui est dans le bon ordre de grandeur. J'ai quelques problèmes avec libcheck. Libcheck ne reconnaît pas une méthode qui a été modifié. Il rend compte de la méthode comme ayant été retiré et ajouté. Il rapporte quelque temps une méthode comme ayant été retiré et ajouté, mais le nom et les paramètres sont tous les mêmes. Je ne sais pas ce qu'il essaie de me dire dans ces cas. Enfin, je ne me soucie pas de la mise en page des rapports. Je voudrais une pause par espace de noms, ainsi que par l'assemblage et la classe.
Je suis conscient que les rapports sont le résultat d'une transformation XSLT et je pourrais leur donner un aspect essentiel de toute façon je veux. Pourtant, les autres problèmes associés à un manque général de soutien à l'outil de Microsoft me laissent à la recherche d'une alternative.
La solution
Il y a aussi http://apichange.codeplex.com qui a une option diffing. Appelez comme ceci
ApiChange -diff -old $net2dir\System.dll -new $net4dir\System.dll
et vous devriez obtenir un rapport.
Autres conseils
Un outil tel que NDepend est très bien adapté à ce travail, et a construit dans les fonctions de reporting diff à un niveau « API » plutôt que par exemple simplement textuelle:
NDepend a sa propre CQL langage de requête de code qui peut être utilisé pour écrire des rapports d'analyse statiques hautement personnalisés: