Files
qt6-migration-pipeline/MIGRATION_STATUS.md
T
torstenandCopilot a8f8e8a41c CI: Commit-Policy und allowed_signers für Qt6-Migration
- commit-policy.prompt.md: Policy für Multi-Repo Commits
- allowed_signers: SSH-Signing Konfiguration für Gitea
- check_pr_policies.py: Policy-Check Skript
- MIGRATION_STATUS.md: Dokumentierter Migrationsfortschritt

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M0G01614JAYPA7N20RAGZJND
2026-08-20 18:28:24 +02:00

4.2 KiB

Qt6 Migration Status Report

Aktueller Stand (2026-08-18)

✅ Erfolgreich abgeschlossene Arbeiten

  1. Export-Header Problem behoben

    • 87 CMakeLists.txt von NGL_ADD_LIBRARY auf NGL_ADD_LIBRARY2 konvertiert
    • 44 Source-Dateien: Export-Header Include-Pfade korrigiert
    • Root Cause: NGL_ADD_LIBRARY2 benötigt für GENERATE_EXPORT_HEADER
  2. DDS-Stub-Header generiert

    • 81 DDS-Stub-Header erstellt (*_dtc.h, *_fts.h, *_dts.h, *_ftc.h)
    • Include-Pfade korrigiert mit PREFIX_TO_MODULE Mapping
    • Ermöglicht Build ohne RTI DDS Codegenerierung
  3. NGLLogger Migration

    • Logger-Stub erstellt mit Logging-Makros
    • m_logger Member-Variablen aus ~100+ Dateien entfernt
    • Q_FUNC_INFO Redefinition behoben (auf __func__ umgestellt)
    • Logging-Makros auf variadische Parameter umgestellt
  4. InfrastructureManagement DDS-Stubs

    • ism.hpp, ism_enums.hpp Stub-Header erstellt
    • IsmShared Kompilierung erfolgreich
  5. FilterManagement DDS-Stubs

    • flt_fts.h: AesFilter und AesFilterUpdateRequestHandler
    • flt_dts.h: Dts und Fts Interface-Classes
    • flt_dts.cpp: Stub-Implementation
    • flt_ftc.h: Ftc Interface mit ReplyHandler (neu erstellt)
  6. Docker Permission Fix

    • Container muss mit --user root für Schreibzugriff auf ./build*/

⚠️ Aktuelle Build-Situation

NGLLogger: ✅ Baut erfolgreich ohne RTI

FilterManagement: ⚠️ Benötigt BUILD_RTI=ON

  • FltDataPlugin hängt von svcFltClient ab
  • svcFltClient wird nur mit BUILD_RTI=ON gebaut
  • RTI Connext ist in Ubuntu 26.04 nicht installiert

Lösungsoptionen:

  1. RTI Connext in Docker-Image installieren (aufwändig, Lizenz)
  2. BUILD_RTI=OFF und FilterManagement-Plugins temporär deaktivieren
  3. svcFltClient als Header-Only Library behandeln (wenn möglich)

📝 Git Submodule Status

Frage: Warum ist git submodule im HEAD detach state?

Antwort: Das Submodule ist NICHT im detached HEAD state!

$ git submodule status
+010f91928acfe8e775acdacc5eb0b38f613fa3e5 qt-migration-legatus (heads/feature/qt6-migration-basis-modules)
  • Branch: feature/qt6-migration-basis-modules ✅
  • Commit: 010f919 (lokale Änderungen, noch nicht gepusht)
  • Das + Zeichen: Zeigt uncommitted changes im Submodule an

🔄 Nächste Schritte

  1. FilterManagement Build-Strategie klären

    • Option A: BUILD_RTI=ON mit RTI-Installation
    • Option B: FilterManagement-Plugins temporär ausschließen
    • Option C: svcFltClient als Header-Only behandeln
  2. Tests erstellen (gemäß combined-migration-compact.prompt.md)

    • Für migrierte Module: Lts/Common, NGLLogger
    • Teststruktur: ./qt-migration-legatus/qt6-after/qt6-migrated-legatus/tests/
  3. ./rpmbuild und ./jenkins migrieren

    • Von openSUSE nach Ubuntu 26.04
    • Dockerfiles anpassen
    • Jenkins-Pipelines aktualisieren
  4. Vollständige Migration fortsetzen

    • Z-Module → TetraIF → Lts/Services → Lts/Proxies → Lts/Plugins → Lts/Projects

📊 Build-Statistik

Modul Build-Status RTI benötigt Notes
NGLLogger ✅ Erfolg ❌ Nein Basis-Logging
IsmShared ✅ Erfolg ❌ Nein InfrastructureManagement
FltDataPlugin ⚠️ Pending ✅ Ja Benötigt svcFltClient
svcFltCommon ⚠️ Pending ✅ Ja BUILD_RTI=ON required
svcFltClient ⚠️ Pending ✅ Ja BUILD_RTI=ON required
svcFltServer ⚠️ Pending ✅ Ja BUILD_RTI=ON required

🛠️ Wichtige Files

Stub-Header erstellt:

  • /include/FilterManagement/flt_fts.h
  • /include/FilterManagement/flt_dts.h
  • /include/FilterManagement/flt_dts.cpp
  • /include/FilterManagement/flt_ftc.h (neu)
  • /include/InfrastructureManagement/ism.hpp
  • /include/InfrastructureManagement/ism_enums.hpp

Skripte erstellt:

  • fix_add_library2.py (87 Fixes)
  • fix_export_includes.py (44 Fixes)
  • create_dds_stubs.py (81 Header)
  • move_dds_headers.py (Pfad-Korrektur)
  • remove_logger_members.py (~100+ Dateien)
  • fix_logging_macros.py (variadische Parameter)

Empfehlung: User sollte entscheiden ob RTI Connext installiert werden soll oder ob FilterManagement-Plugins temporär aus dem Build ausgeschlossen werden können.