chore: Migration Status Update 2026-08-21T18:39:15+02:00
Qt6 Migration CI / migrate (push) Waiting to run
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:
1 file changed
+59
-215
+59
-215
@@ -1,227 +1,71 @@
|
|||||||
# Qt6 Migration Status
|
# 🚀 Qt5/C++11 → Qt6/C++23 Migration Status
|
||||||
|
|
||||||
## Session: BUILD_RTI Guards und Submodule-Migration
|
**Letztes Update**: 2026-08-21T18:39:15+02:00
|
||||||
|
**Branch**: `feature/qt6-migration-basis-modules`
|
||||||
### Datum: 2026-08-21 (Letztes Update: 18:14 Uhr)
|
**Commit**: `950d6695`
|
||||||
|
**Letzter Commit**: 2026-08-21 18:37:18 +0200
|
||||||
### 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
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Durchgeführte Änderungen (2026-08-18)
|
## 📊 Fortschritt
|
||||||
|
|
||||||
#### Core Header Fixes
|
| Metrik | Wert |
|
||||||
- **core_dtc.h**: Namespace von `Core::` zu `DDS::Core::` korrigiert (kritisch für Include-Pfad-Priorität)
|
|--------|------|
|
||||||
- **core.hpp**:
|
| Migrierte Dateien | 7166 |
|
||||||
- GeoPosition2D Struktur hinzugefügt (mit impliziter GeoPosition-Konversion)
|
| Legacy Dateien (Referenz) | 6426 |
|
||||||
- operator<< für ostream-Output hinzugefügt
|
| Test-Dateien | 298 |
|
||||||
- setter-Methodien (z(), lon(), lat()) für Qt5-Kompatibilität
|
| Build-Status | Unknown |
|
||||||
|
|
||||||
#### 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
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Nächste Schritte (Original-Plan 2026-08-18)
|
## ✅ Abgeschlossene Meilensteine
|
||||||
|
|
||||||
1. **Build validieren**: Laufender Build im Docker-Container muss erfolgreich abschließen
|
- ✅ Lts/Common - Vollständig migriert
|
||||||
2. **Reorder-Warnings beheben**: Member-Deklarationsreihenfolge in Headern anpassen
|
- 🟡 Lts/DDS - In Arbeit
|
||||||
3. **Tests ausführen**: ctest im Docker-Container
|
- 🟡 Lts/Plugins - In Arbeit
|
||||||
4. **Commits erstellen**: Signierte Commits für alle Änderungen
|
- 🟡 Lts/Proxies - In Arbeit
|
||||||
5. **MIGRATION_STATUS.md**: Nach Build-Erfolg finalisieren
|
- 🟡 Lts/Services - In Arbeit
|
||||||
|
|
||||||
### 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)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Letztes Update**: 2026-08-21 18:14 Uhr
|
## 🔧 Technische Details
|
||||||
**Status**: BUILD_RTI guards implementiert, Submodule synchron, Build-Validierung ausstehend
|
|
||||||
|
### 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*
|
||||||
Reference in new issue
Block a user