Repository navigation
The API is now stable. Everything a caller can reach is declared in this
module's own packages and documented on pkg.go.dev, and from here on a change
that breaks a compiling program needs a /v2 import path rather than a
version bump. Additions stay additions. The measurement algorithm, the wire
behaviour and schema_version are unchanged from 0.5.0: this release is about
what the API promises, not what the test does.
Upgrading from 0.5.0 touches three things, all of them mechanical, and the
compiler finds every one.
Changed
- The public API no longer aliases internal types.
LatencyStats,
StageMedians,ConfidenceandStabilityParamswere aliases of
internal/enginetypes, so pkg.go.dev showed callers a bare
type StabilityParams = engine.StabilityParamsand none of the fields, and a
rename inside the engine broke importers with nothing to warn us. They are
declared in the library package now, with the documentation the aliases hid.
Field names, types and JSON tags are unchanged, so existing code compiles and
schema_versionstays 1; only code that namedengine.*types through an
alias is affected. Runis the only entry point.RunWithEventsis gone; its sink is
Options.Events, which carries the same concurrency contract (RES-8).
ReplaceRunWithEvents(ctx, t, o, sink)withRun(ctx, t, o)after setting
o.Events = sink.ParseServerConfig,DefaultStabilityParamsandLatencySampleare no
longer exported. Discovery happens insideRun, a zeroStabilityParams
already selects the defaults, and noResultfield ever reached a
LatencySample.ErrInvalidConfigstays exported forerrors.Is.
Added
scripts/api-compat.shand a CI job report incompatible public API changes
since the newest release tag. The job is advisory in this release and becomes
blocking immediately after it, once there is a v1 tag to compare against.