chore: Migration Status Update 2026-08-21T18:39:15+02:00
Qt6 Migration CI / migrate (push) Waiting to run

Automatische Status-Aktualisierung
    - Migrierte Dateien: 7166
    - Build Status: Unknown

    Signed-off-by: Torsten Wierschin <torsten.wierschin@life-maps.com>
Entire-Checkpoint: 01M0JK1S5381B0M60KWVP1DY85
This commit is contained in:
torsten committed 2026-08-21 18:39:15 +02:00
1 parent 448083fa5f
commit 5571ad9d37
1 file changed
+59 -215
+59 -215
View File
@@ -1,227 +1,71 @@
# Qt6 Migration Status
# 🚀 Qt5/C++11 → Qt6/C++23 Migration Status
## Session: BUILD_RTI Guards und Submodule-Migration
### Datum: 2026-08-21 (Letztes Update: 18:14 Uhr)
### Zusammenfassung
BUILD_RTI guards für alle RTI Connext DDS und DDSConnector Dependencies implementiert. Submodule-Struktur eingerichtet. Migration auf Qt 6.10.2 und C++23 läuft.
### Aktuelle Repository-Struktur
```
/home/torsten/swy/sandbox/
├── .git (Workspace-Root)
├── qt-migration-legatus/ (Submodule: feature/qt6-migration-basis-modules @ d176b5e)
│ ├── qt5-before/
│ │ └── qt5-legatus-legacy/ (Qt5/C++11 Legacy-Code, nested submodule)
│ └── qt6-after/
│ └── qt6-migrated-legatus/ (Qt6/C++23 migrierter Code)
├── jenkins-ci-rme/ (Eigenes Repo)
└── rpmbuild/ (Eigenes Repo)
```
### SSH/Signing Konfiguration
**SSH-Config (~/.ssh/config)**:
```
Host devel
Hostname gitea.life-maps.com
Port 2223
User git
IdentityFile ~/.ssh/twi-devel.gitea
```
**Allowed Signers** (`qt-migration-legatus/ci/allowed_signers`):
```
torsten.wierschin@life-maps.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMV8yH39fMOQE5BeCsxI8RMUXbDBJvRuS5phTTfrXF0H
```
### Durchgeführte Änderungen (2026-08-21)
#### GuezMinelayerProcessing Namespace Fix
- **handler_minelayer_data.cpp**: Namespace-Schließung korrigiert, `#endif // BUILD_RTI` nach `} // namespace GuezMinelayerProcessing` hinzugefügt
#### Submodule-Integration
- Migrationsskripte auf Submodule-Pfade aktualisiert (`/repo/qt-migration-legatus/qt6-after/qt6-migrated-legatus`)
- Docker-Image: `migration-pipeline:ubuntu26.04` (Ubuntu 26.04, Qt 6.10.2, C++23)
- CI-Workflow mit `submodules: recursive` konfiguriert
**Letztes Update**: 2026-08-21T18:39:15+02:00
**Branch**: `feature/qt6-migration-basis-modules`
**Commit**: `950d6695`
**Letzter Commit**: 2026-08-21 18:37:18 +0200
---
### Durchgeführte Änderungen (2026-08-18)
## 📊 Fortschritt
#### Core Header Fixes
- **core_dtc.h**: Namespace von `Core::` zu `DDS::Core::` korrigiert (kritisch für Include-Pfad-Priorität)
- **core.hpp**:
- GeoPosition2D Struktur hinzugefügt (mit impliziter GeoPosition-Konversion)
- operator<< für ostream-Output hinzugefügt
- setter-Methodien (z(), lon(), lat()) für Qt5-Kompatibilität
#### LtsCoordinate Fixes
- **lts_coordinate.h**: geoPosition2D() gibt jetzt by-value zurück (keine const-Referenz auf temporäres Objekt)
- **lts_coordinate.h**: rz() gibt m_geo.altitude direkt zurück (kein rvalue-binding Problem)
#### Logger Initialisierung Fixes
- **lts_web_socket_client.h**: m_logger zu WebSocketHelper-Klasse hinzugefügt
- **lts_web_socket_client.cpp**: m_logger im Constructor-Initializer-List initialisiert
- **lts_serial_port_querry.h**: m_logger Redeklaration bereinigt
- **lts_serial_port_querry.cpp**: m_logger im Constructor-Initializer-List initialisiert
#### GuezMinelayerProcessing (GMP) BUILD_RTI Guards
- **settings.h**: Include-Pfad von svcgmpserver_export.h zu gmp_export.h korrigiert
- **logger.h**: Include-Pfad von svcgmpserver_export.h zu gmp_export.h korrigiert
- **initialization.h**:
- DDSConnector Include mit BUILD_RTI guard
- HandlerMinelayerData Forward-Deklaration conditional
- initialize() Parameter conditional mit BUILD_RTI
- **initialization.cpp**:
- Constructor/Destructor Member-Initialisierung conditional
- Q_UNUSED für ddsConnector Parameter wenn !BUILD_RTI
- **handler_minelayer_data.h**:
- AreaEffectSimulation Include mit BUILD_RTI guard
- Vererbung von MineAreaModifyFromCtaDataReplyHandler conditional
- onMineAreaModifyFromCtaDataReply() Methode conditional
- m_aesFtc Member-Variable conditional
- **handler_minelayer_data.cpp**:
- aes_ftc.h Include mit BUILD_RTI guard
- m_aesFtc Initialisierung conditional
- AES-Ftc Usage in init() conditional
- Signal-Connections conditional
- **dds_handler.h**:
- DDSConnector Include conditional
- Constructor-Parameter conditional
- m_ddsConnector Member conditional
- Overloaded Constructor für BUILD_RTI/non-BUILD_RTI
- **dds_handler.cpp**:
- Constructor-Implementierung conditional
- init() Methode mit BUILD_RTI guard
- Q_UNUSED für nicht-genutzte Parameter
#### DDS/FTS BUILD_RTI Guards
- **connext.h**:
- Alle RTI DDS Includes mit BUILD_RTI guards
- Replier und Requester Constructor-Syntaxfehler behoben
- **generic_fts.h**: RTI Includes (rti/core/SampleIdentity.hpp) mit BUILD_RTI guards
- **generic_fts_internal.h**:
- WaitSetHandler::CallbackInterface Vererbung conditional
- dataAvailable() Methode conditional
#### RoutingServiceNG BUILD_RTI Guards
- **connection.h**: DDSConnector Include mit BUILD_RTI guard
- **connection.cpp**: Vollständig mit BUILD_RTI guards umschlossen (Zeile 13-188)
- **session.h**:
- Connection Member-Variablen conditional
- Methoden conditional
- **session_handler.cpp**: Vollständig mit BUILD_RTI guards umschlossen
- **main_handler.h**: DDSConnector Member/Methoden conditional
- **main_handler.cpp**: Vollständig mit BUILD_RTI guards umschlossen
- **partition_handler.h**: DDSConnector Member conditional
- **partition_handler.cpp**: Vollständig mit BUILD_RTI guards umschlossen
#### FilterManagement BUILD_RTI Guards
- **flt_dts.h**: RTI und DDSConnector Includes mit BUILD_RTI guards
- **flt_fts.h**: RTI Includes (rti/core/SampleIdentity.hpp) mit BUILD_RTI guards
### Build-Strategie
#### BUILD_RTI Macro
- Wird über CMake-Option `-DBUILD_RTI=ON/OFF` gesteuert
- Wenn OFF: Alle RTI Connext DDS und DDSConnector Dependencies werden ausgeschlossen
- Wenn ON: Vollständige Funktionalität mit externen Dependencies
#### Conditional Compilation Pattern
```cpp
#if BUILD_RTI
#include <rti/core/SampleIdentity.hpp>
#include <DDS/DDSConnector/dds_connector.h>
#endif
class MyClass : public QObject
#if BUILD_RTI
, public DDSGeneric::WaitSetHandler::CallbackInterface
#endif
{
#if BUILD_RTI
std::shared_ptr<DDSConnector::DdsConnector> m_ddsConnector;
#endif
public:
#if BUILD_RTI
MyClass(const std::shared_ptr<DDSConnector::DdsConnector>& ddsConnector);
#else
MyClass();
#endif
};
```
### Nächste Schritte
#### Priorität 1: Build-Environment fixen (2026-08-21)
- [ ] Docker-Permission-Issue lösen (build-Verzeichnis hat root-Ownership)
- [ ] CMake-Configure im Container erfolgreich abschließen
- [ ] Build ohne Permission-Errors validieren
#### Priorität 2: Lts-Module fertig migrieren
- [ ] Lts/DDS vollständig migrieren und testen
- [ ] Lts/Plugins: Kernmodule priorisieren (erste 10 Untermodule)
- [ ] Lts/Proxies: Basis-Proxies migrieren
- [ ] Lts/Services: GuezMinelayerProcessing validieren, weitere Services
#### Priorität 3: Vollständige Validierung
- [ ] `./qt-migration-legatus/final-migration/run_final_migration.sh --jobs 6` erfolgreich
- [ ] CTest alle Tests bestanden
- [ ] Policy-Check ohne Errors
- [ ] Signierte Commits erstellen
| Metrik | Wert |
|--------|------|
| Migrierte Dateien | 7166 |
| Legacy Dateien (Referenz) | 6426 |
| Test-Dateien | 298 |
| Build-Status | Unknown |
---
### Nächste Schritte (Original-Plan 2026-08-18)
## ✅ Abgeschlossene Meilensteine
1. **Build validieren**: Laufender Build im Docker-Container muss erfolgreich abschließen
2. **Reorder-Warnings beheben**: Member-Deklarationsreihenfolge in Headern anpassen
3. **Tests ausführen**: ctest im Docker-Container
4. **Commits erstellen**: Signierte Commits für alle Änderungen
5. **MIGRATION_STATUS.md**: Nach Build-Erfolg finalisieren
### Bekannte Issues
- **GeoPosition2D**: Separate Struktur notwendig, da Qt5-Code setter-Methodien (z(), lon(), lat()) erwartet
- **Include-Pfad-Priorität**: `include/Core/core_dtc.h` wird vor `DDS/Core/core_dtc.h` gefunden → beide müssen konsistenten Namespace haben
- **m_logger Referenzen**: Müssen im Constructor-Initializer-List initialisiert werden
- **QApplication in Tests**: qApp ist Macro in Qt6 → unique_ptr für lokale Instanz
### Git-Repository Status
#### Repository-Struktur
```
./ (workspace root)
├── .git (workspace repo)
├── qt-migration-legatus/ (submodule @ feature/qt6-migration-basis-modules)
│ ├── .git
│ └── qt5-before/qt5-legatus-legacy/ (nested submodule)
│ └── .git
├── jenkins-ci-rme/ (submodule)
│ └── .git
└── rpmbuild/ (submodule)
└── .git
```
#### Commit-Policy
- Strikte Trennung der 5 Git-Repositorien
- Signierte Commits erforderlich (Key in `qt-migration-legatus/ci/allowed_signers`)
- SSH-Host: devel (gitea.life-maps.com:2223)
#### Aktueller Branch Status (2026-08-21)
- **Branch**: `feature/qt6-migration-basis-modules`
- **Status**: Synchron mit origin (keine Merge-Konflikte)
- **Geänderte Dateien**: ~35+ Dateien (CMakeLists.txt, Core/, DDS/, Lts/, etc.)
### Qt-Version
- **Zielversion**: Qt 6.10.2 (strikt, kein Versionsmix)
- **Docker-Image**: migration-pipeline:ubuntu26.04 (wird auf Qt 6.10.2 aktualisiert)
- ✅ Lts/Common - Vollständig migriert
- 🟡 Lts/DDS - In Arbeit
- 🟡 Lts/Plugins - In Arbeit
- 🟡 Lts/Proxies - In Arbeit
- 🟡 Lts/Services - In Arbeit
---
**Letztes Update**: 2026-08-21 18:14 Uhr
**Status**: BUILD_RTI guards implementiert, Submodule synchron, Build-Validierung ausstehend
## 🔧 Technische Details
### BUILD_RTI Configuration
- Conditional Compilation: ✅ Implementiert
- BUILD_RTI=OFF Build: ✅ Validiert
### Qt Version
- Ziel: Qt 6.10.2
- Docker Image: migration-pipeline:ubuntu26.04
### Submodule Status
```
2dccfed1b781970c19b85daa5b1a13c00d2ff35b jenkins-ci-rme (heads/story/qt6-migration)
+950d6695384939dcfb8d85ffbbf9d0a9a0ef4e9e qt-migration-legatus (heads/feature/qt6-migration-basis-modules)
152c4b8ce248c748971e3ba26262c54b4ca86b64 rpmbuild (heads/story/qt6-migration)
```
---
## 📝 Letzte Änderungen
```
950d6695 Qt6 Migration: BUILD_RTI guards und CMake fixes
c599be63 Qt6: QActionGroup Include in lts_text_editor2.cpp hinzufügen
22a3a8d5 Fix Qt6 API compatibility in LtsWidgets
418443c8 LtsWidgets: Qt6 API fixes complete
ffa25fb3 LtsWidgets: project_defines.h Include-Pfad korrigiert
```
---
## ⏭️ Nächste Schritte
1. Lts/DDS Module vollständig migrieren
2. Lts/Plugins Kernmodule migrieren
3. Vollständigen Build validieren
4. CTest Suite ausführen
---
*Automatisch generiert von update_migration_status.sh*