Repository navigation
build: abaisse la contrainte PHP à >=8.2 (aligné Symfony 7.3) - #37
Merged
Merged
Conversation
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
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.
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 exigeaitphp >=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.lockrafraî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.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
composer validate --strict, PHPStan (8.2→8.5), php-cs-fixer,phpunit(57) — verts.bundle-compatexé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.0compatible 8.2).🤖 Generated with Claude Code
https://claude.ai/code/session_01GvQgKyL1aGyX8xYHpRgJjn