Repository navigation
v2.2.2
Date: 2026-03-23
Previous release: v2.2.1
Summary
This release migrates the Modbus stack to github.com/otfabric/go-modbus, improves release and local builds (including Windows artifacts), and standardizes version metadata via link-time flags. Behavior of the CLI should remain the same for typical use; see Upgrading if you embed scripts or build from source.
Highlights
- Modbus library: Switched from
github.com/otfabric/modbustogithub.com/otfabric/go-modbus(SunSpec helpers live ingo-modbus/sunspec). Device identification, Report Server ID, register I/O, and server APIs were updated to match the new module. - Client defaults: Outbound clients now set
DialTimeout, useNopLogger(orNewStdLoggerwhen--debugis set on read/scan/record), and runValidateConfigbefore connecting. - GitHub releases: Published archives now include Windows builds:
modbusctl-<version>-windows-amd64.zipandmodbusctl-<version>-windows-arm64.zip(each contains the corresponding.exe). Linux and Darwin remain.tar.gzas before. - Version output:
modbusctl versionprints version, tag, commit, and build date, injected at link time (-X main.version=…etc.). Theversion.txtfile is no longer used for versioning. - Local builds:
make build/make build-nocheckwrite the binary tobin/modbusctl(not the repository root). Docker image build copies from that path.
Release workflow
- Releases are driven by the reusable
go-binary-releaseworkflow (see.github/workflows/build-release.yml), with ldflags aligned to themain.*variables above.
Upgrading
- Prebuilt binaries: Download the same platform archive as before; add Windows zips if you deploy on Windows.
- From source: Use
make buildand run./bin/modbusctl, or adjust any scripts that assumed./modbusctlin the repo root. - Go modules: Run
go mod tidyafter pulling; direct importers of the oldotfabric/modbuspath should depend onotfabric/go-modbusinstead.