symfony/flex added — activates the existing extra.symfony.require: "7.4.*", so transitive Symfony components can no longer jump to 8.x. symfony/dependency-injection goes back from 8.0.15 to 7.4.20, and var-exporter (which also tried to go to 8.1) stays on 7.4.
Renovate — all Symfony components are grouped into one PR and restricted to ~7.4. Flex, polyfills and *-contracts are excluded because they use their own version numbers.
Docker — both Dockerfiles copy symfony.lock so Flex doesn't re-apply recipe scaffolding during composer install.
CHANGELOG — added the missing 0.2.1 section and cut 0.2.2.
Test plan
Ran the steps of test.yml locally on a clean copy of the branch (act can't parse the workflow because of its gitea.* contexts):
## Summary
- **`symfony/flex` added** — activates the existing `extra.symfony.require: "7.4.*"`, so transitive Symfony components can no longer jump to 8.x. `symfony/dependency-injection` goes back from 8.0.15 to 7.4.20, and `var-exporter` (which also tried to go to 8.1) stays on 7.4.
- **Renovate** — all Symfony components are grouped into one PR and restricted to `~7.4`. Flex, polyfills and `*-contracts` are excluded because they use their own version numbers.
- **Docker** — both Dockerfiles copy `symfony.lock` so Flex doesn't re-apply recipe scaffolding during `composer install`.
- **CHANGELOG** — added the missing `0.2.1` section and cut `0.2.2`.
## Test plan
Ran the steps of `test.yml` locally on a clean copy of the branch (`act` can't parse the workflow because of its `gitea.*` contexts):
- [x] Dev image builds; `composer install` + PHPUnit: 93 tests, 125 assertions passed
- [x] PHPStan level 8: no errors
- [x] Prod `final` image builds with no leftover recipe files
- [x] Prod container: `/health` → 200, `/graph.svg?theme=dark` → 200 `image/svg+xml`
After merging, tag `0.2.2` to trigger `docker-publish.yml`.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
- Add symfony/flex so extra.symfony.require "7.4.*" is enforced for
transitive components (dependency-injection had drifted to 8.0.15)
- Group Symfony packages in Renovate and restrict them to ~7.4
- Copy symfony.lock in Docker builds so Flex doesn't re-apply recipes
- Add missing 0.2.1 changelog section and cut 0.2.2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
haylan
scheduled this pull request to auto merge when all checks succeed 2026-10-02 10:59:15 +00:00
The new Symfony package rule applies allowedVersions: "~7.4" to all symfony/* packages except Flex, polyfills, and contracts. symfony/monolog-bundle is versioned independently (currently ^4.0) and has no 7.4 releases, so Renovate will not update it to newer 4.x versions. Exclude symfony/monolog-bundle or match only core Symfony components.
{"groupName":"symfony","allowedVersions":"~7.4","description":"Keep all Symfony components on 7.4 LTS and update them together (symfony/flex enforces extra.symfony.require for transitive ones)","matchPackageNames":["/^symfony//","!symfony/flex","!/^symfony/polyfill-/","!/-contracts$/"]},
## PR Reviewer Guide 🔍
<!-- pr-agent:review:full -->
Here are some key observations to aid the review process:
<table>
<tr><td>⏱️ <strong>Estimated effort to review</strong>: 2 🔵🔵⚪⚪⚪</td></tr>
<tr><td>🧪 <strong>No relevant tests</strong></td></tr>
<tr><td>🔒 <strong>No security concerns identified</strong></td></tr>
<tr><td>⚡ <strong>Recommended focus areas for review</strong><br><br>
<details><summary><a href='https://git.arthurerlich.de/haylan/git-contribution-graph/src/branch/chore/update-changelog/renovate.json#L11-L21'><strong>Renovate config bug</strong></a>
The new Symfony package rule applies `allowedVersions: "~7.4"` to all `symfony/*` packages except Flex, polyfills, and contracts. `symfony/monolog-bundle` is versioned independently (currently `^4.0`) and has no 7.4 releases, so Renovate will not update it to newer 4.x versions. Exclude `symfony/monolog-bundle` or match only core Symfony components.
</summary>
```json
{
"groupName": "symfony",
"allowedVersions": "~7.4",
"description": "Keep all Symfony components on 7.4 LTS and update them together (symfony/flex enforces extra.symfony.require for transitive ones)",
"matchPackageNames": [
"/^symfony//",
"!symfony/flex",
"!/^symfony/polyfill-/",
"!/-contracts$/"
]
},
```
</details>
</td></tr>
</table>
The ~7.4 range will also match symfony/monolog-bundle, which is versioned independently and is not a Symfony core component. Exclude it so Renovate can update it normally.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
symfony/flexadded — activates the existingextra.symfony.require: "7.4.*", so transitive Symfony components can no longer jump to 8.x.symfony/dependency-injectiongoes back from 8.0.15 to 7.4.20, andvar-exporter(which also tried to go to 8.1) stays on 7.4.~7.4. Flex, polyfills and*-contractsare excluded because they use their own version numbers.symfony.lockso Flex doesn't re-apply recipe scaffolding duringcomposer install.0.2.1section and cut0.2.2.Test plan
Ran the steps of
test.ymllocally on a clean copy of the branch (actcan't parse the workflow because of itsgitea.*contexts):composer install+ PHPUnit: 93 tests, 125 assertions passedfinalimage builds with no leftover recipe files/health→ 200,/graph.svg?theme=dark→ 200image/svg+xmlAfter merging, tag
0.2.2to triggerdocker-publish.yml.🤖 Generated with Claude Code
Failed to update PR description
PR Reviewer Guide 🔍
Here are some key observations to aid the review process:
Renovate config bug
The new Symfony package rule applies
allowedVersions: "~7.4"to allsymfony/*packages except Flex, polyfills, and contracts.symfony/monolog-bundleis versioned independently (currently^4.0) and has no 7.4 releases, so Renovate will not update it to newer 4.x versions. Excludesymfony/monolog-bundleor match only core Symfony components.PR Code Suggestions ✨
Explore these optional code suggestions:
Exclude non-core Symfony bundle
The
~7.4range will also matchsymfony/monolog-bundle, which is versionedindependently and is not a Symfony core component. Exclude it so Renovate can update
it normally.
renovate.json [15-20]
Suggestion importance[1-10]: 7
__
Why: The
~7.4rule would blocksymfony/monolog-bundle, which is versioned 4.x, so excluding it lets Renovate update it normally.