Skip to content

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.