Le budget de commentaire se compte par zone, et le test porte le sien¶
scripts/adr/4472-commentaire-en-corps.pyLe contexte¶
Deux décisions refusent déjà le compteur unique sur deux zones. L'ADR 4682 la tranche pour le portail qualité : « un compteur unique laisserait une régression d'un côté se payer par un gain de l'autre ». L'ADR 4587 la refuse pour les renvois, dans les mêmes termes.
Aucune des deux n'a été appliquée ailleurs. La passe 7 de la clôture de #4650 a cherché qui en relevait encore, en croisant les cliquets non nuls du dépôt avec les zones Java que leur gage lit. Il restait un cas.
| ADR | cliquet | zones lues | état |
|---|---|---|---|
| 4359 | 741 | les deux | hors sujet : dispositif: invariant, seuil: (sans objet) |
| 4617 / 4682 | 40 / 0 | les deux | déjà séparé, deux rapporte |
| 2843 | 1 | test seul | hors sujet |
| 4472 | 43 | les deux | le cas |
La mesure qui décide¶
Le défaut n'est pas hypothétique : les deux zones sont peuplées. Un gain de cinq blocs côté test payait une régression de cinq blocs côté production, et le cliquet restait vert à 43.
La décision¶
Le comptage se sépare, la règle ne change pas. L'ADR 4472 garde la production, à 24. Celle-ci porte la zone de test, à 19. Le garde rend deux lignes de verdict et sort sur le pire des deux, comme le portail depuis l'ADR 4682.
Un seul garde, deux décisions : c'est le patron de 4617-code-mort-et-zone-de-test.py, recopié
plutôt que réinventé.
Ce que cela ne dit pas¶
Rien n'établit que la norme diffère entre les deux zones, et cette décision ne le prétend pas. Le budget de huit lignes de l'ADR 4472 vaut des deux côtés, pour la même raison : un bloc long dit que le code d'en dessous est trop obscur, qu'une décision est restée là, ou qu'un pan d'histoire n'a pas été retiré. Aucun de ces trois motifs ne s'affaiblit dans un test.
C'est une différence avec le portail, où l'ADR 4617 écarte explicitement les littéraux dupliqués de la seule zone de test, « où les répéter est le geste juste ». Ici il n'y a pas d'asymétrie de norme : il y a seulement deux populations qu'un compteur unique laissait se compenser.
Transposer le mécanisme sans transposer sa justification aurait produit une ADR qui affirme une asymétrie que personne n'a mesurée.
Les alternatives écartées¶
- Laisser le compteur unique et l'assumer. Il aurait fallu écrire pourquoi la compensation entre zones est acceptable ici et pas ailleurs. Aucune mesure ne le soutient.
- Deux gardes séparés. Ils reliraient deux fois les mêmes 2 139 fichiers, pour un coût déjà mesuré à 1,13 s par demande. Un garde, deux verdicts.
- Un cliquet unique à polarité par zone. Le dispositif ne le porte pas, et l'inventer pour un seul cas aurait ajouté une forme que rien d'autre ne lit.
Comment on le sait¶
scripts/adr/4472-commentaire-en-corps.py rend deux lignes, ADR 4472 et ADR 5582, et son code de
sortie est le maximum des deux. Une régression dans une zone fait donc rougir même si l'autre a
gagné, et c'est exactement ce que le cliquet unique ne pouvait pas faire.