Files
qt6-migration-pipeline/files/release-scope-analysis.md
T
torsten 1252877ea9 Adds release report
Entire-Checkpoint: 01M4AXD416W8SYX1NS69VCZP0K
2026-10-07 10:09:05 +00:00

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

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)