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

7.5 KiB
Raw Blame History

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.