Migration infrastructure updates for Qt6/RTI 7.7
Qt6 Migration CI / migrate (push) Waiting to run

- Updated MIGRATION_STATUS.md with current build status and blockers
- Updated combined-migration-compact.prompt.md with latest instructions
- Updated Dockerfile for migration pipeline with RTI 7.7 support
- Updated build scripts for Docker-based migration workflow

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M1BQ6VBZ20E1WJ29NYGT8EWJ
This commit is contained in:
torstenandCopilot committed 2026-08-31 12:52:57 +02:00
1 parent 121c873816
commit 0f23fad65b
3 files changed
+47 -24

No files matched your search

@@ -11,8 +11,8 @@ Migrate the legacy Qt5/C++11 desktop application to Qt6/C++17, preserve behavior
- Stop early only if required source material is missing, the task is impossible, or a destructive action would be required.
## Boundaries
- Read the legacy project from `${PROJECT_DIR}/qt5-before/qt5-legatus-legacy`.
- Write the migrated project to `${PROJECT_DIR}/qt6-after/qt6-migrated-legatus`.
- Read the legacy project from `./qt-migration-legatus/qt5-before/qt5-legatus-legacy`.
- Write the migrated project to `./qt-migration-legatus/qt6-after/qt6-migrated-legatus`.
- Do not modify the legacy source tree in place.
- Limit changes to the target tree and only the CI/build/test files needed to support migration and validation.
@@ -66,18 +66,18 @@ Migrate the legacy Qt5/C++11 desktop application to Qt6/C++17, preserve behavior
## Tests
- For every code change inside a method, add at least three tests covering the changed behavior.
- Place generated tests in `${PROJECT_DIR}/qt6-after/qt6-migrated-legatus/tests`.
- Place generated tests in `./qt-migration-legatus/qt6-after/qt6-migrated-legatus/tests`.
- Use policy-compatible test filenames such as:
- `test_<name>.cpp`
- `<name>_test.cpp`
- `<name>test.cpp`
- `<name>gtest.cpp`
as searched for in `${PROJECT_DIR}/ci/check_pr_policies.py`
as searched for in `./qt-migration-legatus/ci/check_pr_policies.py`
- Update CMake so the migrated app and all tests build and run with CTest.
- Ensure all tests are registered with CTest.
## Docker-First Validation
Use `lifemaps/ci-cpp:latest` as the authoritative environment. Do not substitute host tools for missing container tools. Treat `${PROJECT_DIR}/ci/Dockerfile.ci` as the source of truth for CI dependencies.
Use `lifemaps/ci-cpp:latest` as the authoritative environment. Do not substitute host tools for missing container tools. Treat `./qt-migration-legatus/ci/Dockerfile.ci` as the source of truth for CI dependencies.
### Required validation sequence
1. Configure in Docker
@@ -87,20 +87,20 @@ Use `lifemaps/ci-cpp:latest` as the authoritative environment. Do not substitute
### Recommended commands
- Configure:
`cmake -S ${PROJECT_DIR}/qt6-after/qt6-migrated-legatus -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug`
`cmake -S ./qt-migration-legatus/qt6-after/qt6-migrated-legatus -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug`
- Build:
`cmake --build build --parallel`
- Test:
`ctest --test-dir build --output-on-failure`
- Policy:
`python3 ${PROJECT_DIR}/ci/check_pr_policies.py`
`python3 ./qt-migration-legatus/ci/check_pr_policies.py`
Adapt paths/flags only if repository inspection proves they must differ.
## Missing-Tool Remediation
If Docker validation fails because a required tool/package is missing:
- identify the exact missing dependency
- update `${PROJECT_DIR}/ci/Dockerfile.ci` minimally
- update `./qt-migration-legatus/ci/Dockerfile.ci` minimally
- rebuild `lifemaps/ci-cpp:latest`
- rerun the full validation sequence
@@ -114,7 +114,7 @@ Environment failures:
- missing compiler/toolchain utility
- missing Qt dev package
- missing CMake/Ninja/CTest support tool
- missing dependency required by `${PROJECT_DIR}/ci/check_pr_policies.py`
- missing dependency required by `./qt-migration-legatus/ci/check_pr_policies.py`
Project failures:
- compile errors
@@ -123,18 +123,18 @@ Project failures:
- formatting/policy failures caused by migration changes
## Policy Awareness
- `${PROJECT_DIR}/ci/check_pr_policies.py` checks formatting for changed C/C++ files, expects related tests, and verifies commit-signature conditions in its diff range.
- `./qt-migration-legatus/ci/check_pr_policies.py` checks formatting for changed C/C++ files, expects related tests, and verifies commit-signature conditions in its diff range.
- Ensure Docker validation runs with mounted workspace and git metadata available.
- Do not claim success unless the policy script passes.
## Execution Plan
1. Inspect `${PROJECT_DIR}` and the target tree.
1. Inspect `./qt-migration-legatus/` and the target tree.
2. Identify Qt5 and legacy C++ constructs to migrate.
3. Migrate incrementally in `qt6-after/qt6-migrated-legatus`.
4. Add/update tests with each behavior-relevant change.
5. Update CMake/test registration.
6. Validate in Docker.
7. If missing dependencies are found, update `${PROJECT_DIR}/ci/Dockerfile.ci`, rebuild, and rerun.
7. If missing dependencies are found, update `./qt-migration-legatus/ci/Dockerfile.ci`, rebuild, and rerun.
8. Repeat until success or a real project defect remains.
## Reporting
@@ -144,13 +144,13 @@ Group change explanations by:
- C++ modernization
- UI/resource preservation
- tests added
- `${PROJECT_DIR}/ci/Dockerfile.ci` / container updates
- `./qt-migration-legatus/ci/Dockerfile.ci` / container updates
Also provide a concise changed-files summary.
## Completion Criteria
Success requires:
- migrated project exists under `${PROJECT_DIR}/qt6-after/qt6-migrated-legatus`
- migrated project exists under `./qt-migration-legatus/qt6-after/qt6-migrated-legatus`
- configure succeeds in Docker
- build succeeds in Docker
- tests succeed in Docker