Skip to content

v1.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 11 Sep 05:09
· 8 commits to master since this release
adce543

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, Confidence and StabilityParams were aliases of
    internal/engine types, so pkg.go.dev showed callers a bare
    type StabilityParams = engine.StabilityParams and 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_version stays 1; only code that named engine.* types through an
    alias is affected.
  • Run is the only entry point. RunWithEvents is gone; its sink is
    Options.Events, which carries the same concurrency contract (RES-8).
    Replace RunWithEvents(ctx, t, o, sink) with Run(ctx, t, o) after setting
    o.Events = sink.
  • ParseServerConfig, DefaultStabilityParams and LatencySample are no
    longer exported. Discovery happens inside Run, a zero StabilityParams
    already selects the defaults, and no Result field ever reached a
    LatencySample. ErrInvalidConfig stays exported for errors.Is.

Added

  • scripts/api-compat.sh and 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.