diff --git a/RELEASE_IMPLEMENTATION_REPORT.md b/RELEASE_IMPLEMENTATION_REPORT.md new file mode 100644 index 000000000..5d6764fc0 --- /dev/null +++ b/RELEASE_IMPLEMENTATION_REPORT.md @@ -0,0 +1,106 @@ +# 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 + +- [x] Repository structure validated +- [x] SSH/GPG signing configuration verified +- [x] CMakeLists.txt RELEASE_BUILD option confirmed (lines 975-987) +- [x] RELEASE_GROUP3_TARGETS identified (20+ targets) +- [x] Script-based filtering implemented in make_rpm_ubuntu26.py +- [x] Jenkins builder updated to pass --release_scope flag +- [x] All commits signed with SSH key and Co-authored-by trailer +- [ ] Docker build validation with CTest (pending execution) +- [ ] 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> \ No newline at end of file