Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/MIGRATION_STATUS.md
T

4.0 KiB

Qt6 Migration Status - Legatus

Zusammenfassung (Stand: 2026-08-18)

✅ Erfolgreich abgeschlossene Arbeiten

  1. Docker-Infrastructure

    • Image migration-pipeline:ubuntu26.04 mit Qt 6.10.2, CMake, Ninja
    • RTI Connext dauerhaft installiert (nicht gemappt)
    • Ubuntu 26.04 Basis
  2. 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)
  3. 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.h
      • include/AlarmManagement/svcalmcommon_export.h
      • include/MarkerManagement/svcmrkcommon_export.h
      • include/GuezNasat/svcgnaapi_export.h
  4. 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-legatus korrigiert

⚠️ Bekannte Einschränkungen

  1. 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
  2. Tests

    • 11 Tests registriert, aber nicht gebaut (BUILD_RTI=OFF)
    • Tests benötigen RTI Connext Runtime
    • Nächster Schritt: BUILD_RTI=ON Build validieren
  3. 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

  1. 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
    
  2. FilterManagement-Plugins wieder einbinden

    • Nach erfolgreichem BUILD_RTI=ON Build
    • CMakeLists.txt anpassen
  3. Tests mit RTI ausführen

    docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \
      ctest --test-dir /repo/build-rti --output-on-failure
    
  4. 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 Migration
  • qt5-before/qt5-legatus-legacy/ - Quellverzeichnis (Submodule)
  • app/Dockerfile - Docker-Image Definition
  • ci/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