- Update scope section with Release 2 target breakdown (38 targets)
- Update DEB package names from qt6-release-* to guez-*
- Update test suite expectations (13 tests including TetraIF)
- Update build instructions with guez-release2:2.0 Docker image
- Update Steps 4-6 for Release 2 DEB packaging and CI/CD
- Update options reference table with version 2.0
- Add troubleshooting note for Qt modules and build script
Co-authored-by: Copilot <2235566219+Copilot@users.noreply.github.com>
- Removed duplicate GROUP1_TARGETS definition (lines 306-316)
- Removed duplicate GROUP3_TARGETS definition with 100+ svc* services (lines 318-499)
- Set BUILD_GROUP1 default to OFF (not in Release 2 scope)
- Removed svcCoreClient from GROUP1_TARGETS
- Script reduced from 851 to 669 lines
- Only in-scope targets remain: 24 in GROUP3, 6 in GROUP1, 3 in GROUP5, 1 in GROUP6
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace all /workspace references with ${DOCKER_MOUNT_ROOT} in DEB packaging block
- Add WORKSPACE_DIR variable pointing to qt-migration-legatus subdirectory
- Use WORKSPACE_DIR as tar extraction source to correctly stage workspace files
- Fix output directory paths for RPM and packages-out locations
This fixes the staging error where tar couldn't find /workspace inside the container.
- Changed single quotes to double quotes in printf statement
- Prevents bash syntax error when inline script is passed to docker run -c
- Fixes DEB packaging stage execution failure
- Fix 'log_error: command not found' in DEB packaging stage
- Docker run uses inline bash script with separate function definitions
- Added log_error() after log_info() in Docker inline script (line 712)
- Function executes inside container context where DEB packaging runs
- log_error() function was used in DEB packaging block but not defined
- Added function definition after log_info() at script top
- Fixes 'log_error: command not found' error in DEB packaging stage
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Enable LtsMultiMonitor and PluginInterfaces in Lts/Common/CMakeLists.txt
- Add LtsMultiMonitor, DataPluginInterface, GuiPluginInterface to GROUP3_TARGETS
- Required by LtsSession which is used by LtsWidgets
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Removed pdmTests, eemTests, flmTests, srpFtTests from GROUP3_TARGETS
as they are test executables, not library targets.
Release 2a now contains only 18 library targets:
- 14 NGL/Qt single application libraries
- 2 wms_json_ds, tcpserver
- 2 LtsCoordinate, LtsCoordTrans
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Exclude LtsElevation library (depends on AssetManagement, needed only for Release 2b services)
- Update GROUP3_TARGETS to remove LtsElevation
- Comment out LtsElevation subdirectory in CMakeLists.txt
Co-authored-by: Copilot <2235566219+Copilot@users.noreply.github.com>
Add Jenkins builder and coverage options:
- --run-jenkins-builder: Enable DEB package production mode
- --package-output-dir: Output directory for .deb packages
- --lts-version: LTS version for package metadata
- --project: Project name (guez)
- --build-number: Build number for package versioning
- --build-tag: Build tag/identifier
- --run-coverage: Enable lcov code coverage
- --coverage-output-dir: Output directory for coverage reports
Add MIGRATE_PIPELINE_ROOT handling with precedence:
1. Exported variable (Jenkinsfile)
2. .envrc file
3. Script location default
Add validation for mutually exclusive options:
- --run-jenkins-builder and --run-coverage cannot be used together
Export all new variables for Docker container and pass to CMake.
Co-authored-by: Copilot <223556619+Copilot@users.noreply.github.com>
- LtsElevation required by Trajectory generator used in svcAesCommon
- Part of core libraries needed for AreaEffectSimulation
- Fixes build error: missing ltselevation_export.h
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Use TARGET_EXISTS generator expressions for external dependencies
- Allows building without Viewer/SituationMap module in Release 2
- Maintains compatibility when those modules are available
- Required by svcAesClient/svcAesCommon for coordinate transformation
- Fixes missing include directories for coordinate transformation library
- Both libraries are core dependencies for AreaEffectSimulation services
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- QT5_ADD_RESOURCES was a no-op stub under Qt6, silently dropping .qrc
files: LogView's :/image/* icons were never compiled into the binary.
Map the stub onto qt6_add_resources() (outfiles-variable form, which
appends the generated qrc_*.cpp to the source list). LogView is the
only caller of the stub.
- nglwidgets' Qt6 branch only processed rme_light_style.qrc;
nglresources.qrc (which provides :icons/16x16/* toolbar/window icons)
was left as a raw file in the source list and never compiled
(CMAKE_AUTORCC is off). Process both qrcs.
- LogView never loads libnglwidgets.so at runtime (--as-needed drops it:
the code uses no nglwidgets symbols), so its :icons/16x16 resources
were never registered for the app. Embed the 20 icons LogView actually
uses directly into LogViewResources.qrc with explicit aliases (rcc
rejects XML comments in .qrc and, without an alias, registers the full
relative path as the resource name).
- QPolygonF::isClosed() requires first and last points to be identical
- Added closing point to boundary polygon in test
- Test now correctly validates Qt6 polygon behavior
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Migration Summary:
- Migrated 7 subdirectories: GraphicalObjects, Rubberbands, MathUtils, MapImpl,
SymbologyImpl, Viewshed3D, and Common
- Applied Qt6 API changes: QTouchEvent, Qt::MiddleButton, QFuture continuations
- Updated ArcGIS SDK v300: include paths, identifyGraphicsOverlaysAsync()
- Fixed QList/QVector unification issues in MathUtils
- Replaced QSharedPointer::use_count() with isNull()/data() comparisons
Test Coverage:
- Created 6 new test files following check_pr_policies.py naming conventions
- test_graphical_objects.cpp, test_rubberbands.cpp, test_mathutils.cpp
- test_mapimpl.cpp, test_symbologyimpl.cpp, test_viewshed3d.cpp
- All tests integrated into CMake and CTest
- 42 SituationMap tests passing (695 total tests)
Build Validation:
- Docker build successful with Qt 6.10.2 via aqtinstall
- Fixed LtsDataView dependency order in CMakeLists.txt
- Fixed test paths to use absolute TESTS_DIR
- Removed duplicate main() functions from test files
Documentation:
- Created MIGRATION_STATUS.md with detailed migration status
- Created TEST_REPORT.md with comprehensive test coverage summary
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- new_docker_build.sh: new --run-coverage mode (mutually exclusive with
--run-jenkins-builder). Instruments the release-scope build with
-O0 -g --coverage -fPIC -DNDEBUG (RELEASE flag override keeps -DNDEBUG
and -fPIC so behavior and PIC match the green baseline), runs ctest,
then collects the lcov report: capture --external -> extract on the
four release dirs -> remove test sources -> summary -> genhtml, all
with --ignore-errors mismatch,inconsistent,unused (GCC 15 + lcov 2.4).
Report lands in --coverage-output-dir (default ./coverage-out):
html/index.html, coverage.info, coverage_summary.txt.
- Dockerfile image gains lcov via APT_PACKAGES (genhtml ships in the
same package).
- Jenkinsfile: RunCoverage parameter (default on) + per-OS Coverage
stage running the driver on the agent and archiving
coverage/<project>/<os>/**.
- release-16-10-2026.sh: same coverage step, gated by DRYRUN_COVERAGE
(default ON, mirrors the Jenkins default).
- README: Step 6 (code coverage) and options/env reference entries.
- .gitignore: coverage-out/