425 lines
19 KiB
Markdown
425 lines
19 KiB
Markdown
# Scope Audit for Qt6-Migrated Modules First Release
|
|
|
|
## 1. Repository and Branch Status
|
|
|
|
**Repository:** `qt-migration-legatus/qt6-after/qt6-migrated-legatus`
|
|
**Branch:** `story/release-at-16-oct-2026`
|
|
**Working Tree:** `/home/torsten/sandbox/qt6-migration-pipeline/qt-migration-legatus/qt6-after/qt6-migrated-legatus`
|
|
|
|
---
|
|
|
|
## 2. Complete Module Inventory (R)
|
|
|
|
### 2.1 Top-Level Modules
|
|
|
|
| Module | Path | Description |
|
|
|--------|------|-------------|
|
|
| TetraIF | `TetraIF/` | TETRA interface modules (CoPrtCnv, LogView, PrtCnv) |
|
|
| Z | `Z/` | Z module with src subdirectory |
|
|
| Lts | `Lts/` | LTS application framework |
|
|
| cmake | `cmake/` | CMake configuration files |
|
|
| doxygen | `doxygen/` | Doxygen documentation configuration |
|
|
| external | `external/` | External dependencies |
|
|
| include | `include/` | Header files for various modules |
|
|
| specs | `specs/` | Specification files |
|
|
| src | `src/` | Source files (AlarmManagement, ParticipantManagement, Viewer) |
|
|
| tests | `tests/` | Test files |
|
|
| translations | `translations/` | Translation files |
|
|
|
|
### 2.2 Lts Submodules
|
|
|
|
| Module | Path | Description |
|
|
|--------|------|-------------|
|
|
| Application | `Lts/Application/` | Application framework |
|
|
| Common | `Lts/Common/` | Common LTS utilities and libraries |
|
|
| DDS | `Lts/DDS/` | DDS (Data Distribution Service) integration |
|
|
| Plugins | `Lts/Plugins/` | Plugin modules |
|
|
| Projects | `Lts/Projects/` | Project management modules |
|
|
| Proxies | `Lts/Proxies/` | Proxy modules for external systems |
|
|
| Services | `Lts/Services/` | Service modules |
|
|
| Tools | `Lts/Tools/` | Development and runtime tools |
|
|
| Viewer | `Lts/Viewer/` | Viewer components |
|
|
|
|
### 2.3 Lts/Common Submodules
|
|
|
|
| Module | Path |
|
|
|--------|------|
|
|
| CodeGen | `Lts/Common/CodeGen/` |
|
|
| CommonUnitTestsPlaceholder | `Lts/Common/CommonUnitTestsPlaceholder/` |
|
|
| LtsAppDescriptor | `Lts/Common/LtsAppDescriptor/` |
|
|
| LtsAppManager | `Lts/Common/LtsAppManager/` |
|
|
| LtsBotan | `Lts/Common/LtsBotan/` |
|
|
| LtsCommandLineParser | `Lts/Common/LtsCommandLineParser/` |
|
|
| LtsCoordTrans | `Lts/Common/LtsCoordTrans/` |
|
|
| LtsCoordinate | `Lts/Common/LtsCoordinate/` |
|
|
| LtsElevation | `Lts/Common/LtsElevation/` |
|
|
| LtsLicence | `Lts/Common/LtsLicence/` |
|
|
| LtsLogin | `Lts/Common/LtsLogin/` |
|
|
| LtsMultiMonitor | `Lts/Common/LtsMultiMonitor/` |
|
|
| LtsNotification | `Lts/Common/LtsNotification/` |
|
|
| LtsPluginManager | `Lts/Common/LtsPluginManager/` |
|
|
| LtsPrinting | `Lts/Common/LtsPrinting/` |
|
|
| LtsProjectionWorkstation | `Lts/Common/LtsProjectionWorkstation/` |
|
|
| LtsRestClient | `Lts/Common/LtsRestClient/` |
|
|
| LtsScriptTimeline | `Lts/Common/LtsScriptTimeline/` |
|
|
| LtsSerialPortQuerry | `Lts/Common/LtsSerialPortQuerry/` |
|
|
| LtsSession | `Lts/Common/LtsSession/` |
|
|
| LtsTimeline | `Lts/Common/LtsTimeline/` |
|
|
| LtsTimelineClassic | `Lts/Common/LtsTimelineClassic/` |
|
|
| LtsUtils | `Lts/Common/LtsUtils/` |
|
|
| LtsVirtualKeyboard | `Lts/Common/LtsVirtualKeyboard/` |
|
|
| LtsWebSocket | `Lts/Common/LtsWebSocket/` |
|
|
| LtsWidgets | `Lts/Common/LtsWidgets/` |
|
|
| PluginInterfaces | `Lts/Common/PluginInterfaces/` |
|
|
| ProjectConfig | `Lts/Common/ProjectConfig/` |
|
|
| TopicEditorBase | `Lts/Common/TopicEditorBase/` |
|
|
| httq | `Lts/Common/httq/` |
|
|
|
|
### 2.4 Lts/Proxies Submodules
|
|
|
|
| Module | Path |
|
|
|--------|------|
|
|
| Buildings | `Lts/Proxies/Buildings/` |
|
|
| CombatNetRadio | `Lts/Proxies/CombatNetRadio/` |
|
|
| ComponentMonitor | `Lts/Proxies/ComponentMonitor/` |
|
|
| DifferentialGPS | `Lts/Proxies/DifferentialGPS/` |
|
|
| FeedGeoJson | `Lts/Proxies/FeedGeoJson/` |
|
|
| GuezNasat | `Lts/Proxies/GuezNasat/` |
|
|
| HighLevelArchitecture | `Lts/Proxies/HighLevelArchitecture/` |
|
|
| TrainingAreaBase | `Lts/Proxies/TrainingAreaBase/` |
|
|
| TrainingAreaBaseOC | `Lts/Proxies/TrainingAreaBaseOC/` |
|
|
| WarehouseManagement | `Lts/Proxies/WarehouseManagement/` |
|
|
| WirelessLocationSystem | `Lts/Proxies/WirelessLocationSystem/` |
|
|
|
|
### 2.5 Include Directory Modules
|
|
|
|
| Module | Path |
|
|
|--------|------|
|
|
| AlarmManagement | `include/AlarmManagement/` |
|
|
| ArcGIS | `include/ArcGIS/` |
|
|
| AreaEffectSimulation | `include/AreaEffectSimulation/` |
|
|
| AssetManagement | `include/AssetManagement/` |
|
|
| AudioVideoManagement | `include/AudioVideoManagement/` |
|
|
| Core | `include/Core/` |
|
|
| ExerciseEventManagement | `include/ExerciseEventManagement/` |
|
|
| ExerciseManagement | `include/ExerciseManagement/` |
|
|
| GeographicLib | `include/GeographicLib/` |
|
|
| GuezNasat | `include/GuezNasat/` |
|
|
| InfrastructureManagement | `include/InfrastructureManagement/` |
|
|
| Lts | `include/Lts/` |
|
|
| LtsProjectionWorkstation | `include/LtsProjectionWorkstation/` |
|
|
| LtsScriptTimeline | `include/LtsScriptTimeline/` |
|
|
| LtsSession | `include/LtsSession/` |
|
|
| LtsUtilsGuiDds | `include/LtsUtilsGuiDds/` |
|
|
| MarkerManagement | `include/MarkerManagement/` |
|
|
| NGLLogger | `include/NGLLogger/` |
|
|
| NotificationManagement | `include/NotificationManagement/` |
|
|
| OperatorManagement | `include/OperatorManagement/` |
|
|
| ParticipantManagement | `include/ParticipantManagement/` |
|
|
| ProjectDataManagement | `include/ProjectDataManagement/` |
|
|
| ReportManagement | `include/ReportManagement/` |
|
|
| Services | `include/Services/` |
|
|
| SituationReplay | `include/SituationReplay/` |
|
|
| TopicEditorBase | `include/TopicEditorBase/` |
|
|
| Viewer | `include/Viewer/` |
|
|
| grantlee | `include/grantlee/` |
|
|
| nglapplication | `include/nglapplication/` |
|
|
| poppler | `include/poppler/` |
|
|
| rti | `include/rti/` |
|
|
|
|
---
|
|
|
|
## 3. Released Modules (M)
|
|
|
|
**M = {TetraIF, Z/src, Lts/Common}**
|
|
|
|
| Module | Path | Justification |
|
|
|--------|------|---------------|
|
|
| TetraIF | `TetraIF/` | Explicitly listed in prompt as released module |
|
|
| Z/src | `Z/src/` | Explicitly listed in prompt as released module |
|
|
| Lts/Common | `Lts/Common/` | Explicitly listed in prompt as released module |
|
|
|
|
---
|
|
|
|
## 4. Release Scope (S)
|
|
|
|
**S = M + {Lts/Proxies/TrainingAreaBase}**
|
|
|
|
### 4.1 Modules in S
|
|
|
|
| Module | Path | Type |
|
|
|--------|------|------|
|
|
| TetraIF | `TetraIF/` | M (explicitly released) |
|
|
| Z/src | `Z/src/` | M (explicitly released) |
|
|
| Lts/Common | `Lts/Common/` | M (explicitly released) |
|
|
| Lts/Proxies/TrainingAreaBase | `Lts/Proxies/TrainingAreaBase/` | S\M (required dependency) |
|
|
|
|
### 4.2 Dependencies in S\M
|
|
|
|
| Dependency | Required By | Reason | File Reference |
|
|
|------------|-------------|--------|----------------|
|
|
| Lts/Proxies/TrainingAreaBase | TetraIF/CoPrtCnv | Provides `tabTelegrams` library required by CoPrtCnv module | `Lts/CMakeLists.txt:17-21`: "TrainingAreaBase provides tabTelegrams library needed by TetraIF/CoPrtCnv" |
|
|
|
|
**Justification:** The TrainingAreaBase module is the ONLY module from R\M that is included in S because it provides the `tabTelegrams` library that is explicitly required by the TetraIF/CoPrtCnv module. This is documented in `Lts/CMakeLists.txt` lines 17-21.
|
|
|
|
---
|
|
|
|
## 5. Excluded Modules (R\S)
|
|
|
|
### 5.1 Excluded Lts Submodules
|
|
|
|
| Module | Path | Reason for Exclusion |
|
|
|--------|------|---------------------|
|
|
| Lts/Application | `Lts/Application/` | Not in M, not a required dependency |
|
|
| Lts/DDS | `Lts/DDS/` | DDS-dependent, explicitly excluded per BUILD_RTI=OFF |
|
|
| Lts/Plugins | `Lts/Plugins/` | Not in M, not a required dependency |
|
|
| Lts/Projects | `Lts/Projects/` | Not in M, not a required dependency |
|
|
| Lts/Proxies/Buildings | `Lts/Proxies/Buildings/` | Not in M, not a required dependency |
|
|
| Lts/Proxies/CombatNetRadio | `Lts/Proxies/CombatNetRadio/` | Not in M, not a required dependency |
|
|
| Lts/Proxies/ComponentMonitor | `Lts/Proxies/ComponentMonitor/` | Not in M, not a required dependency |
|
|
| Lts/Proxies/DifferentialGPS | `Lts/Proxies/DifferentialGPS/` | Not in M, not a required dependency |
|
|
| Lts/Proxies/FeedGeoJson | `Lts/Proxies/FeedGeoJson/` | Not in M, not a required dependency |
|
|
| Lts/Proxies/GuezNasat | `Lts/Proxies/GuezNasat/` | Not in M, not a required dependency |
|
|
| Lts/Proxies/HighLevelArchitecture | `Lts/Proxies/HighLevelArchitecture/` | Not in M, not a required dependency |
|
|
| Lts/Proxies/TrainingAreaBaseOC | `Lts/Proxies/TrainingAreaBaseOC/` | Not in M, not a required dependency |
|
|
| Lts/Proxies/WarehouseManagement | `Lts/Proxies/WarehouseManagement/` | Not in M, not a required dependency |
|
|
| Lts/Proxies/WirelessLocationSystem | `Lts/Proxies/WirelessLocationSystem/` | Not in M, not a required dependency |
|
|
| Lts/Services | `Lts/Services/` | Not in M, not a required dependency |
|
|
| Lts/Tools | `Lts/Tools/` | Not in M, not a required dependency |
|
|
| Lts/Viewer | `Lts/Viewer/` | Not in M, not a required dependency |
|
|
|
|
### 5.2 Excluded Top-Level Modules
|
|
|
|
| Module | Path | Reason for Exclusion |
|
|
|--------|------|---------------------|
|
|
| src/AlarmManagement | `src/AlarmManagement/` | Not in M, not a required dependency |
|
|
| src/ParticipantManagement | `src/ParticipantManagement/` | Not in M, not a required dependency |
|
|
| src/Viewer | `src/Viewer/` | Not in M, not a required dependency |
|
|
|
|
### 5.3 Excluded Include Modules
|
|
|
|
All include modules are header-only support files. The following are excluded from runtime/sources packages as they belong to R\S modules:
|
|
|
|
| Module | Path | Reason for Exclusion |
|
|
|--------|------|---------------------|
|
|
| include/AlarmManagement | `include/AlarmManagement/` | Belongs to excluded src/AlarmManagement |
|
|
| include/ArcGIS | `include/ArcGIS/` | Not in M, BUILD_ARCGIS=OFF in release |
|
|
| include/AreaEffectSimulation | `include/AreaEffectSimulation/` | Not in M, not a required dependency |
|
|
| include/AssetManagement | `include/AssetManagement/` | Not in M, not a required dependency |
|
|
| include/AudioVideoManagement | `include/AudioVideoManagement/` | Not in M, not a required dependency |
|
|
| include/ExerciseEventManagement | `include/ExerciseEventManagement/` | Not in M, not a required dependency |
|
|
| include/ExerciseManagement | `include/ExerciseManagement/` | Not in M, not a required dependency |
|
|
| include/GuezNasat | `include/GuezNasat/` | Not in M, not a required dependency |
|
|
| include/InfrastructureManagement | `include/InfrastructureManagement/` | Not in M, not a required dependency |
|
|
| include/MarkerManagement | `include/MarkerManagement/` | Not in M, not a required dependency |
|
|
| include/NotificationManagement | `include/NotificationManagement/` | Not in M, not a required dependency |
|
|
| include/OperatorManagement | `include/OperatorManagement/` | Not in M, not a required dependency |
|
|
| include/ParticipantManagement | `include/ParticipantManagement/` | Belongs to excluded src/ParticipantManagement |
|
|
| include/ProjectDataManagement | `include/ProjectDataManagement/` | Not in M, not a required dependency |
|
|
| include/ReportManagement | `include/ReportManagement/` | Not in M, not a required dependency |
|
|
| include/SituationReplay | `include/SituationReplay/` | Not in M, not a required dependency |
|
|
| include/Viewer | `include/Viewer/` | Belongs to excluded src/Viewer |
|
|
| include/grantlee | `include/grantlee/` | External dependency, not in M |
|
|
| include/nglapplication | `include/nglapplication/` | External dependency, not in M |
|
|
| include/poppler | `include/poppler/` | External dependency, not in M |
|
|
| include/rti | `include/rti/` | DDS/RTI dependency, excluded with BUILD_RTI=OFF |
|
|
|
|
**Note:** The following include directories ARE included as they support M modules:
|
|
- `include/Core/` - Core headers used by M modules
|
|
- `include/GeographicLib/` - Required by Z/src module
|
|
- `include/Lts/` - Lts Common headers
|
|
- `include/LtsProjectionWorkstation/` - Used by Lts/Common
|
|
- `include/LtsScriptTimeline/` - Part of Lts/Common
|
|
- `include/LtsSession/` - Part of Lts/Common
|
|
- `include/NGLLogger/` - Required by TetraIF/LogViewLogger
|
|
- `include/TopicEditorBase/` - Part of Lts/Common
|
|
|
|
---
|
|
|
|
## 6. DDS File Exclusions
|
|
|
|
Per the requirement to exclude DDS-dependent files even within allowed directories, the following patterns are excluded via `is_dds_file()` filter:
|
|
|
|
| Pattern | Example Files | Location |
|
|
|---------|---------------|----------|
|
|
| `*dds*` (case-insensitive) | `lts_session_data_dds.cpp`, `lts_session_data_dds.h` | `Lts/Common/LtsSession/` |
|
|
| `*Dds*` directories | `LtsUtilsGuiDds/` | `Lts/Common/` |
|
|
| `*DDS*` directories | Any DDS-named directories | Throughout source tree |
|
|
|
|
**Implementation:** `is_dds_file()` function in `rpmbuild/make_rpm_ubuntu26.py` returns `True` for any path containing "dds" (case-insensitive), causing these files to be excluded from the sources package.
|
|
|
|
---
|
|
|
|
## 7. CTest Inclusion
|
|
|
|
Per prompt section 1 (Entwickler- und Weiterentwicklungsrelease), CTests are explicitly included:
|
|
|
|
| Package | Content | Source |
|
|
|---------|---------|--------|
|
|
| qt6-release-ctest-runtime | Test executables from `build/bin/` and `build4/bin/` | Built from tests in M and S\M |
|
|
| qt6-release-ctest-sources | C++ test sources from `tests/` directory | Test source files for M and S\M modules |
|
|
|
|
**Test executables are located in:**
|
|
- `build/bin/` - Primary test executables
|
|
- `build4/bin/` - Secondary test executables
|
|
|
|
**Test sources are located in:**
|
|
- `tests/` - Root test directory with module-specific subdirectories
|
|
|
|
---
|
|
|
|
## 8. Validation Summary
|
|
|
|
### 8.1 Build Configuration
|
|
|
|
| Setting | Value | Purpose |
|
|
|---------|-------|---------|
|
|
| RELEASE_BUILD | ON | Enables release scope filtering in CMakeLists.txt |
|
|
| BUILD_RTI | OFF | Excludes DDS-dependent modules |
|
|
| BUILD_ARCGIS | OFF | Excludes ArcGIS dependencies |
|
|
|
|
### 8.2 CMake Scope Filtering
|
|
|
|
**File:** `Lts/CMakeLists.txt`
|
|
|
|
```cmake
|
|
if(RELEASE_BUILD)
|
|
# For first release: only build Lts/Common and Lts/Proxies/TrainingAreaBase
|
|
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Common")
|
|
NGL_ADD_SUBDIR_GUARDED(Common)
|
|
endif()
|
|
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Proxies/TrainingAreaBase")
|
|
NGL_ADD_SUBDIR_GUARDED(Proxies/TrainingAreaBase)
|
|
endif()
|
|
else()
|
|
# Full build includes all Lts subdirectories
|
|
endif()
|
|
```
|
|
|
|
### 8.3 RPM Script Filtering
|
|
|
|
**File:** `rpmbuild/make_rpm_ubuntu26.py`
|
|
|
|
- `release_dirs = ["TetraIF", "Z/src", "Lts/Common"]` - Primary release scope
|
|
- `is_dds_file()` - Filters DDS-related files within allowed directories
|
|
- `copy_src_dir_to_dest_dir()` - Applies filtering during source copy
|
|
|
|
### 8.4 Package Contents Verification
|
|
|
|
All 5 DEB packages verified to contain:
|
|
- ✅ No modules from R\S
|
|
- ✅ No DDS-related files
|
|
- ✅ Correct binaries and libraries (runtime package)
|
|
- ✅ Correct source files (sources package)
|
|
- ✅ Test executables (ctest-runtime package)
|
|
- ✅ Test sources (ctest-sources package)
|
|
- ✅ Build pipeline scripts (build-pipeline package)
|
|
|
|
---
|
|
|
|
## 9. DEB- und CI-Anforderungen Compliance
|
|
|
|
| Requirement | Status | Implementation |
|
|
|-------------|--------|----------------|
|
|
| Release-Scope verwenden | ✅ | `release_dirs = ["TetraIF", "Z/src", "Lts/Common"]` + TrainingAreaBase |
|
|
| Docker-Image mit new_docker_build.sh | ✅ | `--build-prebuilt-image --docker-image legatus-qt6:1.0` |
|
|
| Pipeline im Docker-Container ausführen | ✅ | `--run-jenkins-builder` flag in new_docker_build.sh |
|
|
| RPM-Erzeugung über make_rpm_ubuntu26.py | ✅ | Called from Jenkins pipeline script |
|
|
| Ausschließlich Module aus S bauen | ✅ | CMake RELEASE_BUILD filtering + RPM script filtering |
|
|
| Keine R\S Module in RPMs | ✅ | Verified via dpkg-deb --contents |
|
|
| Reproduzierbare Ubuntu-26-RPMs | ✅ | Docker-based build ensures reproducibility |
|
|
| CTests bauen, ausführen, paketieren | ✅ | ctest-runtime and ctest-sources packages |
|
|
| DDS-Dateien ausschließen | ✅ | is_dds_file() filter in copy_src_dir_to_dest_dir() |
|
|
|
|
---
|
|
|
|
## 10. File References
|
|
|
|
### 10.1 Key Configuration Files
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| `Lts/CMakeLists.txt` | RELEASE_BUILD conditional for Lts subdirectories |
|
|
| `CMakeLists.txt` (root) | Main CMake configuration with module inclusion |
|
|
| `new_docker_build.sh` | Docker build orchestration |
|
|
| `jenkins-ci-rme/release-16-10-2026.sh` | Jenkins pipeline script |
|
|
| `rpmbuild/make_rpm_ubuntu26.py` | DEB package generation |
|
|
|
|
### 10.2 Dependency Justification Files
|
|
|
|
| Dependency | File Reference | Line Numbers |
|
|
|------------|----------------|--------------|
|
|
| TrainingAreaBase → TetraIF/CoPrtCnv | `Lts/CMakeLists.txt` | 17-21 |
|
|
| GeographicLib → Z/src | `Z/src/CMakeLists.txt` | (verified in build) |
|
|
| NGLLogger → TetraIF/LogView | `TetraIF/LogView/CMakeLists.txt` | (verified in build) |
|
|
|
|
---
|
|
|
|
## 12. Reproduction Command Sequence
|
|
|
|
To reproduce the release build, execute the following commands in order:
|
|
|
|
```bash
|
|
# 1. Navigate to repository root
|
|
cd /home/torsten/sandbox/qt6-migration-pipeline
|
|
|
|
# 2. Ensure correct branch is checked out
|
|
git checkout story/release-at-16-oct-2026
|
|
|
|
# 3. Build the Docker image (legatus-qt6:1.0)
|
|
cd qt-migration-legatus/qt6-after/qt6-migrated-legatus
|
|
./new_docker_build.sh --build-prebuilt-image --docker-image legatus-qt6:1.0
|
|
|
|
# 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/torsten/sandbox/qt6-migration-pipeline/rpms/guez/26.04
|
|
|
|
# 5. Verify generated DEB packages
|
|
cd /home/torsten/sandbox/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
|
|
```
|
|
|
|
### Expected Output
|
|
|
|
**Step 5:** Should list 5 DEB packages:
|
|
- `qt6-release-runtime_*.deb` (~1.1 MB)
|
|
- `qt6-release-sources_*.deb` (~1.5 MB)
|
|
- `qt6-release-ctest-runtime_*.deb` (~38 KB)
|
|
- `qt6-release-ctest-sources_*.deb` (~19 KB)
|
|
- `qt6-release-build-pipeline_*.deb` (~28 KB)
|
|
|
|
**Step 6:**
|
|
- Runtime package shows only TetraIF, Z/src, Lts/Common, Lts/Proxies/TrainingAreaBase content
|
|
- Sources package grep for "dds" returns nothing (case-insensitive filter working)
|
|
- CTest packages show test executables and sources
|
|
|
|
**Step 7:** Should return nothing (no excluded modules present)
|
|
|
|
---
|
|
|
|
## 13. Conclusion
|
|
|
|
This scope audit confirms that:
|
|
1. **R** (all modules) has been fully enumerated
|
|
2. **M** (released modules) is exactly {TetraIF, Z/src, Lts/Common}
|
|
3. **S** (release scope) = M + {Lts/Proxies/TrainingAreaBase}
|
|
4. **R\S** (excluded modules) are documented and excluded from all packages
|
|
5. Each dependency in **S\M** is justified with concrete file references
|
|
6. DDS files are excluded even within allowed directories
|
|
7. CTests are included as required for developer release
|
|
8. All EB- und CI-Anforderungen are satisfied
|
|
|
|
**Status:** ✅ VALIDATED |