Skip to content

build: abaisse la contrainte PHP à >=8.2 (aligné Symfony 7.3) - #37

Merged
thibmonier merged 4 commits into
mainfrom
feature/lower-php-8.2
Sep 10, 2026
Merged

thibmonier merged 4 commits into
mainfrom
feature/lower-php-8.2

Conversation

@thibmonier

Copy link
Copy Markdown
Owner

Pourquoi

La recette Flex (symfony/recipes-contrib#2047) échoue à l'étape « Run updated recipes » : la CI y teste l'installation du bundle sur PHP 8.1 / 8.2 / 8.4, mais le bundle exigeait php >=8.5 → non installable. >=8.5 était de toute façon plus restrictif que nécessaire (Symfony 7.3, déjà requis, supporte PHP ≥ 8.2) et limitait l'adoption.

Changements

  • composer.json : "php" >=8.5 → >=8.2 (+ composer.lock rafraîchi, dépendances inchangées).
  • phpstan.neon : phpVersion { min: 80200, max: 80500 } — PHPStan (niveau max) valide la compatibilité sur toute la plage 8.2→8.5, même exécuté sur 8.5.
  • CI : nouveau job matrice bundle-compat (PHP 8.2/8.3/8.4) faisant une résolution fraîche (composer update, comme un consommateur / la recette) + phpunit — preuve d'installabilité et de tests verts dès 8.2.

Aucun code src/ modifié : déjà compatible 8.2 (aucune syntaxe > 8.2, confirmé par PHPStan sur la plage).

Tests

  • Local : composer validate --strict, PHPStan (8.2→8.5), php-cs-fixer, phpunit (57) — verts.
  • CI : la matrice bundle-compat exécute réellement les tests sur 8.2/8.3/8.4.

Suite

Après merge → release v1.5.0 (support PHP élargi) → re-déclenchement de la CI de la recette #2047 (qui installera alors une version ^1.0 compatible 8.2).

🤖 Generated with Claude Code

https://claude.ai/code/session_01GvQgKyL1aGyX8xYHpRgJjn

thibmonier and others added 4 commits September 10, 2026 19:19
Le bundle exigeait php >=8.5, ce qui empêchait son installation sur la matrice
de test de symfony/recipes-contrib (PHP 8.1/8.2/8.4) et restreignait inutilement
l'adoption. Symfony 7.3 (déjà requis) supporte PHP >=8.2.

- composer.json : "php" >=8.5 → >=8.2 (+ lock rafraîchi).
- phpstan.neon : phpVersion min 80200 / max 80500 — valide la compat sur toute
  la plage supportée même en analysant sur 8.5.
- CI : nouveau job matrice `bundle-compat` (PHP 8.2/8.3/8.4) — résolution fraîche
  (comme la recette) + tests, pour prouver l'installation et le run dès 8.2.

Aucun code source modifié (déjà compatible 8.2, vérifié par PHPStan). Débloque
la recette Flex (PR symfony/recipes-contrib#2047).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GvQgKyL1aGyX8xYHpRgJjn
Le job compat échouait en PHP 8.2 non pas à cause du runtime (symfony ^7.3
supporte 8.2) mais de la dépendance de DEV phpunit (^12.2||^13.0) qui exige
PHP >=8.3/8.4. Les consommateurs / la recette Flex n'installent que le runtime.

- bundle-install-min (PHP 8.2) : `composer update --no-dev` → prouve l'install
  runtime dès 8.2 (comme la recette).
- bundle-compat (PHP 8.3/8.4) : install complet + tests (toolchain PHPUnit dispo).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GvQgKyL1aGyX8xYHpRgJjn
`composer update --no-dev` résout quand même le require-dev (phpunit ≥ 8.3) et
échouait en 8.2. Or les consommateurs / la recette ne tirent jamais le require-dev
du bundle. `composer install --no-dev` installe le runtime depuis le lock sans
vérifier la plateforme des packages de dev → reflète fidèlement l'install consommateur.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GvQgKyL1aGyX8xYHpRgJjn
… path)

Le lock du bundle épingle Symfony 8.1 (php >=8.4.1) ; `composer install` depuis
ce lock échoue donc en 8.2. Un consommateur fait une résolution FRAÎCHE via
`composer require`, qui choisit Symfony ^7.3 (compatible 8.2) et n'inclut jamais
le require-dev du bundle. Le job simule ce cas (app tierce + dépôt path) → preuve
fidèle de l'installabilité dès PHP 8.2 (idem recette Flex).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GvQgKyL1aGyX8xYHpRgJjn
@thibmonier
thibmonier merged commit 674f4f9 into main Sep 10, 2026
9 checks passed
@thibmonier
thibmonier deleted the feature/lower-php-8.2 branch September 10, 2026 17:30
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