# Release Scope Analysis - Qt6 Migration First Release ## Date: 2026-10-07 ## Branch: story/release-at-16-oct-2026 ## Module Sets ### R (All Qt6-migrated modules) Top-level modules in qt6-migrated-legatus: - TetraIF - Z - Lts (with subdirectories: Common, DDS, Services, Proxies, Plugins, Viewer, Projects, Tools, Application) ### M (Modules to be released per prompt) - TetraIF - Z - Lts/Common ### S (Minimal release set = M + dependencies) **S = M** (no external dependencies required) All dependencies of M modules are contained within M: #### TetraIF dependencies: - CoPrtCnv (internal to TetraIF directory) - NGLLogger (Z/src) ✓ in M - nglwidgets (Z/src) ✓ in M - nglapplication (Z/src) ✓ in M - ngltools (Z/src) ✓ in M - Qt6::Core, Qt6::Gui, Qt6::Network (system Qt6) #### Z/src dependencies: - Qt6::Core, Qt6::Gui, Qt6::Network, Qt6::Widgets, Qt6::Sql (system Qt6) - No inter-Z dependencies that would require additional modules #### Lts/Common dependencies: - NGLLogger (Z/src) ✓ in M - ngltools (Z/src) ✓ in M - nglsettings (Z/src) ✓ in M - nglapplication (Z/src) ✓ in M - nglcoreapplication (Z/src) ✓ in M - PluginInterfaces (Lts/Common/internal) ✓ in M - LtsWidgets (Lts/Common/internal) ✓ in M - LtsCoordTrans (Lts/Common/internal) ✓ in M - LtsUtilsCoreHeaderOnly (Lts/Common/internal) ✓ in M - Qt6::Core (system Qt6) #### Conditional dependencies: - **ddscore** (Lts/Services/GROUP1): Only required when BUILD_RTI=ON - LtsCoordinate: uses `$,ddscore,>` (conditional) - LtsSession: uses `$<$:ddscore>` (conditional) - LtsUtilsCore/LtsUtilsGuiDds: link to ddscore (conditional on BUILD_RTI) **Recommendation**: For first release, set BUILD_RTI=OFF to avoid requiring Lts/Services **Alternative**: Include GROUP1 (ddscore, svcCoreClient) in S if RTI support is required #### Excluded dependencies (NOT in S): - **Lts/Viewer/SituationMap**: Required by LtsElevation but LtsElevation is NOT in M - LtsElevation is one of 28 Lts/Common submodules - Since LtsElevation is not a required release module, its external dependencies are excluded - LtsElevation will be excluded from the release build ## Build Group Mapping Current build groups in new_docker_build.sh: ``` GROUP1: Lts/Services (ddscore, svcCoreClient, etc.) - EXCLUDE (unless BUILD_RTI=ON) GROUP2: Lts/Proxies - EXCLUDE GROUP3: Z/src (all Z modules) - INCLUDE (part of M) GROUP4: Lts/DDS - EXCLUDE GROUP5: Lts/Common - INCLUDE (part of M) GROUP6: Lts/Tools - EXCLUDE GROUP7: Lts/Plugins - EXCLUDE GROUP8: Lts/Viewer - EXCLUDE GROUP9: Lts/Projects - EXCLUDE GROUP10: Lts/Application - EXCLUDE GROUP11: TetraIF - INCLUDE (part of M) ``` ## Required Changes ### 1. new_docker_build.sh - Set BUILD_GROUP3=ON (Z/src) - Set BUILD_GROUP5=ON (Lts/Common) - Set BUILD_GROUP11=ON (TetraIF) - Set all other BUILD_GROUP*=OFF - Set BUILD_RTI=OFF (to avoid ddscore dependency) - Modify Lts/Common build to exclude LtsElevation (depends on Lts/Viewer) ### 2. rpmbuild/make_rpm_ubuntu26.py - Update to only package S modules - Exclude non-S module paths ### 3. jenkins-ci-rme/ - Update pipeline to only build/test S modules - Update artifact paths ### 4. CMakeLists.txt (optional) - May need to modify Lts/Common/CMakeLists.txt to conditionally exclude LtsElevation - Or control via MIGRATE_MODULE variable ## Validation Plan 1. Build with modified new_docker_build.sh 2. Run CTest for S modules 3. Verify RPM packages only contain S modules 4. Verify Jenkins pipeline only builds S modules ## Files to Modify 1. `qt-migration-legatus/qt6-after/qt6-migrated-legatus/new_docker_build.sh` 2. `rpmbuild/make_rpm_ubuntu26.py` 3. `jenkins-ci-rme/` (specific files TBD) 4. Potentially `qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Common/CMakeLists.txt` ## Commit Strategy Per commit-policy.prompt.md: - Separate commits for each repository - Signed commits required - Repositories: - qt6-migration-pipeline (main) - qt-migration-legatus (submodule) - rpmbuild (submodule) - jenkins-ci-rme (submodule)