chore(release): 0.2.2 — keep all Symfony components on 7.4 #35

Merged
haylan merged 1 commits from chore/update-changelog into main 2026-10-02 11:04:24 +00:00
Owner

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):

  • Dev image builds; composer install + PHPUnit: 93 tests, 125 assertions passed
  • PHPStan level 8: no errors
  • Prod final image builds with no leftover recipe files
  • 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

## 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)
haylan added 1 commit 2026-10-02 10:58:34 +00:00
chore(release): 0.2.2 — keep all Symfony components on 7.4
Tests / build-dev (push) Skipped
Tests / build-prod (push) Skipped
Tests / build-dev (pull_request) Successful in 2m44s
Tests / build-prod (pull_request) Successful in 2m55s
a55647efa4
- 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

Failed to update PR description

Failed to update PR description
haylan merged commit ee94cd3856 into main 2026-10-02 11:04:24 +00:00
haylan deleted branch chore/update-changelog 2026-10-02 11:04:25 +00:00

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Renovate config bug

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>⏱️&nbsp;<strong>Estimated effort to review</strong>: 2 🔵🔵⚪⚪⚪</td></tr> <tr><td>🧪&nbsp;<strong>No relevant tests</strong></td></tr> <tr><td>🔒&nbsp;<strong>No security concerns identified</strong></td></tr> <tr><td>⚡&nbsp;<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>

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Exclude non-core Symfony bundle

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.

renovate.json [15-20]

       "matchPackageNames": [
         "/^symfony//",
         "!symfony/flex",
+        "!symfony/monolog-bundle",
         "!/^symfony/polyfill-/",
         "!/-contracts$/"
       ]
Suggestion importance[1-10]: 7

__

Why: The ~7.4 rule would block symfony/monolog-bundle, which is versioned 4.x, so excluding it lets Renovate update it normally.

Medium
## PR Code Suggestions ✨ <!-- pr-agent:improve:summary --> <!-- a55647e --> Explore these optional code suggestions: <table><thead><tr><td><strong>Category</strong></td><td align=left><strong>Suggestion&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </strong></td><td align=center><strong>Impact</strong></td></tr><tbody><tr><td rowspan=1>Possible issue</td> <td> <details><summary>Exclude non-core Symfony bundle</summary> ___ **The <code>~7.4</code> range will also match <code>symfony/monolog-bundle</code>, which is versioned <br>independently and is not a Symfony core component. Exclude it so Renovate can update <br>it normally.** [renovate.json [15-20]](https://git.arthurerlich.de/haylan/git-contribution-graph/src/branch/chore/update-changelog/renovate.json#L15-L20) ```diff "matchPackageNames": [ "/^symfony//", "!symfony/flex", + "!symfony/monolog-bundle", "!/^symfony/polyfill-/", "!/-contracts$/" ] ``` <details><summary>Suggestion importance[1-10]: 7</summary> __ Why: The `~7.4` rule would block `symfony/monolog-bundle`, which is versioned 4.x, so excluding it lets Renovate update it normally. </details></details></td><td align=center>Medium </td></tr></tr></tbody></table>
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: haylan/git-contribution-graph#35