torstenandCopilot 78a81a95b6 feat: Add LCOV coverage support for Jenkins CI
- Add ENABLE_COVERAGE CMake option with gcov flags
- Create collect-coverage.sh script for LCOV workflow
- Add Qt6 test files with QTest framework
- Update Jenkinsfile with Coverage stage (main/master/coverage.*)
- Update CI Docker image with lcov and genhtml packages
- Add .gitignore entries for coverage artifacts
- Add COVERAGE.md documentation

Coverage workflow:
1. Configure with -DENABLE_COVERAGE=ON
2. Build and run tests to generate .gcda/.gcno files
3. Collect coverage with lcov
4. Filter out Qt/system libraries
5. Generate HTML report and lcov.info for Jenkins

Jenkins publishes coverage/lcov.info using Coverage Plugin.
Coverage stage only runs on protected branches.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 7783c7698334
Entire-Checkpoint: 70341e29996b
Signed-off-by: twi-devel <torsten.wierschin@life-maps.com>
2026-10-22 18:42:43 +02:00
2026-08-12 16:48:53 +02:00
2026-08-05 15:32:06 +02:00
2026-08-12 17:26:04 +02:00
2026-08-05 13:24:48 +00:00
2026-08-05 15:45:12 +02:00

Qt Migration Copilot Demo

Dieses Repository zeigt einen kleinen, reproduzierbaren Benchmark für die Migration eines alten Qt5/C++11-Projekts nach Qt6/C++23 mit Copilot CLI.

Inhalt

  • qt5-before/
    Ausgangszustand mit absichtlich veralteten Qt5-APIs:

    • QRegExp
    • QDesktopWidget
    • QTextCodec
    • alte SIGNAL/SLOT-Syntax
    • getrennte Qt5::Core, Qt5::Gui, Qt5::Widgets
  • qt6-after/
    Erwarteter oder referenzierter Zielzustand nach der Migration:

    • QRegularExpression
    • QScreen
    • modernes UTF-8-/String-Handling
    • moderne Connect-Syntax
    • Qt6 + C++23
  • Dockerfile.ci
    Vorgebautes CI-Image für Jenkins.

  • Jenkinsfile
    Führt Configure, Build und Test im vorgebauten Docker-Image aus.

  • scripts/
    Hilfsskripte für Entire CLI und Copilot CLI.

Ziel

Das Repo dient als:

  • Demo für Qt5→Qt6-Migration
  • Benchmark für Copilot CLI / Agenten
  • reproduzierbares Beispiel mit Entire-Checkpoints
  • Referenz für Jenkins + Docker CI

Empfohlener Workflow

  1. In qt5-before/ starten
  2. Entire für Copilot CLI aktivieren
  3. Baseline-Checkpoint committen
  4. Copilot-Migration ausführen
  5. Ergebnis committen
  6. Mit qt6-after/ vergleichen

CI-Image bauen

docker build -t lifemaps/ci-cpp:latest -f Dockerfile.ci .
docker push lifemaps/ci-cpp:latest

Entire + Copilot

Beispiel:

./scripts/run-entire-copilot-migration-with-optional-rewind-resume.sh qt5-before/qt5-legacy-migration-benchmark

Hinweis

Dieses Repository ist absichtlich klein gehalten, damit:

  • Migrationsänderungen gut sichtbar bleiben
  • Copilot-Antworten vergleichbar sind
  • CI-Läufe schnell reproduzierbar sind
S
Description
Qt Migration Copilot Demo
Readme MIT
4.6 MiB
0 Stars 1 Watchers 0 Forks
Languages
Shell 53.2%
C++ 20.1%
Python 18.4%
CMake 8.3%