Release 3.0.0
Added
- Device profile support for Raspberry Pi targets via
deploy/devices.yaml and deploy/DEVICE_PROFILES.md.
-
bob script toolchain for build/copy/init/run/device/ssh-config workflows.
-
bob publish release workflow for annotated tags, changelog-based notes, and optional GitLab releases via glab.
- Root
Makefile with developer targets for format, lint, test, coverage, and builds.
- MQTT package-level test scaffold with Ginkgo v2 / Gomega (
pkg/mqtt/*_test.go, pkg/mqtt/mqtt_suite_test.go).
- Home Assistant-specific sensor representation and republish support (
pkg/sensors/homeassistant.go).
- Git metadata helper in config package (
pkg/config/git.go).
Changed
- Refactored job orchestration to centralize scheduling and publishing responsibilities in
JobManager/JobService.
- Improved Home Assistant lifecycle handling with explicit online/offline callbacks and pause/resume behavior for HA-bound publishing.
- Strengthened MQTT behavior with reconnect retry handling and discovery re-subscription flow.
- Expanded sensor update model to support interval-based reads and smoother update-rate publishing across sensor implementations.
- Improved SI1145 detection by checking additional I2C addresses.
- Updated sample configuration and runtime config validation paths.
- Updated build/deploy pipeline scripts, including profile-driven SSH handling and stronger
yq usage.
Fixed
- Fixed SI1145 overflow handling.
- Fixed shell quoting issues in
yq-based profile evaluation.
- Improved robustness of
bob init with better device detection and --force support.
- Improved deployment script behavior for binary copy paths and generated SSH config handling.
Dependencies
- Updated project baseline to Go 1.21.
- Updated project module and vendored dependency set (including reflection and MQTT-related stack updates).
Compatibility
- Runtime now parses semantic versions and validates config version by range.
- Supported config version range is
>= 2.0.0 and < 4.0.0.
- Existing
.lateralus.yaml files using version: "2.0.0" continue to work without changes.
Edited by Hans