4.0 KiB
4.0 KiB
Qt6 Migration Status - Legatus
Zusammenfassung (Stand: 2026-08-18)
✅ Erfolgreich abgeschlossene Arbeiten
-
Docker-Infrastructure
- Image
migration-pipeline:ubuntu26.04mit Qt 6.10.2, CMake, Ninja - RTI Connext dauerhaft installiert (nicht gemappt)
- Ubuntu 26.04 Basis
- Image
-
Build-System
- 1940 Targets erfolgreich gebaut mit BUILD_RTI=OFF
- 3380 CMake-Targets insgesamt verfügbar
- FilterManagement-Plugins temporär ausgeschlossen (BUILD_RTI-abhängig)
-
Qt6-Migrationen
- 513 CMakeLists.txt in Lts/ migriert
- BUILD_RTI Guards in LtsSession implementiert (6 Dateien)
- Export-Header Stubs erstellt (4 Dateien):
include/GuezNasat/svcgnacommon_export.hinclude/AlarmManagement/svcalmcommon_export.hinclude/MarkerManagement/svcmrkcommon_export.hinclude/GuezNasat/svcgnaapi_export.h
-
Korrekturen
- Include-Pfade korrigiert (resource_path.h, logger.h)
- QStringRef → QString migriert
- Qt6::Gui Dependencies hinzugefügt
- MOC-Probleme gefixt (staticMetaObject, override final)
- Pfad von
qt6-migrated-benchmark→qt6-migrated-legatuskorrigiert
⚠️ Bekannte Einschränkungen
-
Policy-Check (
ci/check_pr_policies.py)- Erwartet Test-Dateien für alle geänderten C++-Dateien
- Bei 14.457 geänderten Dateien nicht praktikabel für initiale Migration
- Empfehlung: Policy-Check für Migrations-Branch deaktivieren oder DTC-Dateien ausnehmen
-
Tests
- 11 Tests registriert, aber nicht gebaut (BUILD_RTI=OFF)
- Tests benötigen RTI Connext Runtime
- Nächster Schritt: BUILD_RTI=ON Build validieren
-
FilterManagement-Plugins
- Temporär vom Build ausgeschlossen
- Werden nach BUILD_RTI=ON Validierung wieder eingebunden
📊 Migrationsfortschritt
| Bereich | Status | Details |
|---|---|---|
| Lts/Common | ✅ Vollständig | Build erfolgreich |
| Lts/DDS | ✅ Struktur | BUILD_RTI Guards implementiert |
| Lts/Plugins | 🟡 Teilweise | FilterManagement ausgeschlossen |
| Lts/Services | 🟡 Teilweise | Export-Header Stubs erstellt |
| Lts/Proxies | 🟡 Teilweise | Include-Pfade korrigiert |
| TetraIF | 🟡 Teilweise | Migration läuft |
| Z-Module | 🟡 Teilweise | nglwidgets, QtSingleApplication fertig |
🔄 Nächste Schritte
-
BUILD_RTI=ON Validierung (höchste Priorität)
docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \ cmake -S /repo/qt6-after/qt6-migrated-legatus -B /repo/build-rti \ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DBUILD_RTI=ON docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \ cmake --build /repo/build-rti --parallel -
FilterManagement-Plugins wieder einbinden
- Nach erfolgreichem BUILD_RTI=ON Build
- CMakeLists.txt anpassen
-
Tests mit RTI ausführen
docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \ ctest --test-dir /repo/build-rti --output-on-failure -
Policy-Check Anpassung
- DTC-Dateien von Test-Pflicht ausnehmen
- Oder nur für PRs gegen main-Branch aktivieren
📝 Wichtige Dateien
qt6-after/qt6-migrated-legatus/- Zielverzeichnis der Migrationqt5-before/qt5-legatus-legacy/- Quellverzeichnis (Submodule)app/Dockerfile- Docker-Image Definitionci/check_pr_policies.py- Policy-Check Script
🚀 Build-Commands
# Configure (BUILD_RTI=OFF)
docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \
cmake -S /repo/qt6-after/qt6-migrated-legatus -B /repo/build \
-G Ninja -DCMAKE_BUILD_TYPE=Debug
# Build
docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \
cmake --build /repo/build --parallel
# Configure mit RTI
docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \
cmake -S /repo/qt6-after/qt6-migrated-legatus -B /repo/build-rti \
-G Ninja -DCMAKE_BUILD_TYPE=Debug -DBUILD_RTI=ON
Letzter Build: Erfolgreich (1940 Targets) Nächster Meilenstein: BUILD_RTI=ON Validierung