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
|
||||
|
||||
### 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*
|
||||
Reference in new issue
Block a user