Skip to content

Commit 9ad3601

Browse files
committed
cli changelog dump. checkpt
1 parent ef94f03 commit 9ad3601

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,38 @@ release.
100100
SIGKILL of an intermediate parent on POSIX -- the child dies AND its
101101
interrupt handler ran -- plus the opt-out gate; the Windows Job Object
102102
leg proves on the next CI push. (plan:#4, Phase 3b)
103+
- SigMF spec compliance is now tested, not trusted (plan:#8): the official
104+
`sigmf` package joined the dev dependency group, and the sidecar writer's
105+
output is validated with it -- including that the `hackrf` extension is
106+
DECLARED, not just used (a strict-validator rejection that regressed once
107+
pre-1.0). GNU Radio / IQEngine interop is a tested property.
108+
- Docstrings across the entire public API (plan:#1): every public method on
109+
`HackRF` and `PersistentReceiver`, both classes, and the module-level
110+
functions -- 60 docstrings where `help()` previously returned nothing.
111+
The documentation used to live only in `#` comments, invisible to
112+
`help()`, IDE tooltips, and doc generators; the comments (which carry the
113+
rationale) remain, and the docstrings carry the contract. Includes the
114+
print-cmd caveat on `transmit`/`transmit_cw`: duration bounds are
115+
enforced parent-side, so a copied `--print-cmd` argv carries NO time
116+
bound. `tests/test_docstrings.py` gates the whole surface so it cannot
117+
drift back to undocumented.
118+
- CLI catch-up with the library (plan:#5), each command with tests:
119+
`hrf tx --cw` (a bounded CW test tone; requires `-d/--duration` because an
120+
unbounded carrier is exactly the orphan-transmitter risk the library
121+
exists to prevent; `--cw-amplitude` defaults below full scale),
122+
`hrf monitor` (sweep-backed multi-frequency power to stdout),
123+
`hrf scan` (per-frequency capture power), and `hrf sweep -o FILE` with
124+
`-B` / `-I` binary passthrough (which refuse the CSV stdout path, since
125+
that output is unparsed).
126+
- Thread-safety documented (rescued by the roadmap-comment cleanup; it was
127+
recorded nowhere else): a `HackRF` instance is not safe to share across
128+
threads -- per-instance mutable state (`last_params`, persisted mode,
129+
logging wiring) and per-child drain threads. One instance per thread;
130+
instances are cheap. In the README and on the class.
131+
- Coverage policy recorded in CONTRIBUTING (plan:#11): CI gates at
132+
`--cov-fail-under=82`, deliberately under the measured 85% because that
133+
figure counts Windows-only and hardware-only code as missed on Linux legs;
134+
to be revisited upward after the docstring pass.
103135
- `hackrfpy.__version__`, resolved from installed package metadata
104136
(`importlib.metadata`), with a `0.0.0+unknown` fallback for uninstalled
105137
checkouts. (plan:#7)

0 commit comments

Comments
 (0)