Skip to content

Instantly share code, notes, and snippets.

@mpdude
Created November 17, 2025 10:03
Show Gist options
  • Select an option

  • Save mpdude/aa4d18271e8ad9c27085436eb846d05c to your computer and use it in GitHub Desktop.

Select an option

Save mpdude/aa4d18271e8ad9c27085436eb846d05c to your computer and use it in GitHub Desktop.
Copilot Briefing zur Aktualisierung von Paketen auf PHP 8.4 und Symfony 6.4 sowie 7.x

Ziel

Repositorien so anpassen, dass sie Symfony 6.4 und 7.x offiziell unterstützen und in CI darauf getestet werden. Außerdem PHP-Obergrenze entfernen (z. B. ">=8.1" statt ">=8.1, <8.4") damit PHP 8.4 erlaubt ist. CI um PHP 8.4 erweitern und die Testmatrix anpassen (u. a. minimal/lowest- und stabile Läufe).

Schritt für Schritt

  1. Ersetze in composer.json alls Abhängigkeiten für symfony/-Pakete, die im Moment auf ^5.x, ^6.x, ^7.x oder ähnliches zielen, konsistent auf "^6.4|^7.0". Es gibt einige symfony/-Pakete, die eine andere Versionsnummerierung verwenden und aktuell Versionen 1.x, 2.x, 3.x oder Mischungen davon erlauben. Diese Pakete dürfen nicht verändert werden.

  2. Setze das Constraint für die PHP-Version in composer.json auf ">= 8.1"

  3. Wenn es im Verzeichnis .github ein Skript gibt, das Symfony-Paketversionen locken möchte, entferne es. Dieses Skript verwendet dafür wahrscheinlich jq oder sed und enthält viele Regeln für symfony/*-Pakete.

  4. Passe die Testmatrix für PHPUnit-Tests in Workflows unterhalb von .github an. Sie soll folgendermaßen aussehen:

    strategy:
      fail-fast: false
      matrix:
        include:
          - { php-version: 8.1, symfony-require: '', dependency-version: prefer-lowest }
          - { php-version: 8.3, symfony-require: 6.4.*, dependency-version: prefer-stable }
          - { php-version: 8.4, symfony-require: 7.*, dependency-version: prefer-stable }
  1. Anstelle des Skripts zum Locking der Symfony-Version setze eine Umgebungsvariable SYMFONY_REQUIRE auf den Wert von symfony-require der Testmatrix.

  2. Der Workflow muss schon shivammathur/setup-php@v2 verwenden, sonst gibt es ein Problem. In diesem Schritt, ergänze "flex" in der Liste der "tools". Beispiel: "tools: composer:v2, flex". Prüfe, dass die "php-version" aus der Matrix verwendet wird, um die richtige PHP-Version zu installieren.

  3. Das "dependency-version" aus der Matrix wird im "composer"-Aufruf verwendet, z. B. "composer update --${{ matrix.dependency-version }}".

  4. Nach dem "composer update" sollte mit "composer show" auch eine Liste der verwendeten Pakete angezeigt werden, damit man es leichter kontrollieren kann.

  5. Erstelle einen PR mit den notwendigen Code-Änderungen. Verwende folgenden Titel und Text für den PR:

Aktualisiere die Test-Matrix auf Symfony 6.4 und 7.x, verwende auch PHP 8.4

Dieser PR ändert die Mindestanforderungen auf PHP 8.1 und Symfony-Pakete aus dem 6.4-Release oder höher.

Er aktualisiert die Testmatrix entsprechend, und benutzt dabei den von Symfony vorgeschlagenen Weg, bestimmte Release-Versionen zum Test zu verwenden.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment