Cleans up only warnings and specific CMake/include path error in the Qt6 migration tree, using strictly minimal changes with minimal side effects.
Qt6 Migration CI / migrate (push) Waiting to run
Qt6 Migration CI / migrate (push) Waiting to run
This commit is contained in:
2 files changed
+206
-1
No files matched your search
@@ -0,0 +1,205 @@
|
||||
# GitHub Copilot Instructions: Strict Warning Cleanup for `Lts/DDS` with Docker Validation
|
||||
|
||||
Bereinige **ausschließlich** warnings und den konkreten CMake/Include-Path-Fehler im Qt6-Migrationsbaum, mit **streng minimalen, seiteneffektarmen Änderungen**, und validiere anschließend im Docker-Kontext.
|
||||
|
||||
## Scope
|
||||
Primärer Scope:
|
||||
|
||||
- `/repo/qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/DDS`
|
||||
|
||||
Nur falls zwingend direkt notwendig zur Behebung der konkret gemeldeten Probleme, dürfen zusätzlich diese Stellen geändert werden:
|
||||
|
||||
- `/repo/qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Common/CodeGen/XmlReader.cpp`
|
||||
- `/repo/qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/DDS/Generic/generic_base.h`
|
||||
- `/repo/qt-migration-legatus/qt6-after/qt6-migrated-legatus/Z/src/NGLLogger/...`
|
||||
- direkt ursächliche `CMakeLists.txt`-Dateien
|
||||
- direkt ursächliche cmake-Helper/Includes, **nur wenn** der fehlerhafte Include-Pfad sonst nicht an der Wurzel korrigierbar ist
|
||||
|
||||
## Aktueller Stand
|
||||
- Der aktuelle `Lts/DDS`-Build ist bereits erfolgreich.
|
||||
- Ziel ist **nicht** die funktionale Migration.
|
||||
- Ziel ist die **strikte Bereinigung** von:
|
||||
1. dem CMake-/Include-Path-Fehler
|
||||
2. deprecated warnings
|
||||
3. reorder warnings
|
||||
4. unused warnings
|
||||
|
||||
## Harte Regeln
|
||||
- **Keine funktionalen Änderungen**
|
||||
- **Keine Refactorings**
|
||||
- **Keine API-Änderungen**
|
||||
- **Keine Verhaltensänderungen**
|
||||
- **Keine Änderungen am Legacy-Tree**
|
||||
- **Keine opportunistischen Fixes**
|
||||
- **Keine globalen Suppressions wie `-Wno-*`, wenn lokale Ursachenbehebung möglich ist**
|
||||
- **Keine Entfernung potenziell künftig genutzter Parameter aus Funktionssignaturen**
|
||||
- **Keine breitflächigen Warning-Cleanup-Aktionen außerhalb der konkret gemeldeten Stellen**
|
||||
- **Keine Änderungen, die nur kosmetisch sind und nicht direkt mit den gemeldeten Warnings zusammenhängen**
|
||||
|
||||
## Konkrete Eingaben / bekannte Probleme
|
||||
Folgende Punkte sind gezielt zu bereinigen:
|
||||
|
||||
- deprecated:
|
||||
- `QDomDocument::setContent(QIODevice*, QString*, int*, int*)`
|
||||
- `QMultiMap::insertMulti(...)`
|
||||
- reorder:
|
||||
- `Lts/DDS/DDSConnector/dds_connector.cpp`
|
||||
- `Lts/DDS/DDSConnector/dds_connector.h`
|
||||
- unused:
|
||||
- `include/DDS/Generic/generic_base.h`
|
||||
- ggf. lokal ungenutzte Funktion in `Z/src/NGLLogger/NGLLogger.cpp`
|
||||
- CMake/configure/include-path problem:
|
||||
- `./qt-migration-legatus/qt6-after/qt6-migrated-legatus/build4/Z/src/NGLLogger/Z/src/NGLLogger`
|
||||
|
||||
## Priorität 1: CMake-/Include-Path-Root-Cause beheben
|
||||
Behandle dies als **echten Projektfehler** in der Build-Konfiguration.
|
||||
|
||||
### Pflicht
|
||||
- finde die **Ursache** des fehlerhaften Include-Verzeichnisses
|
||||
- korrigiere die Ursache in CMake oder target-bezogener Include-Konfiguration
|
||||
- bevorzuge saubere, deterministische Pfade
|
||||
- prüfe insbesondere:
|
||||
- `include_directories(...)`
|
||||
- `target_include_directories(...)`
|
||||
- zusammengesetzte relative Pfade
|
||||
- versehentliche Verdopplung von Teilpfaden wie `Z/src/NGLLogger`
|
||||
- source-vs-binary-path-Missbrauch
|
||||
|
||||
### Verboten
|
||||
- keine Unterdrückung über Compiler-Flags
|
||||
- kein Belassen eines kaputten Include-Pfads, wenn er nur zufällig harmlos ist
|
||||
- keine Workarounds über zusätzliche Dummy-Verzeichnisse
|
||||
- keine symptomatische Änderung ohne Root-Cause-Verständnis
|
||||
|
||||
### Erwartung
|
||||
Wenn der Fehler aus einem Modul außerhalb `Lts/DDS` kommt, ist **nur der minimal notwendige Fix** dort erlaubt.
|
||||
|
||||
## Priorität 2: Deprecated warnings risikominimal bereinigen
|
||||
|
||||
### `QDomDocument::setContent(...)`
|
||||
- auf die Qt6-empfohlene API mit `ParseResult` umstellen
|
||||
- Fehlerbehandlung semantisch möglichst identisch halten
|
||||
- keine größere Parser-Logik ändern
|
||||
- keine Folgerefactorings
|
||||
|
||||
### `QMultiMap::insertMulti(...)`
|
||||
- lokal auf `insert(...)` umstellen, sofern semantisch gleichwertig für `QMultiMap`
|
||||
- keine Container-Umstrukturierung
|
||||
- keine Logikänderung
|
||||
|
||||
## Priorität 3: Reorder warnings exakt bereinigen
|
||||
Für `dds_connector.*` gilt:
|
||||
|
||||
- bevorzuge **nur** die Anpassung der Initializer-Liste an die Deklarationsreihenfolge im Header
|
||||
- ändere Member-Deklarationen **nicht**, außer es wäre der einzige saubere Weg
|
||||
- keine neue Initialisierungslogik
|
||||
- keine inhaltliche Änderung
|
||||
|
||||
## Priorität 4: Unused warnings strikt seiteneffektarm bereinigen
|
||||
|
||||
### Ungenutzte Parameter
|
||||
Insbesondere in:
|
||||
|
||||
- `/repo/qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/DDS/Generic/generic_base.h`
|
||||
|
||||
Pflicht:
|
||||
- Signaturen **nicht** ändern
|
||||
- Parameter **nicht** entfernen
|
||||
- `Q_UNUSED(parameter)` verwenden
|
||||
- so platzieren, dass keinerlei Laufzeitverhalten geändert wird
|
||||
- robust gegenüber späterer tatsächlicher Nutzung bleiben
|
||||
|
||||
### Ungenutzte Funktion
|
||||
Für:
|
||||
- `Z/src/NGLLogger/NGLLogger.cpp: findConfigFile(...)`
|
||||
|
||||
gilt:
|
||||
- nur entfernen, wenn zweifelsfrei lokal ungenutzt und ohne Seiteneffekt
|
||||
- andernfalls risikoärmste lokale Lösung wählen
|
||||
- keine unnötigen Sichtbarkeits- oder API-Änderungen
|
||||
|
||||
## Arbeitsweise
|
||||
Arbeite autonom bis zum Ende:
|
||||
|
||||
1. Ursachenanalyse der gemeldeten warnings und des Include-Pfad-Fehlers
|
||||
2. minimal nötige Änderungen
|
||||
3. Reconfigure
|
||||
4. Rebuild
|
||||
5. Warning-Review
|
||||
6. Docker-Validierung
|
||||
7. knapper Abschlussbericht
|
||||
|
||||
## Docker ist Pflicht
|
||||
Nutze **ausschließlich** dieses Dockerfile als autoritativ:
|
||||
|
||||
- `/repo/app/Dockerfile`
|
||||
|
||||
Repo im Container als:
|
||||
|
||||
- `/repo`
|
||||
|
||||
## Docker-Anforderungen
|
||||
Im Container verfügbar machen:
|
||||
|
||||
- Repository root auf `/repo`
|
||||
- `/repo/external`
|
||||
- `/repo/external/rti_connext_dds-7.7.0`
|
||||
- `./rti_license.dat` read-only gemountet
|
||||
|
||||
Falls RTI-/Lizenz-Umgebungsvariablen nötig sind:
|
||||
- minimal
|
||||
- explizit
|
||||
- keine impliziten Host-Annahmen
|
||||
|
||||
## Validierung
|
||||
Mindestens validieren:
|
||||
|
||||
### 1. regulärer Konfigurations-/Buildlauf
|
||||
Bevorzugt mit sauberem Build-Verzeichnis, z. B.:
|
||||
|
||||
```bash
|
||||
cmake -S /repo/qt-migration-legatus/qt6-after/qt6-migrated-legatus \
|
||||
-B /repo/build-warning-cleanup \
|
||||
-G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Debug
|
||||
cmake --build /repo/build-warning-cleanup --parallel
|
||||
ctest --test-dir /repo/build-warning-cleanup --output-on-failure
|
||||
```
|
||||
|
||||
### 2. Docker-validierter Lauf
|
||||
Baue und teste im Container mit demselben Repo-Mount-Prinzip.
|
||||
|
||||
Wenn es Build-Optionen wie `BUILD_RTI=ON/OFF` gibt und sie für den Warning-Pfad relevant sind, prüfe mindestens die Variante, die den gemeldeten Warning-Kontext reproduziert.
|
||||
Wenn ohne Mehrkosten möglich, prüfe zusätzlich beide Varianten.
|
||||
|
||||
## Strikte Erfolgsdefinition
|
||||
Nur als erfolgreich melden, wenn alle folgenden Punkte erfüllt sind:
|
||||
|
||||
- fehlerhafter Include-/CMake-Pfad ist an der Ursache korrigiert
|
||||
- gemeldete deprecated warnings sind lokal und risikominimal bereinigt, soweit im Scope möglich
|
||||
- reorder warnings sind bereinigt
|
||||
- unused parameter warnings sind seiteneffektarm via `Q_UNUSED(...)` oder gleichwertig bereinigt
|
||||
- Build bleibt erfolgreich
|
||||
- Docker-Validierung wurde ausgeführt
|
||||
- keine funktionalen Änderungen eingeführt
|
||||
|
||||
## Wenn ein Punkt nicht sauber lösbar ist
|
||||
Dann:
|
||||
- keine riskante Änderung erzwingen
|
||||
- keine globale Warning-Unterdrückung einführen
|
||||
- keine Scheinerfolge melden
|
||||
- den Punkt als **bewusst offen** berichten, mit präziser Begründung
|
||||
|
||||
## Abschlussbericht
|
||||
Berichte nur das Wesentliche:
|
||||
|
||||
- **bereinigt** oder **teilweise bereinigt**
|
||||
- Root Cause des Include-/CMake-Pfad-Fehlers
|
||||
- ob Docker-Validierung erfolgreich war
|
||||
- exakte Docker-Kommandos
|
||||
- exakte Build-Kommandos
|
||||
- geänderte Dateien
|
||||
- beseitigte Warnings
|
||||
- bewusst nicht beseitigte Warnings mit Begründung
|
||||
- Projektfehler vs. Umgebungsfehler
|
||||
- Restrisiken
|
||||
+1
-1
Submodule qt-migration-legatus updated: 67491249c2...3aa0b04ebd.
Reference in new issue
Block a user