Skip to content

🛠️ chore(gitattributes): ne pas distribuer tests, CI et outillage#21

Merged
ronan-develop merged 2 commits into
mainfrom
chore/#20-gitattributes
Jul 16, 2026
Merged

🛠️ chore(gitattributes): ne pas distribuer tests, CI et outillage#21
ronan-develop merged 2 commits into
mainfrom
chore/#20-gitattributes

Conversation

@ronan-develop

Copy link
Copy Markdown
Owner

Closes #20

composer require ronanlenouvel/raw-preview-extractor téléchargeait 39 fichiers, dont 13 inutiles en production.

Ces fichiers ne s'exécutaient pas

Vérifié avant d'agir — Composer ne lance rien :

  • il gĂ©nère un autoload PSR-4 : une classe n'est chargĂ©e que si le code la demande, et personne ne demande RawPreviewExtractorIntegrationTest ;
  • autoload-dev (qui dĂ©clare le namespace des tests) est ignorĂ© pour les dĂ©pendances — la classe serait introuvable mĂŞme si on la demandait ;
  • aucune section bin dans composer.json : aucun exĂ©cutable exposĂ©.

Ils dormaient donc sur le disque. Sans danger, mais du poids mort.

Résultat

export-ignore les retire de l'archive dist que GitHub génère et que Composer télécharge :

Avant Après
Fichiers distribués 39 23
Contenu src/ + tests/ + .github/ + bin/ + config src/ + composer.json + LICENSE + README

Ils restent sur GitHub : la CI tourne, les contributeurs ont tout.

Vérifié

git archive --format=tar HEAD | tar -t   # exactement ce que Composer reçoit

composer require téléchargeait 39 fichiers dont 13 inutiles en production :
tests/, .github/, phpunit.dist.xml, bin/coverage-check.php.

Ils ne s'exécutaient jamais — Composer ne fait que générer un autoload PSR-4,
autoload-dev est ignoré pour les dépendances, et aucune section bin n'est
déclarée — mais ils alourdissaient chaque installation.

export-ignore les retire de l'archive dist que GitHub génère et que Composer
télécharge. Ils restent sur GitHub : la CI et les contributeurs les ont.

Closes #20
bin/extract-local.php rejoint le repo : le .gitattributes met déjà /bin/ en
export-ignore, donc il ne descendra pas chez un utilisateur de Packagist — le
.gitignore qui le couvrait faisait doublon, et le perdait au changement de
machine.

Le README explique la démarche : déposer des RAW dans tests/Fixtures/local/
(git-ignoré), lancer le script, ouvrir les vignettes produites dans
.../local/output/.

L'insistance sur « open them » n'est pas rhétorique : ce package a rendu une
vignette 160×120 valide là où une preview 1620×1080 était attendue, avec 132
tests au vert. Un JPEG qui se décode n'est pas forcément le bon JPEG.
@ronan-develop
ronan-develop merged commit 8843120 into main Jul 16, 2026
6 checks passed
@ronan-develop
ronan-develop deleted the chore/#20-gitattributes branch July 16, 2026 14:42
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.

🛠️ chore(gitattributes): ne pas distribuer tests/ et CI dans l'archive Packagist

1 participant