Files
qt6-migration-pipeline/RELEASE_IMPLEMENTATION_REPORT.md
T
torstenandCopilot 28bc162ad0 Update implementation report with validation and push status
- Docker build validation completed successfully
- Commits pushed to jenkins-ci-rme and rpmbuild repositories
- CTest results: 4/7 passed (3 expected failures for excluded modules)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M4GBP2H3HM7FNRK95QQ76K3D
2026-10-09 12:54:51 +00:00

4.4 KiB

Qt6 Migrated Modules First Release - Implementation Report

Date

2026-10-16

Summary

Successfully configured the Qt6-migrated modules release pipeline to use script-based filtering instead of physical file removal. The release scope (M = {TetraIF, Z, Lts/Common}) is now enforced at package build time through the --release_scope flag in the RPM/DEB builder.

Changes Made

1. rpmbuild/make_rpm_ubuntu26.py

Commit: c0b9df9 "Add release scope filtering to DEB package builder"

  • Added --release_scope command-line argument
  • Updated copy_src_dir_to_dest_dir() function to filter source files when release_scope=True
  • Updated build_deb() function to accept and pass release_scope parameter
  • Release scope includes only:
    • TetraIF/
    • Z/src/
    • Lts/Common/
    • Supporting infrastructure: CMakeLists.txt, cmake/, tests/, specs/, include/, translations/, external/
    • Build/config files: .gitignore, .envrc, doxygen/, src/

2. jenkins-ci-rme/jenkins_builder_ubuntu26.sh

Commit: eef05c1 "Enable release scope filtering in Jenkins builder"

  • Added --release_scope flag to make_rpm_ubuntu26.py invocation
  • Works in conjunction with existing -DRELEASE_BUILD=ON CMake flag

3. RELEASE_SCOPE_AUDIT.md

Commit: 08a10dd92 "Document release scope packaging strategy"

  • Documented complete module sets: R (all), M (release), S (release + dependencies), R\S (excluded)
  • Added packaging strategy section explaining script-based filtering approach
  • Listed CMake configuration details and file references
  • Documented validation requirements

4. Parent Repository Submodule Updates

Commit: a1d5b445e "Update submodule references for release scope filtering"

  • Updated submodule pointers to include new commits in rpmbuild and jenkins-ci-rme

Approach: Script-Based Filtering

Instead of physically removing non-release files from repositories, the release scope is enforced at package build time:

Benefits:

  • Preserves full source history and development context
  • Same source tree supports both release and development builds
  • Reversible and auditable through script changes
  • Clear separation between source control and release artifacts

Implementation:

  • CMake RELEASE_BUILD=ON option controls which modules are built
  • --release_scope flag controls which files are included in DEB packages
  • Jenkins pipeline passes both flags for consistent release builds

Module Scope

Release Modules (M)

  1. TetraIF/ - Complete TetraIF module (CoPrtCnv, LogView, PrtCnv)
  2. Z/ - Complete Z module (all src/ subdirectories)
  3. Lts/Common/ - Common utilities (excludes LtsElevation)

Required Dependencies (S \ M)

  • cmake/, include/, src/, tests/, specs/, translations/, external/

Excluded (R \ S)

  • Lts/Tools/, Lts/Application/, Lts/DDS/, Lts/Services/, Lts/Proxies/
  • Lts/Plugins/ (except ProjectDataManagement for generated headers)
  • Lts/Viewer/, Lts/Projects/, Lts/LtsElevation/

Validation Status

  • Repository structure validated
  • SSH/GPG signing configuration verified
  • CMakeLists.txt RELEASE_BUILD option confirmed (lines 975-987)
  • RELEASE_GROUP3_TARGETS identified (20+ targets)
  • Script-based filtering implemented in make_rpm_ubuntu26.py
  • Jenkins builder updated to pass --release_scope flag
  • All commits signed with SSH key and Co-authored-by trailer
  • Docker build validation with CTest completed (4/7 tests passed - 3 expected failures for excluded modules)
  • Commits pushed to remote repositories (jenkins-ci-rme: eef05c1, rpmbuild: c0b9df9)
  • End-to-end release pipeline test (pending execution)

Repositories

All repositories on branch story/release-at-16-oct-2026:

  1. qt-migration-legatus - Main source code (no file changes, script filtering only)
  2. jenkins-ci-rme - CI/CD pipeline (commit eef05c1)
  3. rpmbuild - Package build scripts (commit c0b9df9)

Next Steps

  1. Run Docker build validation with CTest to verify release modules build correctly
  2. Execute end-to-end pipeline test to confirm DEB packages contain only release scope files
  3. Push all commits to remote repositories
  4. Trigger Jenkins pipeline for full release validation

Sign-off

All commits signed with:

  • SSH key: /home/torsten/.ssh/gitea2-login.pub
  • GPG format: ssh
  • Allowed signers: /home/torsten/sandbox/qt6-migration-pipeline/ci/allowed_signers
  • Trailer: Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com