198 lines
7.5 KiB
Markdown
198 lines
7.5 KiB
Markdown
# 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`.
|