Je suis à la recherche d'un outil comme libcheck pour évaluer les différentes versions du même SDK [fermé]

StackOverflow https://stackoverflow.com/questions/783790

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.

Était-ce utile?

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:

Comparer et code Builds Diff

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:

code Query Language

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top