libaprs-engine v3.0.0-rc.2
Pre-release
Pre-release
libaprs-engine v3.0.0-rc.2
BLUF
v3.0.0-rc.2is a security fix-forward release candidate forv3.0.0.- It supersedes
v3.0.0-rc.1, which was published before the final
repo-wide security hardening pass. - No intentional public API break is approved in this release candidate.
- Existing
2.6.0and3.0.0-rc.1users should not need source changes for
the RC, but TCP helper defaults now use finite timeouts. - The RC must pass local release gates, remote CI, security checks, semver
review, downstream smoke, and supply-chain evidence checks before final
v3.0.0.
Changes Since v3.0.0-rc.1
- Escaped user-controlled CLI diagnostic values for unknown options, invalid
--fail-onvalues, and input path read/open errors. - Hardened APRS-IS login/profile helpers to reject all ASCII control bytes, not
only CR and LF. - Added finite default TCP connect/read timeouts while preserving explicit
caller override throughTcpReadOptions. - Updated APRS-IS examples and transport docs to prefer
profile_line()for
untrusted login fields. - Added tracked security-audit outcome evidence for the fix-forward pass.
- Bumped all workspace crates to
3.0.0-rc.2.
Security Notes
- Packet and transport input remains untrusted.
- Accepted packets must preserve raw bytes exactly.
- Malformed packet shape must fail closed.
- Callers that intentionally require indefinite TCP blocking can set
TcpReadOptionstimeout fields toNone. - Post-publication downstream smoke must regenerate its lockfile from crates.io
so checksum evidence matches the published RC crates. - The RC fix-forward audit summary is tracked in
v3.0.0-rc.2 Security Audit Summary.
Release Gates
scripts/verify-docs.shscripts/test-supply-chain-evidence.shscripts/verify-release.shcargo semver-checks check-release -p libaprs-enginewhen available- Post-publication downstream smoke against
3.0.0-rc.2
Upgrade Notes
Existing 2.6.0 users can test the release candidate by updating dependency
versions to =3.0.0-rc.2. No source changes are expected. TCP address-helper
callers that relied on indefinite blocking should explicitly set
connect_timeout or read_timeout to None.