4.0 KiB
4.0 KiB
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
$<IF:$<TARGET_EXISTS:ddscore>,ddscore,>(conditional) - LtsSession: uses
$<$<BOOL:${BUILD_RTI}>: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
- LtsCoordinate: uses
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
- Build with modified new_docker_build.sh
- Run CTest for S modules
- Verify RPM packages only contain S modules
- Verify Jenkins pipeline only builds S modules
Files to Modify
qt-migration-legatus/qt6-after/qt6-migrated-legatus/new_docker_build.shrpmbuild/make_rpm_ubuntu26.pyjenkins-ci-rme/(specific files TBD)- 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)