Release Validation Prompt

This commit is contained in:
berrux-dev committed 2026-10-14 10:28:02 +02:00
1 parent 8b571031f4
commit 037dfe9901
1 file changed
+197
@@ -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 <noreply@anthropic.com>"
> remove this line by all the commit message "Co-Authored-By: Claude Code
> <noreply@anthropic.com>"
**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
`<root>/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`.