Skip to content

Releases: DynamicDevices/cga-coordinate-mapping

v1.4.0: Debug Logging Default & MQTT Improvements

14 Nov 18:25

Choose a tag to compare

v1.4.0 - Debug Logging Default & MQTT Improvements

New Features

  • Default DEBUG Logging: Changed default LogLevel to Debug in appsettings.json for testing
  • MQTT Client ID Uniqueness: Added process ID to MQTT client ID to prevent conflicts when multiple instances run on same hardware
  • DEBUG JSON Payload Logging: Added DEBUG-level logging for full JSON payloads being published to MQTT
  • DEBUG Node Data Logging: Added DEBUG-level logging for detailed node information (positionKnown, latLonAlt, edges) when receiving MQTT messages
  • MQTT KeepAlive: Configured MQTT KeepAlive period (60s default) to prevent broker from disconnecting idle clients
  • Health Check Integration: Integrated health check metrics (last process time, beacon count, nodes processed, MQTT connection status)

Bug Fixes

  • Fixed average error calculation in UWB2GPSConverter (now calculates true mean linear error instead of mean squared error)
  • Added detailed logging for worst edge errors to help debug discrepancies

Testing

This is a test release for debugging and monitoring improvements.

v1.3.0 - CI Fixed: Removed Directory.Build.props

14 Nov 15:54

Choose a tag to compare

Release v1.3.0 - CI Fixed

🎉 CRITICAL FIX: CI Now Stable

The CI has been completely fixed by removing which was causing shared obj directory conflicts.

Root Cause

  • Directory.Build.props forced both projects to share the same obj directory and project.assets.json file
  • When the main project restored, it overwrote the assets file and removed xunit dependencies
  • This caused intermittent CI failures with "Xunit not found" errors

Solution

  • Deleted Directory.Build.props
  • Each project (src and tests) now has its own obj and bin directories
  • No more shared assets file conflicts
  • CI workflow simplified: dotnet test handles restore, build, and test atomically

Changes

  • CI Fully Stable: All 92 tests passing consistently
  • No More Conflicts: Separate build directories prevent xunit dependency issues
  • Simplified Workflow: Clean, then run dotnet test
  • Both Architectures Build: linux-arm64 and linux-x64 working
  • Documentation Updated: Root cause analysis and solution documented

CI Workflow

  1. Test Job: Clean → Run dotnet test (handles restore/build/test)
  2. Build Jobs: Clean → Publish for each architecture in parallel

Downloads

Download the binaries from GitHub Actions artifacts:

  • Linux ARM64: InstDotNet-linux-arm64.tar.gz
  • Linux x64: InstDotNet-linux-x64.tar.gz

Testing

All 92 unit tests pass:

  • VectorExtensions: 11 tests
  • Trilateration: 13 tests
  • WGS84Converter: 6 tests
  • UWB2GPSConverter: 8 tests
  • HardwareId: 14 tests
  • MQTTControl: 11 tests
  • UWBManager: 10 tests
  • AppConfig: 7 tests
  • AppLogger: 7 tests
  • VersionInfo: 6 tests

Important Notes

⚠️ DO NOT re-add Directory.Build.props or any shared build configuration that forces projects to share obj directories. This will break the CI again.

v1.2.0 - Stable CI Configuration

14 Nov 15:38

Choose a tag to compare

Release v1.2.0

CI Workflow Improvements

  • ✅ Simplified CI structure: Test job runs first, then parallel builds
  • ✅ Stable CI configuration: All 92 tests pass consistently
  • ✅ Both linux-arm64 and linux-x64 builds working reliably
  • ⚠️ CRITICAL: CI configuration is now stable - DO NOT modify

Changes

  • Restructured CI to separate test and build jobs
  • Explicit restore step ensures xunit dependencies are available
  • Clean separation prevents shared assets file conflicts
  • Tested and verified working configuration

Downloads

  • Linux ARM64: Download from GitHub Actions artifacts
  • Linux x64: Download from GitHub Actions artifacts

⚠️ Important Note

The CI workflow has been broken multiple times by unnecessary changes. The current configuration is working correctly. Please do not modify .github/workflows/ci.yml unless there is a critical bug that cannot be fixed any other way.