diff --git a/.github/prompts/moved-to-submod.prompt.md b/.github/prompts/moved-to-submod.prompt.md deleted file mode 100644 index c4f60242b..000000000 --- a/.github/prompts/moved-to-submod.prompt.md +++ /dev/null @@ -1,239 +0,0 @@ -Du arbeitest in einem bestehenden C++/Qt-Projekt, das von Qt5 nach Qt6 migriert wird. Deine Aufgabe ist, die Build- und CI/CD-Infrastruktur technisch sauber und robust an eine neue Verzeichnisstruktur anzupassen. Fokus: Linux/Ubuntu 26.04, CMake, Dockerfile, Shell-Skripte und CI-Pipeline. - -## Ausgangslage - -Die Repository-/Build-Struktur wurde geändert: - -- Die bisherigen Folder und Files: -``` -drwxrwxrwx 2 torsten torsten 4096 Jul 17 17:03 cmake/ --rwxrwxrwx 1 torsten torsten 15357 Jul 22 12:32 CMakeLists.txt* --rw-rw-rw- 1 torsten torsten 92 Jul 14 13:55 CTestCustom.ctest -drwxrwxrwx 2 torsten torsten 4096 Jul 14 14:12 doxygen/ --rw-rw-rw- 1 torsten torsten 0 Aug 13 19:33 .gitkeep -drwxrwxrwx 8 torsten torsten 4096 Jul 21 15:43 Lts/ --rw-rw-rw- 1 torsten torsten 14908 Jul 21 15:45 lts-cc.conf -drwxrwxrwx 3 torsten torsten 4096 Jul 18 15:22 specs/ -drwxrwxrwx 4 root root 4096 Jul 14 21:53 strix_runs/ -drwxrwxrwx 4 torsten torsten 4096 Aug 14 11:46 tests/ -drwxrwxrwx 5 torsten torsten 4096 Jul 14 12:14 TetraIF/ -drwxrwxrwx 2 torsten torsten 4096 Jul 14 14:45 translations/ -drwxrwxrwx 3 torsten torsten 4096 Jul 14 23:50 Z/ -``` -wurden nach `qt-migration-legatus/qt6-after/qt6-migrated-legatus/` verschoben. -- `qt-migration-legatus/` ist jetzt ein **Git-Submodule**. -- Innerhalb von `qt-migration-legatus/` gibt es zusätzlich: - - `qt5-before` → enthält die bisherigen Qt5-Eingabefolder, die früher manuell schrittweise ins Projekt kopiert wurden. - - `qt6-after` → enthält die bisherigen Ergebnisse bzw. Zielstände der Qt6-Portierung. - -## Ziel - -Passe alle relevanten Build-, CI- und Container-Pfade auf die neue Struktur an, sodass der Build unter Ubuntu 26.04 reproduzierbar, robust und wartbar funktioniert. - -## Technischer Scope - -Untersuche und aktualisiere ausschließlich technische Build-/Infra-Aspekte, insbesondere: - -- GitHub Actions / GitLab CI / andere Linux-CI-Konfigurationen -- Shell-Skripte (`.sh`) -- `Dockerfile` -- `.dockerignore` -- CMake-Dateien: - - `CMakeLists.txt` - - `*.cmake` - - Toolchain-/Preset-Dateien, falls vorhanden -- Qt-bezogene Ressourcen-/Include-/Source-/MOC-/UIC-/RCC-Pfade -- Copy-/Sync-/Stage-/Artifact-Schritte -- Submodule-Checkout und Build-Kontext -- Relative Pfade im Repo, im Build-Verzeichnis und im Container - -Nicht im Scope: -- PowerShell -- Windows-spezifische Anpassungen -- Fachliche/refaktorierende Codeänderungen außerhalb buildrelevanter Pfade -- Unnötige Modernisierung jenseits der Pfad-/Infra-Migration - -## Konkrete Aufgaben - -1. Suche systematisch nach allen Referenzen auf die alten Folder -``` -drwxrwxrwx 2 torsten torsten 4096 Jul 17 17:03 cmake/ --rwxrwxrwx 1 torsten torsten 15357 Jul 22 12:32 CMakeLists.txt* --rw-rw-rw- 1 torsten torsten 92 Jul 14 13:55 CTestCustom.ctest -drwxrwxrwx 2 torsten torsten 4096 Jul 14 14:12 doxygen/ --rw-rw-rw- 1 torsten torsten 0 Aug 13 19:33 .gitkeep -drwxrwxrwx 8 torsten torsten 4096 Jul 21 15:43 Lts/ --rw-rw-rw- 1 torsten torsten 14908 Jul 21 15:45 lts-cc.conf -drwxrwxrwx 3 torsten torsten 4096 Jul 18 15:22 specs/ -drwxrwxrwx 4 root root 4096 Jul 14 21:53 strix_runs/ -drwxrwxrwx 4 torsten torsten 4096 Aug 14 11:46 tests/ -drwxrwxrwx 5 torsten torsten 4096 Jul 14 12:14 TetraIF/ -drwxrwxrwx 2 torsten torsten 4096 Jul 14 14:45 translations/ -drwxrwxrwx 3 torsten torsten 4096 Jul 14 23:50 Z/ -``` - - in: - - CI-Konfigurationen - - CMake-Dateien - - Dockerfile - - Shell-Skripten - - Copy-/Install-/Packaging-Schritten - -2. Ermittle für jede Referenz die korrekte neue Zielstruktur: - - `qt-migration-legatus/...` - - `qt-migration-legatus/qt5-before/...` - - `qt-migration-legatus/qt6-after/...` - -3. Stelle sicher, dass das Git-Submodule `qt-migration-legatus/` in allen relevanten Build-Kontexten korrekt berücksichtigt wird: - - lokaler CI-Checkout - - Container-Build-Kontext - - reproduzierbarer Checkout in der Pipeline - -4. Aktualisiere Build-Logik und Pfade so, dass: - - keine impliziten Annahmen über alte Repo-Layouts bestehen, - - keine fragilen `../..`-Konstruktionen ohne Not bestehen bleiben, - - Pfade zentralisiert oder klar abgeleitet werden, wo sinnvoll. - -5. Prüfe speziell für CMake: - - `add_subdirectory(...)` - - `include(...)` - - `target_include_directories(...)` - - `target_sources(...)` - - `configure_file(...)` - - `file(COPY ...)`, `file(GLOB ...)`, `install(...)` - - Pfade zu `.ui`, `.qrc`, Headern, Quellen und generierten Assets - - Variablen, die noch auf alte Layouts zeigen - -6. Prüfe speziell für `app/Dockerfile`: - - `COPY` - - `ADD` - - `WORKDIR` - - Build-Argumente / Umgebungsvariablen - - Annahmen über vorhandene Verzeichnisse im Build-Kontext - - Submodule-Verfügbarkeit im Container-Build - - ggf. `.dockerignore`, falls dadurch `qt-migration-legatus/` oder relevante Unterordner ausgeschlossen werden - -7. Prüfe speziell für CI/CD: - - Submodule-Checkout/Init/Update - - Cache-Pfade - - Artifact-Pfade - - Test-/Packaging-/Deploy-Stages mit alten Pfadannahmen - - Script-Schritte mit Copy-/Move-/Sync-Operationen - - Container-Build-Aufrufe mit korrektem Context - -8. Trenne logisch zwischen: - - Qt5-Altmaterial unter `qt-migration-legatus/qt5-before` - - Qt6-Portierungsstand unter `qt-migration-legatus/qt6-after` - - Diese beiden Bereiche dürfen nicht versehentlich vermischt werden. Wenn die aktuelle Pipeline beides nutzt, dokumentiere die Entscheidung explizit. - -## Technische Qualitätsanforderungen - -- Zielplattform ist **Ubuntu 26.04**. -- Bevorzuge POSIX-nahe Shell-Lösungen (`bash`), keine PowerShell. -- Änderungen sollen **minimal-invasiv**, aber **strukturell robust** sein. -- Keine stillen Magic Paths. -- Wo sinnvoll: - - zentrale Pfadvariablen in CMake, - - klare ENV-/ARG-Namen im Dockerfile, - - explizite Submodule-Schritte in CI. -- Keine unnötigen Refactorings ohne direkten Nutzen für die Migration. -- Bestehendes Verhalten möglichst erhalten. -- Wenn Annahmen nötig sind, markiere sie klar. - -## Erwartete Ausgabe - -Liefere in dieser Reihenfolge: - -1. **Analyse** - - Welche Dateien/Build-Stellen noch auf -``` -drwxrwxrwx 2 torsten torsten 4096 Jul 17 17:03 cmake/ --rwxrwxrwx 1 torsten torsten 15357 Jul 22 12:32 CMakeLists.txt* --rw-rw-rw- 1 torsten torsten 92 Jul 14 13:55 CTestCustom.ctest -drwxrwxrwx 2 torsten torsten 4096 Jul 14 14:12 doxygen/ --rw-rw-rw- 1 torsten torsten 0 Aug 13 19:33 .gitkeep -drwxrwxrwx 8 torsten torsten 4096 Jul 21 15:43 Lts/ --rw-rw-rw- 1 torsten torsten 14908 Jul 21 15:45 lts-cc.conf -drwxrwxrwx 3 torsten torsten 4096 Jul 18 15:22 specs/ -drwxrwxrwx 4 root root 4096 Jul 14 21:53 strix_runs/ -drwxrwxrwx 4 torsten torsten 4096 Aug 14 11:46 tests/ -drwxrwxrwx 5 torsten torsten 4096 Jul 14 12:14 TetraIF/ -drwxrwxrwx 2 torsten torsten 4096 Jul 14 14:45 translations/ -drwxrwxrwx 3 torsten torsten 4096 Jul 14 23:50 Z/ -``` - verweisen - - Welche Stellen wegen des neuen Submodules `qt-migration-legatus/` kritisch sind - - Welche Stellen speziell für Qt5-/Qt6-Trennung relevant sind - -2. **Konkrete Änderungen** - - als präzise Diffs pro Datei - -3. **Begründung** - - kurz und technisch pro wesentlicher Änderung - -4. **Risiken / offene Punkte** - - z. B. unklare Zuordnung zwischen `qt5-before` und `qt6-after` - - mögliche Probleme im Docker-Build-Kontext - - Pipeline-Schritte, die vom Runner-Layout abhängen - -5. **Validierung** - - konkrete Checks, z. B.: - - Submodule erfolgreich ausgecheckt - - CMake configure/build erfolgreich - - Docker build erfolgreich - - relevante Copy-/Artifact-Pfade vorhanden - - keine Restreferenzen auf -``` -drwxrwxrwx 2 torsten torsten 4096 Jul 17 17:03 cmake/ --rwxrwxrwx 1 torsten torsten 15357 Jul 22 12:32 CMakeLists.txt* --rw-rw-rw- 1 torsten torsten 92 Jul 14 13:55 CTestCustom.ctest -drwxrwxrwx 2 torsten torsten 4096 Jul 14 14:12 doxygen/ --rw-rw-rw- 1 torsten torsten 0 Aug 13 19:33 .gitkeep -drwxrwxrwx 8 torsten torsten 4096 Jul 21 15:43 Lts/ --rw-rw-rw- 1 torsten torsten 14908 Jul 21 15:45 lts-cc.conf -drwxrwxrwx 3 torsten torsten 4096 Jul 18 15:22 specs/ -drwxrwxrwx 4 root root 4096 Jul 14 21:53 strix_runs/ -drwxrwxrwx 4 torsten torsten 4096 Aug 14 11:46 tests/ -drwxrwxrwx 5 torsten torsten 4096 Jul 14 12:14 TetraIF/ -drwxrwxrwx 2 torsten torsten 4096 Jul 14 14:45 translations/ -drwxrwxrwx 3 torsten torsten 4096 Jul 14 23:50 Z/ -``` - -## Arbeitsweise - -Gehe in dieser Reihenfolge vor: - -1. Finde alle Referenzen auf -``` -drwxrwxrwx 2 torsten torsten 4096 Jul 17 17:03 cmake/ --rwxrwxrwx 1 torsten torsten 15357 Jul 22 12:32 CMakeLists.txt* --rw-rw-rw- 1 torsten torsten 92 Jul 14 13:55 CTestCustom.ctest -drwxrwxrwx 2 torsten torsten 4096 Jul 14 14:12 doxygen/ --rw-rw-rw- 1 torsten torsten 0 Aug 13 19:33 .gitkeep -drwxrwxrwx 8 torsten torsten 4096 Jul 21 15:43 Lts/ --rw-rw-rw- 1 torsten torsten 14908 Jul 21 15:45 lts-cc.conf -drwxrwxrwx 3 torsten torsten 4096 Jul 18 15:22 specs/ -drwxrwxrwx 4 root root 4096 Jul 14 21:53 strix_runs/ -drwxrwxrwx 4 torsten torsten 4096 Aug 14 11:46 tests/ -drwxrwxrwx 5 torsten torsten 4096 Jul 14 12:14 TetraIF/ -drwxrwxrwx 2 torsten torsten 4096 Jul 14 14:45 translations/ -drwxrwxrwx 3 torsten torsten 4096 Jul 14 23:50 Z/ -``` - -2. Identifiziere alle Build-/CI-/Docker-Stellen, die `D` als Submodule korrekt einbinden müssen. -3. Leite pro Fundstelle den neuen Zielpfad ab. -4. Schlage minimal robuste Änderungen vor. -5. Liefere die Änderungen als Diffs. -6. Formuliere am Ende eine kurze Validierungs-Checkliste für Ubuntu-26.04-CI. - -## Zusätzliche Vorgaben - -- Wenn du alte Pfade durch neue ersetzt, tue das nicht blind global, sondern kontextabhängig. -- Wenn CMake- oder Dockerfile-Logik bisher auf manuell kopierte Inhalte ausgelegt ist, passe sie so an, dass die neue Struktur explizit und nachvollziehbar verwendet wird. -- Wenn ein Build-Schritt semantisch eher auf „Eingabe vor Portierung“ verweist, nutze bevorzugt `qt-migration-legatus/qt5-before`. -- Wenn ein Build-Schritt auf bereits portierte Qt6-Artefakte oder Zielstände verweist, nutze bevorzugt `qt-migration-legatus/qt6-after`. -- Wenn die vorhandene Logik diese Entscheidung nicht eindeutig macht, dokumentiere die Annahme direkt bei der Änderung. -- Ergänze nur dort knappe Kommentare, wo die neue Struktur sonst schwer verständlich wäre. - -Beginne mit einer vollständigen Bestandsaufnahme aller relevanten Pfadreferenzen und liefere danach die minimalen robusten Änderungen für CI/CD, CMake und Dockerfile unter Ubuntu 26.04.