Release And Versioning¶
bijux-gnss-signal supplies physical signal facts and deterministic DSP
behavior to acquisition, tracking, synthetic generation, and validation. A
release can preserve its Rust API while changing every receiver result, so
behavioral compatibility is a first-class release concern.
Decide the Compatibility Level¶
| changed surface | release decision |
|---|---|
| new registry entry | additive only when existing lookups, defaults, and component roles are unchanged |
| carrier, code rate, wavelength, or component metadata | scientific behavior change; verify every consuming crate |
| primary or secondary code sequence | breaking behavior change unless correcting a documented unsupported result |
| phase origin, sample indexing, wrapping, or NCO progression | breaking for chunked and long-running consumers |
| sample conversion or quantization rule | data interpretation change; document scaling, clipping, and container assumptions |
| raw-IQ metadata field or default | serialized contract change across signal, infrastructure, receiver, and CLI layers |
| discriminator, loop, spectrum, or quality math | numerical behavior change; state units, normalization, and expected tolerance |
| curated export removed, renamed, or moved | breaking public API change |
Do not classify a correction as harmless because it moves output closer to a reference. State which old result was wrong, which reference establishes the new behavior, and which downstream results can change.
Follow the Impact¶
flowchart LR
catalog["signal catalog"]
code["code and component model"]
sampling["sampling and phase"]
dsp["DSP primitive"]
receiver["acquisition and tracking"]
evidence["artifacts and validation"]
catalog --> code
code --> sampling
sampling --> dsp
dsp --> receiver
receiver --> evidence
Use the document that owns the changed meaning:
- signal catalog for carrier, code-rate, wavelength, component, and default-selection facts
- code-family guide for assignments, chip polarity, primary codes, and secondary-code timing
- sample guide for encoded sample conversion and numeric representation
- DSP guide for phase, frequency, wrapping, loop, quality, and spectrum behavior
- raw-IQ guide for capture format, sample rate, intermediate frequency, offset, and quantization meaning
- public API guide for the curated Rust surface
Require Matching Evidence¶
| release claim | minimum evidence |
|---|---|
| registry and component metadata remain coherent | component registry integration and the affected constellation reference test |
| code and carrier progression remain chunk-stable | local-code continuity, replica continuity, and long-duration carrier wipeoff |
| raw captures keep the same meaning | raw-IQ metadata integration and IQ sample conversion |
| oscillator boundaries remain stable | NCO properties and long-duration NCO phase |
| modulation or filtering remains physically coherent | the affected spectrum integration test described in the test guide |
Reference fixtures are evidence, not snapshots to regenerate automatically. Record the specification, formula, or independently generated source behind an intentional fixture change.
Write the Release Entry¶
The package changelog must identify the signal and component, units, old behavior, new behavior, receiver impact, and supporting reference or test. If a change affects persisted raw-IQ interpretation or a core artifact, also update the owning package changelog.
The workspace version and publication procedure are defined in the release handbook.