Completes first migration quality accessment
This commit is contained in:
2 files changed
+130
-1
No files matched your search
@@ -0,0 +1,129 @@
|
||||
# Strict Qt5-to-Qt6 Migration and Regression Verification
|
||||
|
||||
This is an implementation and validation task. Work autonomously, keep changes minimal, and do not modify unrelated files.
|
||||
|
||||
## Fixed scope
|
||||
|
||||
Work only on branch:
|
||||
|
||||
`feature/regression-arcgis300-symbology-migration`
|
||||
|
||||
Compare these exact directories recursively:
|
||||
|
||||
- Qt5 reference, read-only:
|
||||
`./qt-migration-legatus/qt5-before/qt5-legatus-legacy/`
|
||||
- Qt6 target, writable:
|
||||
`./qt-migration-legatus/qt6-after/qt6-migrated-legatus/`
|
||||
|
||||
Do not swap, reinterpret, or invent paths. Never modify the Qt5 reference tree.
|
||||
|
||||
## Mandatory Docker and build rules
|
||||
|
||||
All analysis, comparison, source changes, builds, and tests must run inside Docker. Do not run compilers, CMake, Make, Ninja, CTest, Python tests, or application tests directly on the host.
|
||||
|
||||
Use only this authoritative build and test script:
|
||||
|
||||
`./qt6-migration-pipeline/qt-migration-legatus/qt6-after/qt6-migrated-legatus/new_docker_build.sh`
|
||||
|
||||
Do not use another script or invent an alternative build procedure.
|
||||
|
||||
Before doing any project analysis or modification:
|
||||
|
||||
1. Read the complete script.
|
||||
2. Verify its actual options, defaults, environment variables, Docker mounts, build groups, targets, test commands, logs, and failure behavior.
|
||||
3. Build the script's prebuilt Docker image.
|
||||
4. Use that same freshly built image for all subsequent work.
|
||||
|
||||
Only use options that actually exist in the script. In particular, verify the real behavior of:
|
||||
|
||||
- `--build-prebuilt-image`
|
||||
- `--use-prebuilt-image`
|
||||
- `--docker-image`
|
||||
- `--tests-only`
|
||||
- `--integration-test`
|
||||
- `--no-ctest`
|
||||
- `--group1` through `--group12`
|
||||
- `--build-viewer-only`
|
||||
- `--arcgis`
|
||||
- `--grantlee`
|
||||
- `--codification`
|
||||
- `--cmake_build_flags`
|
||||
|
||||
If the image cannot be built, stop and report the exact command, exit code, error, and blocker.
|
||||
|
||||
## Tests
|
||||
|
||||
Existing tests are located at:
|
||||
|
||||
`./qt6-migration-pipeline/qt-migration-legatus/qt6-after/qt6-migrated-legatus/tests`
|
||||
|
||||
Before adding tests, inspect and follow the existing directory structure, naming convention, CMake registration, and execution pattern.
|
||||
|
||||
Every new regression test must be placed in that same `tests` tree and registered through the existing test mechanism. Do not create tests elsewhere unless the repository convention demonstrably requires it.
|
||||
|
||||
## Verification procedure
|
||||
|
||||
1. Compare the Qt5 and Qt6 trees recursively and functionally, not only by filename.
|
||||
2. Classify every relevant difference as:
|
||||
- correctly migrated
|
||||
- missing migration
|
||||
- regression or behavioral difference
|
||||
- intentionally changed
|
||||
- intentionally removed
|
||||
- build/packaging-only
|
||||
- generated or obsolete
|
||||
- test-related
|
||||
- unclear or blocked
|
||||
3. Check source files, headers, APIs, CMake targets, dependencies, resources, UI files, plugins, configuration, code generation, tests, and active Qt5 references.
|
||||
4. Check ArcGIS 300 Symbology with the appropriate `--arcgis` configuration.
|
||||
5. Run the relevant build and test groups through the authoritative script. Prefer grouped execution when supported by the script.
|
||||
6. Record every command, option, group, target, test, exit code, and log path.
|
||||
|
||||
## Regression handling
|
||||
|
||||
For every reproducible regression or missing migration:
|
||||
|
||||
1. Reproduce it inside Docker.
|
||||
2. Identify the root cause using the Qt5/Qt6 comparison and build/test logs.
|
||||
3. Apply the smallest valid fix in the Qt6 tree or required test/build files.
|
||||
4. Add a deterministic regression test under the required `tests` directory.
|
||||
5. Register it using the existing CMake/test convention.
|
||||
6. Re-run the affected build group and test through the authoritative script.
|
||||
7. Re-run all other relevant tests affected by the change.
|
||||
|
||||
Do not disable tests or targets, hide failures with `--no-ctest`, use dummy implementations, or replace generated outputs manually.
|
||||
|
||||
## Success criteria
|
||||
|
||||
The task succeeds only if:
|
||||
|
||||
- the prebuilt Docker image was built before project work began;
|
||||
- all project analysis, changes, builds, and tests ran inside Docker;
|
||||
- every build and regression test used the authoritative script;
|
||||
- all relevant build groups and tests were executed and passed;
|
||||
- the Qt5/Qt6 comparison was complete and every relevant difference was classified;
|
||||
- required Qt5 functionality exists in Qt6 or has a documented, justified replacement;
|
||||
- ArcGIS 300 Symbology was validated, or the exact blocker and unvalidated scope are reported;
|
||||
- every fixed regression has a deterministic regression test in the required test tree;
|
||||
- the Qt5 tree is unchanged;
|
||||
- no tests, targets, or functionality were disabled to claim success.
|
||||
|
||||
A skipped, failed, or unavailable relevant check means the result cannot be reported as fully validated.
|
||||
|
||||
## Final report
|
||||
|
||||
Provide a factual report containing:
|
||||
|
||||
- status: `VALIDATED`, `PARTIALLY VALIDATED`, or `BLOCKED`;
|
||||
- branch and exact directories checked;
|
||||
- Docker image name, image-build command, exit code, and result;
|
||||
- authoritative script path and verified options;
|
||||
- commands, groups, targets, tests, exit codes, and log paths;
|
||||
- classified Qt5/Qt6 differences;
|
||||
- regressions, root causes, fixes, and added tests;
|
||||
- ArcGIS 300 Symbology result;
|
||||
- changed files;
|
||||
- skipped or failed checks with exact blockers;
|
||||
- remaining risks.
|
||||
|
||||
Do not claim complete migration or regression-free behavior without concrete, reproducible evidence.
|
||||
+1
-1
Submodule qt-migration-legatus updated: c39dbec31f...bec2a14ce2.
Reference in new issue
Block a user