Files
qt6-migration-pipeline/prompts/2026-10-14-release-validation-scope.md
T
2026-10-14 10:28:02 +02:00

198 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`.