diff --git a/prompts/2026-10-14-release-validation-scope.md b/prompts/2026-10-14-release-validation-scope.md new file mode 100644 index 000000000..4828155d2 --- /dev/null +++ b/prompts/2026-10-14-release-validation-scope.md @@ -0,0 +1,197 @@ +# 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`.