Skip to content

🏭 ci: conventions mécaniques + tout src/ en anglais#30

Merged
ronan-develop merged 3 commits into
mainfrom
ci/conventions-et-anglais
Jul 16, 2026
Merged

🏭 ci: conventions mécaniques + tout src/ en anglais#30
ronan-develop merged 3 commits into
mainfrom
ci/conventions-et-anglais

Conversation

@ronan-develop

Copy link
Copy Markdown
Owner

Trois choses : un job CI qui applique CONTRIBUTING.md, la traduction complète de src/, et la justification des modèles sans preview.

1. Les règles deviennent mécaniques

CONTRIBUTING.md documentait des règles que rien ne vérifiait — elles reposaient sur ma vigilance seule. Six contrôles, quelques secondes de CI :

ContrĂ´le Pourquoi
Pas de Symfony\ hors src/Bridge/ la librairie doit rester utilisable sans Symfony
Pas de GD dans src/ le package ne dépend d'aucune extension
declare(strict_types=1) partout
Pas de unpack('S'/'L') ils suivent l'endianness du CPU
Pas de commentaire français dans src/ package public
Pas de RAW commité EXIF dans l'historique git à vie

Chacun a été exécuté localement avant d'être ajouté — le sixième détectait bien les 20 fichiers à traduire, preuve qu'il n'est pas décoratif.

2. Tout src/ en anglais

Le PHPDoc est la documentation d'API d'un package Packagist, et les messages d'exception sont ce qu'un utilisateur non francophone voit quand la librairie échoue :

Avant : Fichier tronqué : 12 octets, moins qu'un en-tête de boîte.
Après : Truncated file: 12 bytes, less than a box header.

Traduits : 728 lignes de commentaires sur 20 fichiers, 12 messages d'exception, 7 assertions de test.

Le sens est préservé — ces commentaires portent des découvertes coûteuses (les 8 octets propriétaires avant PRVW, le JPEG lossless marqué Compression = 6 par Canon, le MakerNote de 75 Ko d'un 5D de 2005). Aucune n'a été résumée.

CLAUDE.md et .claude/ restent en français : locaux, git-ignorés, ils ne concernent pas les utilisateurs.

3. Les échecs justifiés, pas affirmés

La liste des modèles sans preview était affirmative. Elle donne maintenant la commande de vérification :

grep -c $'\xff\xd8\xff' some-file.dng    # 0 — pas un seul marqueur JPEG

Et les deux raisons réelles : les boîtiers anciens précèdent la convention (un D1H de 2001 stocke une vignette RGB brute), les compacts n'ont jamais eu de mode RAW (leurs DNG viennent de CHDK, un firmware alternatif). Il n'y a rien à extraire — lever est correct, rendre quelque chose reviendrait à l'inventer.

OK (138 tests, 224 assertions)
9 fichiers réels : aucune régression

Les règles du guide ne valaient que par ma vigilance : aucune n'était vérifiée.
Six contrĂ´les les rendent non contournables.

- Symfony hors de src/Bridge/ : la librairie doit rester utilisable sans
  Symfony, c'est la raison d'ĂŞtre d'un type: library ;
- GD dans src/ : il fabrique et valide dans les tests, jamais n'extrait — le
  package ne dépend d'aucune extension ;
- declare(strict_types=1) partout ;
- unpack('S'/'L') : ils suivent l'endianness du CPU et rendraient le parsing
  dépendant de la machine ;
- commentaires français dans src/ : le package est public, son PHPDoc est sa
  documentation d'API ;
- RAW commité : les EXIF (numéro de série, GPS) resteraient dans l'historique
  git Ă  vie.

Chaque contrôle a été exécuté localement avant d'être ajouté : le sixième
détectait bien les 20 fichiers à traduire.
Le package est public : son PHPDoc est sa documentation d'API, et ses messages
d'exception sont ce que voit un utilisateur non francophone quand la librairie
échoue. Des commentaires français y excluent les contributeurs.

Traduits : les 728 lignes de commentaires des 20 fichiers de src/, et les 12
messages d'exception avec les 7 assertions de test correspondantes.

Le sens et la précision sont préservés — ces commentaires portent des
découvertes coûteuses issues de la rétro-ingénierie de fichiers réels (les 8
octets propriétaires avant PRVW dans un CR3, le JPEG lossless que Canon marque
Compression = 6, le MakerNote de 75 Ko d'un 5D de 2005). Aucune n'a été
résumée.

« façade » devient « facade » : c'est le nom du pattern, et la graphie usuelle
en contexte technique.

CLAUDE.md, les skills et .claude/ restent en français : ils sont locaux et
git-ignorés, ils ne concernent pas les utilisateurs du package.
…irmer

La liste des échecs connus était affirmative : elle n'expliquait ni comment on
l'a vérifié, ni pourquoi ces modèles n'ont pas de preview. De quoi passer pour
arbitraire.

Elle donne désormais la commande de vérification — grep -c $'\xff\xd8\xff'
rend 0, pas un seul marqueur JPEG dans le fichier entier — et les deux raisons
réelles : les boîtiers les plus anciens précèdent la convention (un D1H de 2001
stocke une vignette RGB brute, embarquer un JPEG n'était pas encore l'usage),
et les compacts n'ont jamais eu de mode RAW (leurs DNG viennent de CHDK, un
firmware alternatif).

Il n'y a rien Ă  extraire dans ces fichiers : lever est correct, rendre quelque
chose reviendrait Ă  l'inventer.
@ronan-develop
ronan-develop merged commit 1a6f0e6 into main Jul 16, 2026
7 checks passed
@ronan-develop
ronan-develop deleted the ci/conventions-et-anglais branch July 16, 2026 21:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant