# Session prompts — release validation scope (2026-10-14) Session goal: finalize the Qt6-migrated legatus first-release (validation scope) DEB package pipeline on branch `story/release-validation-scope` inside the `qt-migration-legatus` submodule (`qt6-after/qt6-migrated-legatus`). Scope = `TetraIF/` + `Z/src` + `Lts/Common` + `Lts/Proxies/TrainingAreaBase`. All prompts below are in chronological order and fully translated to English where they were originally written in French or German (typos preserved). --- ## 1. Initial request (with pasted verification notes) > Created a Dockerfile with this information > "./new_docker_build.sh --build-prebuilt-image --docker-image legatus-qt6:1.0", > only the build package must be compiled > > created a new branch and remove everything we don't Need in this step > > ``` > # 4. Run the Jenkins pipeline inside the Docker container > ./new_docker_build.sh \ > --use-prebuilt-image \ > --docker-image legatus-qt6:1.0 \ > --run-jenkins-builder \ > --package-output-dir /home/nkana/release/qt6-migration-pipeline/rpms/guez/26.04 > > # 5. Verify generated DEB packages > cd /home/nkana/release/qt6-migration-pipeline > ls -lh rpms/guez/26.04/*.deb > > # 6. Validate package contents (no R\S modules, no DDS files) > dpkg-deb --contents rpms/guez/26.04/qt6-release-runtime_*.deb | grep -E "(TetraIF|Z/src|Lts/Common|Lts/Proxies/TrainingAreaBase)" > dpkg-deb --contents rpms/guez/26.04/qt6-release-sources_*.deb | grep -i dds # Should return nothing > dpkg-deb --contents rpms/guez/26.04/qt6-release-ctest-runtime_*.deb | head -20 > dpkg-deb --contents rpms/guez/26.04/qt6-release-ctest-sources_*.deb | head -20 > dpkg-deb --contents rpms/guez/26.04/qt6-release-build-pipeline_*.deb | head -20 > > # 7. Verify no excluded modules in runtime package > dpkg-deb --contents rpms/guez/26.04/qt6-release-runtime_*.deb | grep -E "(Lts/Application|Lts/DDS|Lts/Tools|Lts/Viewer|src/AlarmManagement)" # Should return nothing > ``` **Result:** verified the 5 release DEBs (runtime, sources, ctest-runtime, ctest-sources, build-pipeline) — scope modules present, no excluded modules, no DDS files; started creating the validation-scope branch. ## 2. > created a branch with only the validation scope and rebuild it **Result:** created branch `story/release-validation-scope` containing only the validation-scope tree; full rebuild through the prebuilt Docker image produced 5 valid DEBs. ## 3. > remove everything we don't needed for this branch **Result:** first trim pass of the branch — dropped build scaffolding and modules outside the scope. ## 4. > remove everything we don't needed in this release package from branch > containind only the validation scope **Result:** deeper trim — removed further modules/machinery that were still present in the tree but not compiled into the release package. ## 5. (repeated 5 times) > remove the software modules that are not compiled on this branch > (originally: "retirer les software modules qui ne sont pas compiler sur cette branche") **Result:** iterative removal of every software module that exists in the tree but is not compiled by this branch's release build; verified after each pass by rebuilding and checking the DEB contents stayed identical to the baseline. ## 6. (repeated 2 times) > remove all warning **Result:** made the build log warning-free (compiler warnings + DEB-builder validation warnings). ## 7. > remove all commit "Co-Authored-By: Claude Code " > remove this line by all the commit message "Co-Authored-By: Claude Code > " **Result:** rewrote the branch history so no commit message carries the `Co-Authored-By: Claude Code` trailer; saved as a standing rule (all commits on this project are made without it). ## 8. > by tests remove everything it is not building and update new_docker_build.sh > for only building this branch **Result:** trimmed `tests/` down to a 4-line configure-only placeholder (the only existing test target was guarded by NOT RELEASE_BUILD) and scoped `new_docker_build.sh` to this branch: fixed `RELEASE_BUILD=ON`/`RUN_CTEST=ON`, explicit release-scope target list, ctest for the release-scope tests. ## 9. > split new_docker_build.sh into 2 files (one Dockerfile and one > new_docker_build.sh) > (originally: "separer le new_docker_build.sh en 2 fichier (un Dockerfile et > un new_docker_build.sh)") **Result:** extracted the embedded Dockerfile heredoc into a standalone `Dockerfile`; `--build-prebuilt-image` now builds it via `docker build -f Dockerfile` with an empty build context. ## 10. > remove everything with "OFF" and dependency, remove everything not build in > this branch **Result:** removed all build variables fixed to OFF and their dependent machinery; container cmake now passes only the flags that override CMake defaults (`-DBUILD_TESTING=ON -DBUILD_ARCGIS=OFF -DRELEASE_BUILD=ON -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=...`). ## 11. > copy rpmbuild to qt6-migrated-legatus and remove everything we don't need **Result:** copied the outer-repo `rpmbuild/` into the source tree (`rpmbuild/make_rpm_ubuntu26.py`), keeping only what the release flow needs; the branch is now self-contained. ## 12. > build rpm now inside qt6-migrated-leagtus > build rpm now inside qt6-migrated-legatus **Result:** the DEB packaging stage now runs the in-tree `rpmbuild/make_rpm_ubuntu26.py` (staging tar → in-tree rpmbuild → 5 DEBs → copy to `--package-output-dir`) instead of the outer-repo Jenkins builder. ## 13. > check that TetraIF is also building **Result:** found TetraIF was only compiled in the rpmbuild stage (its warnings were hidden); added its 5 targets (`CoPrtCnv`, `LogViewLogger`, `LogView`, `PrtCnvLib`, `PrtCnv`) to the branch's explicit build list and fixed the 12 warnings that TetraIF compilation then exposed: `LogViewModels.cpp` (11× deprecated `invalidateFilter()` → `begin/endFilterChange()`), `LogViewTelegramEdit.cpp` + `PrtCnvBroadcastMgr.cpp` (`-Wreorder`), `PrtCnvCentralThread.cpp` (`-Wswitch`), `PrtCnvMain.cpp` (`-Wunused-result` on `freopen`). ## 14. > how to set variable automatical if it is building with jenkins > "export MIGRATE_PIPELINE_ROOT="/home/"" **Result:** `new_docker_build.sh` now auto-derives `MIGRATE_PIPELINE_ROOT` from its own location (the script always lives at `/qt-migration-legatus/qt6-after/qt6-migrated-legatus`, so root = three levels up). Precedence: exported variable (Jenkins) → `.envrc` → derived path. Works in a fresh Jenkins checkout with no environment setup; `.envrc` is now optional. ## 15. > write all Prompt what we are doing in this session , write the prompt to > /home/nkana/release/qt6-migration-pipeline/prompts **Result:** this file. --- ## Final state (end of session) - Branch: `story/release-validation-scope`, last commits: - `1dd1e8635` Auto-derive MIGRATE_PIPELINE_ROOT in new_docker_build.sh - `52df1c8ae` Fix TetraIF build warnings - `23e694afc` Build the TetraIF targets in the release scope - `217bb54bc` Build the DEB packages with the in-tree rpmbuild script - `ba99b7460` Copy rpmbuild into the source tree with only what the release flow needs - (no `Co-Authored-By` trailers on any commit) - Verified full build (`scope-rebuild7.log`): **0 warnings**, all TetraIF targets built in the branch's own stage, ctest at baseline (80% pass, `nglcomp_test` Not Run pre-existing), 5 DEBs, runtime package = 50 entries incl. TetraIF binaries/libs. - Self-contained branch: `new_docker_build.sh` + `Dockerfile` + `rpmbuild/make_rpm_ubuntu26.py`.