Dérive de contrat
Un diff de spécification vous dit que quelque chose a cassé. Il ne peut pas vous dire qui casse.
Chaque outil de détection de changement incompatible compare deux versions d'un même document. C'est la moitié facile. La question que vous vous posez réellement le matin d'une mise en production est lequel de vos services est sur le point de tomber, et un diff de spécification n'en a aucune idée.
Un champ, une semaine
-
Mardi
Un champ devient optionnel
Un agent resserre un gestionnaire et le schéma de réponse perd un champ qui était toujours présent. La pull request est verte. Le changement est correct isolément.
-
Mardi
La spécification est versionnée, pas seulement comparée
Le document publié est capturé sous forme d'instantané avec une empreinte, ses éléments extraits, et comparé à la référence. La comparaison répond compatible ou non, et nomme chaque changement qui l'a rendu tel.
-
Mardi
Le graphe indique qui est concerné
Trois services déclarent une dépendance à celui qui publie ce contrat. Ce n'est pas une supposition issue d'un diff de spécification. C'est lu dans leurs propres manifestes.
-
Vendredi
Ce qui se passait auparavant
L'équipe mobile le découvre en staging, ou un client le découvre en production, et quelqu'un passe l'après-midi à chercher quelle version en est la cause.
L'enregistrement
Ce que porte un changement
Une comparaison répond si les deux versions sont compatibles, et chaque changement qu'elle contient est un enregistrement sur lequel vous pouvez agir plutôt qu'une ligne de prose.
- classification
- De quel type de changement il s'agit, afin qu'un renommage et une suppression ne soient pas consignés comme le même événement.
- gravité
- À quel point cela compte, porté par le changement lui-même plutôt que déduit plus tard par quiconque le lit.
- résumé
- Ce qui a bougé, en une ligne, pour qu'un relecteur n'ait pas à comparer deux documents à l'œil.
- élément avant / après
- L'élément exact de chaque côté. Un changement doit nommer quelque chose qu'il a affecté, sinon il n'est pas enregistré.
- confiance
- Entre 0 et 1. L'incertitude est énoncée plutôt qu'arrondie.
- preuves
- La source et la révision derrière la constatation, pour qu'elle puisse être vérifiée plutôt que crue sur parole.
La jonction
Le contrat sait ce qui a changé. Le graphe sait qui en dépend.
Aucune des deux moitiés n'est inhabituelle en soi. Les réunir dans un même enregistrement, voilà ce qui répond à la question que vous vous posez vraiment.
L'interface publiée
Capturée avec un condensé et une révision, ses éléments extraits, comparée à la version précédente.
Réunis dans un même graphe
Sous une même portée, parcourables en une seule requête bornée
Les services qui la consomment
Lus depuis les manifestes que publient ces dépôts, avec le fichier derrière chaque arête sur l'enregistrement.
Où vous le rencontrez
En revue, sur le changement qui l'a causé
Une constatation sur une interface publiée est pondérée par ce que le graphe dit en dépendre. Une rupture sur un contrat consommé par trois services n'est pas la même constatation que sur un utilitaire interne.
Dans votre assistant, avant que le changement ne soit écrit
Les contrats comptent parmi les sources sur lesquelles s'appuie un pack de contexte, si bien qu'un agent qui demande ce qu'un changement touche obtient l'interface et ses consommateurs en même temps que le code.
Inscrivez votre système au registre
Exécutez le cœur open source sur votre propre infrastructure, ou commencez sur l'espace de travail hébergé. Le graphe est portable dans les deux cas.