Files
qt6-migration-pipeline/MIGRATION_STATUS.md
T
torstenandCopilot 256cfb6d87
Qt6 Migration CI / migrate (push) Waiting to run
Update MIGRATION_STATUS.md with RTI C++23 compatibility blocker
Document RTI Connext DDS 7.7.0 header bugs preventing C++23 build:
- DDS_OctetSeq_get_contiguous_buffer (missing 's')
- DDS_SEQUENCE_INITIALIZER brace initialization

Workaround: BUILD_RTI=OFF until RTI provides C++23-compatible version

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M0Q2920JAZDBK8GBJPAWCBFG
2026-08-23 12:22:20 +02:00

144 lines
5.3 KiB
Markdown

# Qt5/C++11 to Qt6/C++23 Migration Status
**Last Updated**: 2026-08-22 12:45
**Session**: 9364ea1f-2ece-4ccb-8e2d-77e7a8886a06
---
## 📊 Overall Status
| Component | Status | Build | Tests | Notes |
|-----------|--------|-------|-------|-------|
| Lts/Common | ✅ Complete | ✅ | ✅ 1/1 | Fully migrated |
| Lts/DDS | 🟡 Structure only | ⚠️ BUILD_RTI=OFF | ? | RTI compatibility issues |
| Lts/Plugins | 🟡 Partial | ⚠️ BUILD_RTI=OFF | ? | 60 submodules |
| Lts/Projects | 🟡 Structure only | ⚠️ BUILD_RTI=OFF | ? | 5 submodules |
| Lts/Proxies | 🟡 Structure only | ⚠️ BUILD_RTI=OFF | ? | 13 submodules |
| Lts/Services | 🟡 Structure only | ⚠️ BUILD_RTI=OFF | ? | 47 submodules |
| TetraIF | 🟡 Partial | ⚠️ BUILD_RTI=OFF | ? | Migration in progress |
| Z Modules | 🟡 Partial | ⚠️ BUILD_RTI=OFF | ? | Some submodules done |
---
## 🚨 Known Issues
### RTI Connext DDS 7.7.0 C++23 Compatibility (BLOCKER)
**Issue**: RTI Connext DDS 7.7.0 headers contain bugs incompatible with C++20+:
1. **Wrong function name**: Headers call `DDS_OctetSeq_get_contiguous_buffer` but correct name is `DDS_OctetsSeq_get_contiguous_buffer` (missing 's')
- Affected files: `AckResponseData.hpp`, `CorePolicy.hpp`
2. **C++20 brace initialization**: `DDS_SEQUENCE_INITIALIZER` requires brace-enclosed initialization in C++20+
- Affected files: `Vector.hpp`, `ContentFilteredTopicImpl.hpp`, `findImpl.hpp`, `discoveryImpl.hpp`
**Workaround**:
- Use C++17 standard (`-DCMAKE_CXX_STANDARD=17`) - but this defeats the C++23 migration goal
- Patch RTI headers (not recommended for production)
- Wait for RTI patch/newer version
**Current Status**: Building with `BUILD_RTI=OFF` to continue migration work. RTI-dependent modules will be built as stubs.
**Files with RTI bugs**:
```
/repo/external/rti_connext_dds-7.7.0/include/ndds/hpp/rti/sub/AckResponseData.hpp:162
/repo/external/rti_connext_dds-7.7.0/include/ndds/hpp/rti/core/policy/CorePolicy.hpp
/repo/external/rti_connext_dds-7.7.0/include/ndds/hpp/rti/core/Vector.hpp:68
```
### ngl_codegen Dependency
**Issue**: `ngl_codegen` executable requires `BUILD_GRANTLEE=ON` (Grantlee5 is Qt5-based). The `CODEGEN_IDL_SVC` macro depends on `ngl_codegen` for IDL generation.
**Workaround**: Enable `BUILD_GRANTLEE=ON` temporarily for code generation, or pre-generate IDL files.
### svcPdmCommon Target Ordering
**Issue**: `Lts/Plugins/ProjectDataManagement/Gui/PdmComboBox` references `svcPdmCommon` target before it's defined in `Lts/Services/ProjectDataManagement`.
**Fix Required**: Reorder CMakeLists.txt to process services before plugins when `BUILD_RTI=ON`.
---
## ✅ Completed Work
### Build System Fixes (BUILD_RTI=OFF)
1. **LtsUtilsSettings export header**: Changed to angle brackets include
2. **LtsWidgets CMakeLists.txt**: Changed LtsUtilsSettings from PRIVATE to PUBLIC
3. **BatteryNotification**: Removed unused QDesktopWidget include
4. **DDS Modules**: Added proper BUILD_RTI guards to 6 CMakeLists.txt files
5. **Field naming**: Renamed fields to `m_` prefix in `training_area_telegrams.h`
6. **Target ordering**: Added Lts/Services/ProjectDataManagement before Lts/Plugins/ProjectDataManagement for TetraIF
### Git Operations
- Submodule `qt-migration-legatus` on branch `feature/qt6-migration-basis-modules`
- Main repo remote corrected to `git@devel:lifemaps/qt6-migration-pipeline.git`
- Merge conflicts resolved
### Infrastructure
- Docker image `migration-pipeline:ubuntu26.04` with Qt 6.8.3
- RTI Connext DDS 7.7.0 installed at `/repo/external/rti_connext_dds-7.7.0`
- CI workflow configured with `submodules: recursive`
---
## 📝 Recent Changes
### Commit: 2c0a0d3f (main repo)
- LtsUtilsSettings export header fix
- LtsWidgets PUBLIC link fix
- BatteryNotification QDesktopWidget removal
- DDS module BUILD_RTI guards
- training_area_telegrams.h field renaming
- CMakeLists.txt target ordering fix
### Commit: c042faae (submodule)
- Basis modules migration
---
## 🔄 Next Steps
1. **Fix svcPdmCommon target ordering** - Ensure services processed before plugins
2. **Continue module migration** - Focus on non-RTI dependent modules
3. **Field access updates** - Update all source files using renamed fields
4. **Automated status updates** - Implement cron job for MIGRATION_STATUS.md
5. **RTI resolution** - Contact RTI support for C++23 compatibility patch or workaround
---
## 🛠️ Build Commands
### BUILD_RTI=OFF (Working)
```bash
docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \
cmake -S /repo/qt-migration-legatus/qt6-after/qt6-migrated-legatus \
-B /repo/build -G Ninja \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_PREFIX_PATH=/opt/Qt/6.8.3/gcc_64 \
-DBUILD_RTI=OFF
docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \
cmake --build /repo/build --parallel
```
### BUILD_RTI=ON (Blocked by RTI C++23 issues)
```bash
# Currently fails due to RTI header bugs
# Would require C++17 or RTI header patches
```
---
## 📈 Migration Progress
- **Modules fully migrated**: 1 (Lts/Common)
- **Modules with structure**: 6 (DDS, Plugins, Projects, Proxies, Services, TetraIF partial)
- **Build status**: ✅ BUILD_RTI=OFF, ⚠️ BUILD_RTI=ON blocked
- **Test status**: 1/1 tests passing (Lts/Common)
---
**Generated**: 2026-08-22 12:45
**Next auto-update**: After 4 hours or at next milestone