Skip to content

v3.5.0: Protocol Drift Detection and Compatibility Pinning

Choose a tag to compare

@mijahauan mijahauan released this 01 Apr 01:56
· 150 commits to main since this release

What's New

Protocol Drift Detection Tooling

  • scripts/sync_types.py: Code-generates ka9q/types.py from ka9q-radio C headers (status.h, rtp.h)
    • --check: exits non-zero if drift detected (for CI/tests)
    • --apply: regenerates types.py and updates compatibility pin
    • --diff: dry-run showing what would change
  • ka9q_radio_compat: Plain-text pin recording the ka9q-radio commit hash that types.py was validated against
  • ka9q/compat.py: Importable KA9Q_RADIO_COMMIT constant for ka9q-update deployment tooling
  • tests/test_protocol_compat.py: Pytest drift test — auto-skips when ka9q-radio source is absent, fails on mismatch when present

Protocol Resync (ka9q-radio 6b0fec7)

  • StatusType: MINPACKET→MAXDELAY, GAINSTEP→UNUSED4, CONVERTER_OFFSET→UNUSED3, COHERENT_BIN_SPACING→UNUSED2, BLOCKS_SINCE_POLL→UNUSED; added SPECTRUM_OVERLAP (116)
  • Encoding: added MULAW (10), ALAW (11); UNUSED_ENCODING shifted to 12
  • control.py: set_max_delay() replaces set_packet_buffering() (old name kept as backward-compat alias)

Cleanup

  • Removed ad-hoc compare_encodings.py and compare_status_types.py (replaced by unified sync script)

Backward Compatibility

All changes are backward compatible. Existing code continues to work without modification.

Install / Upgrade

pip install --upgrade ka9q-python