📖 docs: guide de contribution et 64 modèles validés#29
Merged
Conversation
Documente les conventions telles qu'elles sont réellement appliquées ici, pas des généralités : zéro dépendance runtime et ses deux corollaires, TDD strict, seuil de couverture, règles de parsing binaire, workflow issue → branche → PR. Trois sections tirent les leçons des bugs de ce projet : - « forged bytes prove less than you think » : les quatre bugs trouvés étaient tous invisibles à une suite verte, parce qu'un test écrit à partir d'une incompréhension reproduit l'incompréhension ; - la couverture : avant d'ajouter un test pour couvrir une ligne, se demander si la ligne mérite d'exister — ici le passage de 83 % à 99 % s'est fait surtout en supprimant du code mort ; - corrompu ≠absent : un tag qui ment sur son contenu est courant dans les RAW, ce n'est pas une corruption. Inverser les deux fait rejeter des fichiers parfaitement lisibles.
Quatre audits lancés en parallèle partageaient /tmp/rpe-audit : le premier qui finissait supprimait le dossier des autres, qui écrivaient alors dans le vide. Résultat : 15 % de réussite annoncée là où le même modèle passait à 76 % seul. Un auditeur qui invente ses échecs est pire qu'inutile — il envoie enquêter sur des bugs qui n'existent pas. Le nettoyage vide aussi le dossier avant de le supprimer : rmdir échoue sur un dossier non vide, ce qu'un téléchargement interrompu peut laisser.
Audit des quatre marques du périmètre : 72 modèles testés, 64 réussis. Sony 23/23, Nikon 20/22, Apple 5/6, Canon 16/21 — tous les boîtiers EOS passent. Les 8 échecs ont été vérifiés un par un, et tous sont corrects : ces fichiers ne contiennent aucun JPEG (zéro FFD8 dans le fichier entier). Un Nikon D1H de 2001 porte une vignette 160x120 RGB non compressée, les DNG de compacts générés par CHDK font de même, et les .CRW précèdent le CR2. PreviewNotFoundException y est la bonne réponse — le taux réel sur les fichiers qui ont une preview est 100 %. La liste complète est en annexe, en bas de page, pour ne pas noyer le tableau principal des 9 appareils validés à la main avec leurs dimensions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Trois choses : un guide de contribution, l'audit des quatre marques, et un fix de l'auditeur.
CONTRIBUTING.md
Documente les conventions telles qu'elles sont réellement appliquées — zéro dépendance runtime et ses corollaires, TDD strict, seuil de couverture, règles de parsing binaire, workflow issue → branche → PR.
Trois sections tirent les leçons des bugs de ce projet :
« Forged bytes prove less than you think » — les cinq bugs trouvés étaient tous invisibles à une suite verte :
findUuid()cherchait à la racinemoov.Compression = 6.La couverture — avant d'ajouter un test pour couvrir une ligne, se demander si la ligne mérite d'exister. Ici, 83 % → 99 % surtout en supprimant du code mort.
Corrompu ≠absent — un tag qui ment sur son contenu est courant dans les RAW. Inverser les deux fait rejeter des fichiers parfaitement lisibles.
Audit des 4 marques : 64/72
Les 8 échecs ont été vérifiés un par un et sont tous corrects : ces fichiers ne contiennent aucun JPEG (zéro
FFD8dans le fichier entier). D1H de 2001 → vignette RGB non compressée. DNG de compacts CHDK → idem..CRW→ format d'avant le CR2, hors périmètre.Le taux réel sur les fichiers qui ont une preview est de 100 %.
La liste des 64 modèles est en annexe du README.
đź”§ Fix de l'auditeur
Quatre audits parallèles partageaient
/tmp/rpe-audit: le premier qui finissait supprimait le dossier des autres, qui écrivaient dans le vide. Résultat : 15 % de réussite annoncée là où le même modèle passait à 76 % seul.Un auditeur qui invente ses échecs est pire qu'inutile — il envoie enquêter sur des bugs qui n'existent pas. Dossier isolé par PID désormais.