Prune the source tree to the Release 2 build closure

Keep only what the Release 2 scope (46 targets) compiles and the build
pipeline needs, derived from the run-5 build.ninja closure (46 targets +
transitive deps) and a header scan resolved against the real -I roots of
the compile rules:

- 14133 tracked files removed (1.25 GB), incl. include/ArcGIS (1.03 GB),
  include/rti stubs (identical copies of the external RTI headers),
  out-of-scope Lts/Application, Lts/Viewer, Lts/Services/*, Lts/Tools
  generators, src/, tests/, specs/, translations/, external/
- kept: the 46 scope modules + their transitive service deps, codegen
  inputs (.xml, .grantlee), doxygen/ (configure_file at configure time),
  include/GeographicLib (libGeographicLib.so linked from the source tree),
  the 12 referenced include/ stub headers, pipeline files
  (new_docker_build_release2.sh, rpmbuild/, jenkins-ci-rme/, cmake/)
- 7 CMakeLists updated: drop add_subdirectory calls of the removed dirs
  (tests, translations, Lts/Plugins/ProjectDataManagement, qav, scripts,
  CommonUnitTestsPlaceholder, httq, LtsRestClient, LtsWebSocket,
  TopicEditorBase, ConnectDialog, StyleManager, Routing, DdsUnitTests,
  DdsUnitTestsPlaceholder, Light, Dark, Test, ExerciseManagement,
  ParticipantManagement, the 3 tools generators)

Result: 2157 tracked files (was 16290).
This commit is contained in:
berrux-dev committed 2026-11-13 23:33:32 +01:00
1 parent 2b1c3dc241
commit 7fc6f66649
14140 files changed
+8 -2803418

No files matched your search

@@ -1,178 +0,0 @@
# Z-Modul Integrationstest Report
**Datum:** 2026-09-17
**Build-Umgebung:** Docker (ubuntu:26.04, Qt6)
**Test-Framework:** Google Test (ctest)
**Status:** ✅ **ALLE TESTS BESTANDEN (100%)**
---
## Zusammenfassung
| Metrik | Wert |
|--------|------|
| Gesamtanzahl Tests | 35 |
| Bestanden | 35 ✅ |
| Fehlgeschlagen | 0 |
| Erfolgsquote | 100% |
| Gesamtdauer | ~0.75 Sekunden |
---
## Test-Suiten
### 1. ZApplicationFunctionality (20 Tests)
Testet die grundlegenden Anwendungsfunktionen mit Z-Modul-Bibliotheken.
| Test-ID | Testname | Beschreibung | Status |
|---------|----------|--------------|--------|
| 464 | LoggerInitialization | Initialisierung des NGLLogger | ✅ |
| 465 | LoggerMessageWriting | Schreiben von Log-Nachrichten | ✅ |
| 466 | DatabaseConnection | Datenbankverbindung mit NGLDB | ✅ |
| 467 | DatabaseQuery | Datenbankabfragen | ✅ |
| 468 | SettingsLoading | Einstellungen laden mit NGLSettings | ✅ |
| 469 | SettingsSaving | Einstellungen speichern | ✅ |
| 470 | TranslationLoading | Übersetzungen laden mit NGLTranslator | ✅ |
| 471 | TextTranslation | Textübersetzung | ✅ |
| 472 | DataCompression | Datenkompression mit NGLCompression | ✅ |
| 473 | DataDecompression | Datenkompression | ✅ |
| 474 | TCPServerStart | TCP-Server starten | ✅ |
| 475 | TCPClientConnection | TCP-Client-Verbindung | ✅ |
| 476 | SingleApplicationInstance | Single-Application-Instanz | ✅ |
| 477 | ApplicationInitialization | Anwendungsinitialisierung | ✅ |
| 478 | ApplicationExecution | Anwendungsausführung | ✅ |
| 479 | WMSInterfaceCommunication | WMS-Schnittstellen-Kommunikation | ✅ |
| 480 | FileSystemOperations | Dateioperationen | ✅ |
| 481 | PathConversion | Pfadkonvertierung | ✅ |
| 482 | WidgetCreation | Widget-Erstellung mit NGLWidgets | ✅ |
| 483 | CompleteApplicationWorkflow | Kompletter Anwendungs-Workflow | ✅ |
### 2. ZModuleIntegration (15 Tests)
Testet die Integration des Z-Moduls mit anderen migrierten Modulen.
| Test-ID | Testname | Beschreibung | Status |
|---------|----------|--------------|--------|
| 484 | NGLLoggerWithLtsServices | Logger mit LTS-Services | ✅ |
| 485 | NGLDBWithExerciseManagement | DB mit ExerciseManagement | ✅ |
| 486 | NGLDBWithOperatorManagement | DB mit OperatorManagement | ✅ |
| 487 | NGLToolsCrossModule | NGLTools cross-modular | ✅ |
| 488 | QtSingleApplicationWithGUI | QtSingleApplication mit GUI | ✅ |
| 489 | NGLApplicationBaseFunctionality | NGLApplication Basisfunktionalität | ✅ |
| 490 | NGLSettingsWithLtsServices | Settings mit LTS-Services | ✅ |
| 491 | NGLTranslatorIntegration | Translator-Integration | ✅ |
| 492 | NGLCompressionIntegration | Compression-Integration | ✅ |
| 493 | TCPServerWithLtsServices | TCP-Server mit LTS-Services | ✅ |
| 494 | WMSInterfaceIntegration | WMS-Schnittstellen-Integration | ✅ |
| 495 | NGLWidgetsWithGUIModules | NGLWidgets mit GUI-Modulen | ✅ |
| 496 | CrossModuleEnumUsage | Cross-modulare Enum-Nutzung | ✅ |
| 497 | BuildComponentFlags | Build-Component-Flags | ✅ |
| 498 | RTIDDSIntegration | RTI-DDS-Integration | ✅ |
---
## Build-Konfiguration
### Verwendete Skripte
- `new_docker_build.sh` mit `--integration-test` Option
- `docker_build.sh` für Basis-Build
### Build-Optionen
```bash
./new_docker_build.sh --integration-test --no-group1 --no-group3
```
### Umgebungsvariablen
```bash
BUILD_RTI=ON
BUILD_GRANTLEE=ON
BUILD_GROUP1=OFF # DDS/RTI-Cores
BUILD_GROUP2=ON # migration_tests
BUILD_GROUP3=OFF # Anwendung
RUN_CTEST=ON
INTEGRATION_TEST=ON
```
### Getestete Bibliotheken
- NGLLogger
- NGLDB
- NGLTools
- NGLSettings
- NGLTranslator
- NGLCompression
- TCPServer
- NGLApplication
- QtSingleApplication
- WMS_JSON_DS
- NGLWidgets
---
## Test-Implementierung
### Test-Dateien
1. **tests/test_z_module_integration.cpp** (15 Tests)
- Integration mit anderen Modulen
- Cross-modulare Funktionalität
- Build-Component-Validierung
2. **tests/test_z_application_functionality.cpp** (20 Tests)
- Anwendungsfunktionalität
- Bibliotheks-APIs
- End-to-End-Workflows
### Test-Harness
- Verwendet existierenden `migration_tests` Target
- Google Test Framework
- CTest für Test-Ausführung
- Filter: `ctest -R "test_z_"`
---
## Ergebnisse im Kontext
### Gesamter Test-Lauf
```
93% tests passed, 36 tests failed out of 498
```
**Analyse:**
- **Z-Modul:** 35/35 bestanden (100%) ✅
- **Andere Module:** 427/463 bestanden (92%)
- **Fehlgeschlagene Tests:** 36 Grantlee-bezogene Tests (nicht Z-Modul relevant)
### Z-Modul Spezifisch
```
Tests #464-#498: Alle bestanden ✅
```
---
## Validierungskriterien
| Kriterium | Status |
|-----------|--------|
| Z-Modul kompiliert | ✅ |
| Integration mit anderen Modulen | ✅ |
| Anwendungsfunktionen arbeiten | ✅ |
| Alle Tests bestanden | ✅ |
| Keine Linker-Fehler | ✅ |
| Keine Runtime-Fehler | ✅ |
---
## Fazit
Die Integrationstests bestätigen die erfolgreiche Qt6-Migration des Z-Moduls:
1. ✅ **Alle 35 Tests bestanden** – Keine Fehler in Z-Modul-Tests
2. ✅ **Integration validiert** – Z-Modul arbeitet korrekt mit anderen migrierten Modulen
3. ✅ **Anwendungsfunktionen verifiziert** – Alle Bibliotheken funktionieren wie erwartet
4. ✅ **Build-Skript erweitert** – `--integration-test` Option verfügbar
Das Z-Modul ist **produktionsreif** für den Einsatz in Qt6-Umgebungen.
---
*Report erstellt nach erfolgreichem Integrationstest-Lauf am 2026-09-17*
@@ -1,305 +0,0 @@
# Qt6 Module Z Migration Report
**Datum:** 2026-09-17 (aktualisiert mit Integrationstests)
**Bearbeiter:** Copilot CLI
**Branch:** `feature/migrate-module-z-only`
**Status:** ✅ Abgeschlossen, validiert und Integrationstests bestanden
---
## Executive Summary
Das Z-Modul wurde erfolgreich von Qt5 auf Qt6 migriert. Alle 15 Bibliothek-Targets kompilieren erfolgreich im Qt6-Umfeld (Ubuntu 26.04 mit Qt6-Paketen). Die Validierung erfolgte mittels Docker-Build mit `new_docker_build.sh`.
---
## Migrationsumfang
### Betroffene Komponenten
```
Z/src/
├── QtSingleApplication/ → qtsingleapplication, qtsinglecoreapplication
├── nglapplication/ → nglapplication, nglcoreapplication
├── nglsingleapplication/ → nglsingleapplication, nglsinglecoreapplication
├── nglguiapplication/ → nglguiapplication
├── ngltools/ → ngltools
├── NGLLogger/ → NGLLogger
├── nglsettings/ → nglsettings
├── ngltranslator/ → ngltranslator
├── ngldb/ → ngldb
├── nglcompression/ → nglcompression
├── nglwidgets/ → nglwidgets (ohne PDF-Support)
├── tcpserver/ → (in Qt6-Struktur enthalten)
└── wms_json_ds/ → (in Qt6-Struktur enthalten)
```
### Nicht migriert (bereits entfernt)
- `qsql_informix/` – Wurde in Commit `92ad7d468` entfernt (Informix-Treiber nicht benötigt)
---
## Durchgeführte Änderungen
### 1. CMake-Konfiguration bereinigt
**Datei:** `Z/src/CMakeLists.txt` (Zeile 25)
```diff
- IF(QT5_FOUND)
- # Legacy Qt5 fallback
- ENDIF()
```
**Begründung:** Qt5-Referenzen im Qt6-Zielbaum entfernt.
---
### 2. Fehlende Enum-Header-Stub-Dateien
**Problem:** CMake-Konfiguration fehlgeschlagen wegen fehlender DDS/RTI-Codegen-Stub-Header.
**Datei:** `include/OperatorManagement/opm_enums.hpp.stub` (neu erstellt)
```cpp
// Stub header for opm_enums.hpp
// Generated by DDS/RTI codegen - placeholder for migration
#ifndef OPM_ENUMS_HPP
#define OPM_ENUMS_HPP
namespace OperatorManagement {
// Enum definitions stub
}
#endif
```
**Dateien:** CMakeLists.txt in drei Services korrigiert
- `Lts/Services/ExerciseManagement/CMakeLists.txt`
- `Lts/Services/FileManagement/CMakeLists.txt`
- `Lts/Services/OperatorManagement/CMakeLists.txt`
```diff
- IF(BUILD_RTI)
- CONFIGURE_FILE(...)
- ENDIF()
+ CONFIGURE_FILE(...) # Immer ausführen, nicht nur bei BUILD_RTI
```
**Begründung:** Stub-Header müssen unabhängig von BUILD_RTI verfügbar sein.
---
### 3. Build-Skript korrigiert
**Datei:** `new_docker_build.sh` (Zeile 253)
```diff
- GROUP3_TARGETS="... SV ..."
+ GROUP3_TARGETS="..." # "SV" ist Build-Component-Flag, kein Target
```
**Begründung:** "SV" ist ein NGL_ADD_LIBRARY2 Build-Component-Flag, kein eigenständiges Target.
---
### 4. PIC-Problem behoben
**Datei:** `Z/src/QtSingleApplication/CMakeLists.txt`
```cmake
SET_TARGET_PROPERTIES(qtsa_common PROPERTIES POSITION_INDEPENDENT_CODE ON)
```
**Problem:** Statische Bibliothek `qtsa_common` wurde ohne `-fPIC` kompiliert und konnte nicht in Shared Library `qtsingleapplication.so` gelinkt werden.
**Fehlermeldung (behoben):**
```
relocation R_X86_64_PC32 against symbol ... requires -fPIC when making shared object
```
---
### 5. Poppler-Qt6 Abhängigkeit konditionalisiert
**Datei:** `Z/src/nglwidgets/CMakeLists.txt`
```cmake
IF(HAVE_POPPLER_QT6)
SET(nglwidgets_SOURCES
${nglwidgets_SOURCES}
nglpdfdocument.cpp
nglpdfpage.cpp
nglpdfwidget.cpp
)
ENDIF()
```
**Problem:** PDF-Quelldateien wurden auch kompiliert, wenn Poppler-Qt6 nicht verfügbar war (`HAVE_POPPLER_QT6=FALSE`), was zu undefinierten Typen führte (`m_doc`, `m_rotation`, `m_ranges`).
**Lösung:** PDF-Quelldateien nur bei verfügbarem Poppler-Qt6 kompilieren. Die Bibliothek baut ohne PDF-Support, wenn Poppler fehlt.
---
## Validierung
### Build-Umgebung
- **Docker-Image:** `ubuntu:26.04` (bzw. `qt-migration-builder:latest`)
- **Qt-Version:** Qt6 (aus apt-Paketen)
- **Build-Skript:** `new_docker_build.sh`
- **Optionen:** `BUILD_RTI=ON --no-group1 --no-group2`
### Build-Ergebnis
```
Exit Code: 0 ✅
```
### Erfolgreich gebaute Targets (15)
| Target | Status |
|--------|--------|
| qtsa_common | ✅ Built |
| qtsingleapplication | ✅ Built |
| qtsinglecoreapplication | ✅ Built |
| nglsingleapplication | ✅ Built |
| nglsinglecoreapplication | ✅ Built |
| ngltools | ✅ Built |
| NGLLogger | ✅ Built |
| nglsettings | ✅ Built |
| ngltranslator | ✅ Built |
| nglwidgets | ✅ Built (ohne PDF) |
| nglapplication | ✅ Built |
| nglcoreapplication | ✅ Built |
| ngldb | ✅ Built |
| nglguiapplication | ✅ Built |
| nglcompression | ✅ Built |
### CTest-Status (Integrationstests)
- **Datum:** 2026-09-17
- **Option:** `--integration-test`
- **Ergebnis:** ✅ **35/35 Z-Modul-Tests bestanden (100%)**
#### Test-Übersicht
| Test-Suite | Tests | Bestanden | Status |
|------------|-------|-----------|--------|
| ZApplicationFunctionality | 20 | 20 | ✅ 100% |
| ZModuleIntegration | 15 | 15 | ✅ 100% |
| **Gesamt (Z-Modul)** | **35** | **35** | **✅ 100%** |
#### Detaillierte Testergebnisse
**ZApplicationFunctionality (20 Tests)**
| # | Test | Status | Dauer |
|---|------|--------|-------|
| 464 | LoggerInitialization | ✅ Passed | 0.02 sec |
| 465 | LoggerMessageWriting | ✅ Passed | 0.02 sec |
| 466 | DatabaseConnection | ✅ Passed | 0.02 sec |
| 467 | DatabaseQuery | ✅ Passed | 0.02 sec |
| 468 | SettingsLoading | ✅ Passed | 0.03 sec |
| 469 | SettingsSaving | ✅ Passed | 0.02 sec |
| 470 | TranslationLoading | ✅ Passed | 0.02 sec |
| 471 | TextTranslation | ✅ Passed | 0.03 sec |
| 472 | DataCompression | ✅ Passed | 0.03 sec |
| 473 | DataDecompression | ✅ Passed | 0.02 sec |
| 474 | TCPServerStart | ✅ Passed | 0.02 sec |
| 475 | TCPClientConnection | ✅ Passed | 0.02 sec |
| 476 | SingleApplicationInstance | ✅ Passed | 0.02 sec |
| 477 | ApplicationInitialization | ✅ Passed | 0.02 sec |
| 478 | ApplicationExecution | ✅ Passed | 0.02 sec |
| 479 | WMSInterfaceCommunication | ✅ Passed | 0.02 sec |
| 480 | FileSystemOperations | ✅ Passed | 0.02 sec |
| 481 | PathConversion | ✅ Passed | 0.03 sec |
| 482 | WidgetCreation | ✅ Passed | 0.02 sec |
| 483 | CompleteApplicationWorkflow | ✅ Passed | 0.02 sec |
**ZModuleIntegration (15 Tests)**
| # | Test | Status | Dauer |
|---|------|--------|-------|
| 484 | NGLLoggerWithLtsServices | ✅ Passed | 0.02 sec |
| 485 | NGLDBWithExerciseManagement | ✅ Passed | 0.02 sec |
| 486 | NGLDBWithOperatorManagement | ✅ Passed | 0.02 sec |
| 487 | NGLToolsCrossModule | ✅ Passed | 0.02 sec |
| 488 | QtSingleApplicationWithGUI | ✅ Passed | 0.03 sec |
| 489 | NGLApplicationBaseFunctionality | ✅ Passed | 0.02 sec |
| 490 | NGLSettingsWithLtsServices | ✅ Passed | 0.02 sec |
| 491 | NGLTranslatorIntegration | ✅ Passed | 0.02 sec |
| 492 | NGLCompressionIntegration | ✅ Passed | 0.02 sec |
| 493 | TCPServerWithLtsServices | ✅ Passed | 0.02 sec |
| 494 | WMSInterfaceIntegration | ✅ Passed | 0.02 sec |
| 495 | NGLWidgetsWithGUIModules | ✅ Passed | 0.02 sec |
| 496 | CrossModuleEnumUsage | ✅ Passed | 0.03 sec |
| 497 | BuildComponentFlags | ✅ Passed | 0.03 sec |
| 498 | RTIDDSIntegration | ✅ Passed | 0.03 sec |
**Gesamter Build-Status:**
```
93% tests passed, 36 tests failed out of 498
```
*Hinweis: Die 36 fehlgeschlagenen Tests betreffen andere Module (Grantlee-Tests), nicht das Z-Modul.*
---
## Qt5-Deprecation-Check
| API | Status |
|-----|--------|
| `QRegExp` | ✅ Nicht verwendet (bereits `QRegularExpression`) |
| `QTextCodec` | ✅ Nicht verwendet |
| `QDesktopWidget` | ✅ Nicht verwendet |
| `QApplication::desktop()` | ✅ Nur in Kommentar referenziert |
**Ergebnis:** Z-Modul ist frei von Qt5-spezifischen deprecated APIs.
---
## Bekannte Einschränkungen
### nglwidgets ohne PDF-Support
- **Ursache:** Poppler-Qt6 nicht in Docker-Umgebung installiert
- **Auswirkung:** PDF-Dateien können nicht angezeigt/verarbeitet werden
- **Lösung:** Poppler-Qt6-Paket installieren, wenn PDF-Support benötigt wird
```bash
apt-get install libpoppler-qt6-dev
```
---
## Geänderte Dateien (Commit-History)
| Datei | Änderung |
|-------|----------|
| `Z/src/CMakeLists.txt` | QT5_FOUND-Fallback entfernt |
| `Z/src/QtSingleApplication/CMakeLists.txt` | PIC-Property hinzugefügt |
| `Z/src/nglwidgets/CMakeLists.txt` | PDF-Sources konditionalisiert |
| `Lts/Services/ExerciseManagement/CMakeLists.txt` | CONFIGURE_FILE verschoben |
| `Lts/Services/FileManagement/CMakeLists.txt` | CONFIGURE_FILE verschoben |
| `Lts/Services/OperatorManagement/CMakeLists.txt` | CONFIGURE_FILE hinzugefügt |
| `include/OperatorManagement/opm_enums.hpp.stub` | Neu erstellt |
| `new_docker_build.sh` | Ungültiges Target "SV" entfernt |
| `docker_build.sh` | Z-Module-Targets hinzugefügt |
---
## Empfehlungen für weitere Schritte
1. **Poppler-Qt6-Support testen** (optional)
- Poppler-Qt6 im Docker-Image installieren
- nglwidgets mit PDF-Support bauen und testen
2. **Dokumentation aktualisieren**
- Migrationsstatus im Projekt-Wiki dokumentieren
- Build-Anleitungen für Entwickler aktualisieren
3. **Weitere Module migrieren**
- Z-Modul als Referenz für andere Module verwenden
- Migration weiterer Module gemäß Migrations-Roadmap
---
## Fazit
Die Qt6-Migration des Z-Moduls ist **erfolgreich abgeschlossen**. Alle 15 Bibliothek-Targets kompilieren ohne Fehler. Die Integrationstests bestätigen die Funktionsfähigkeit:
- ✅ **35/35 Z-Modul-Tests bestanden (100%)**
- ✅ Integration mit anderen migrierten Modulen validiert
- ✅ Anwendungsfunktionen mit Z-Modul-Bibliotheken verifiziert
- ✅ `--integration-test` Option in `new_docker_build.sh` implementiert
**Nächster Meilenstein:** Migration weiterer Module gemäß Migrations-Roadmap.
---
*Report generiert am 2026-09-17 nach erfolgreicher Build-Validierung*
*Integrationstests hinzugefügt am 2026-09-17 – 35/35 Tests bestanden*