Qt6 Migration CI / migrate (push) Waiting to run
Entire-Checkpoint: 01M2FHV61FMP98KDRSS0X9YH84
4.4 KiB
4.4 KiB
Setze die Qt5->Qt6-Migration fort und bearbeite strikt nur die ./files.txt aufgelisteten Stub-Dateien im Qt6-Baum.
Ausgangslage:
- die ./files.txt aufgelisteten Dateien wurden während der Migration als STUBS erzeugt
- die Migration ist noch nicht abgeschlossen
- /workspace/app/Dockerfile ist der Migrationscontainer
- /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/docker_build.sh ist der Validierungscontainer nach einem Migrationsschritt
Ziel:
- verschiebe die ./files.txt aufgelisteten Stub-/Forward-Declaration-Dateien physisch in ein gemeinsames Verzeichnis:
- /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/forward-declarations
- passe danach die direkt betroffenen Includes und CMake-Build-Skripte minimal so an, dass ausschließlich diese neue physische Ablage verwendet wird
Wichtige Klarstellung:
- es geht ausdrücklich um **physisches Verschieben**
- keine Wrapper-Header
- keine Weiterleitungs-Header
- keine Kopien
- keine Duplikate
- keine parallele Alt-/Neu-Struktur
- keine Kompatibilitätslayer
- keine Symlinks
- kein Belassen der bisherigen Stub-Dateien an den alten Orten
Harte Regeln:
- nur die ./files.txt aufgelisteten Stub-Dateien bearbeiten
- keine Refactorings
- keine opportunistischen Fixes
- keine fachlogischen Änderungen
- keine Änderungen im Legacy-Tree
- keine neuen Stubs erzeugen
- keine neuen Placeholder-Dateien erzeugen
- keine Scheinlösung über zusätzliche Include-Pfade, die alte und neue Orte gleichzeitig sichtbar machen
- Build und Includes sollen deterministisch nur noch gegen die neue Struktur arbeiten
Pflichtanalyse:
- prüfe jede aufgelistete Datei darauf, ob sie tatsächlich ein Stub-/Forward-Declaration-Artefakt ist
- falls einzelne gelistete Dateien doch keine solchen Artefakte sind, verschiebe sie nicht blind, sondern dokumentiere sie als Ausnahmen
- identifiziere Redundanzen und Mehrfachablagen
- bestimme die minimal nötigen Include-Anpassungen nach dem physischen Verschieben
- bestimme die minimal nötigen CMake-Anpassungen nach dem physischen Verschieben
Pflichtumsetzung:
- verschiebe die betroffenen Dateien physisch nach:
- /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/forward-declarations
- bereinige die alten Pfade so, dass keine alten Stub-Dateien zurückbleiben
- passe alle direkt betroffenen `#include`-Stellen minimal an
- passe alle direkt betroffenen `CMakeLists.txt` / cmake-Include-Pfade minimal an
- stelle sicher, dass die neue Struktur im Build korrekt und eindeutig referenziert wird
Strikte Include-/CMake-Regeln:
- bevorzuge zielbezogene Include-Pfade mit `target_include_directories(...)`
- vermeide globale `include_directories(...)`, außer wenn das bestehende Buildsystem es an genau dieser Stelle zwingend verlangt
- füge nicht gleichzeitig alte und neue Stub-Verzeichnisse in Include-Pfade ein
- keine Workarounds durch künstliche Suchreihenfolgen
- keine Pfadverdopplungen
- keine implizite Altpfad-Kompatibilität
- nur direkt betroffene Build-Skripte ändern
Validierung:
- nutze /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/docker_build.sh als Validierungsweg
- passe das Script nur an, wenn für diese Aufgabe zwingend nötig
- führe mindestens Configure + Build im Docker-Kontext aus
- prüfe, dass die Builds die Dateien tatsächlich aus `forward-declarations` konsumieren
- prüfe, dass kein Build-Erfolg mehr von den alten Pfaden abhängt
- falls sinnvoll, nutze gezielte Target-Builds zusätzlich zur Gesamtvalidierung
Erfolgskriterien:
- die betroffenen Stub-/Forward-Declaration-Dateien wurden physisch nach
- /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/forward-declarations
verschoben
- die alten Stub-Dateien liegen nicht mehr an den bisherigen Pfaden
- Includes und CMake-Skripte sind minimal angepasst
- der Build referenziert deterministisch die neue Struktur
- keine Wrapper-/Redirect-/Kompatibilitätsheader
- keine Duplikate
- keine unnötigen Moduländerungen
- keine vorgetäuschte Validierung
Wenn etwas nicht sauber möglich ist:
- nicht mit Wrappern oder Kopien ausweichen
- nicht stillschweigend beide Strukturen parallel behalten
- als teilweise validiert oder blockiert melden
- exakten technischen Blocker benennen
Abschlussbericht nur kurz:
- validiert, teilweise validiert oder blockiert
- physisch verschobene Dateien
- geänderte Include-Stellen
- geänderte CMake-Dateien
- exakte Docker-Kommandos
- verbleibende Blocker oder Risiken