J'interprète cette situation comme ayant deux problèmes fondamentaux, peut-être trois.
- Une mise à niveau indésirable du SDK a été intégrée à la source, ce qui pourrait nuire au produit.
- D'après la question: le contributeur qui a effectué la mise à niveau indésirable n'était pas au courant d'une décision spécifique antérieure de ne pas effectuer la mise à niveau.
Le premier, à mon avis, est le plus grave. Si une mise à niveau indésirable du SDK peut en faire le code, d'autres problèmes peuvent en faire de même.
Quelqu'un a suggéré d'ajouter un scénario de test d'unité qui échouera s'il détecte la mise à niveau. Bien que cela empêcherait la mise à niveau de se produire, je pense que ceci est une voie dangereuse, menant à un écoulement de lave au fil du temps. Il semble inévitable qu'à l'avenir, le SDK soit mis à niveau pour intégrer de nouvelles fonctionnalités ou des corrections de bugs, ou que l'ancienne version ne soit plus prise en charge. Imaginez les casse-tête, peut-être même les arguments, qui se produiront lorsqu'un tel test unitaire échouera.
Je pense que la solution la plus générale consiste à ajuster le processus de développement. Pour git, utilisez le processus de demande d'extraction . Pour Subversion et les outils plus anciens, utilisez branches et diff. Toutefois, certains processus permettent aux développeurs expérimentés de résoudre ce type de problèmes avant qu’ils ne soient intégrés au code et n’affectent pas les autres développeurs.
Si le processus de demande d'extraction avait été utilisé dans votre situation, et si chaque demande d'extraction était étroite et spécifique, peu de temps aurait été perdu. Une demande d'extraction visant à mettre à niveau le SDK aurait été soumise et refusée avec un commentaire indiquant que la mise à niveau n'est pas souhaitée. Personne d'autre n'aurait été touché, et il ne serait plus nécessaire pour l'instant de revenir sur la mise à niveau du SDK.
Mais pour répondre directement à la question initiale, je suis d'accord avec les autres pour dire que demander à tous les développeurs de lire intégralement l'historique de révision du code, les notes de mise à jour, etc. de tels avis est une perte de temps. Quel est le problème avec un court courrier électronique d'équipe?
Troisième problème possible: pourquoi la mise à niveau n'est-elle pas souhaitée en premier lieu? Clairement, au moins un développeur a pensé que la mise à niveau serait une bonne chose. Il y a beaucoup de bonnes raisons de retarder une mise à niveau, mais aussi beaucoup de mauvaises. Veillez à éviter les coulées de lave (code de compatibilité ascendante inutile) et le culte du fret ("nous ne pouvons pas améliorer cela, mais je ne sais pas pourquoi") anti-patterns!