Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 11:18
· 1 commit to main since this release
de86deb

Removed

  • Breaking: admin.Register and admin.Stage. The consumer declares the service on its
    coordinator at the stage its own stage table names:
    lc.Add(lifecycle.Service{Name: "schema", Stage: <stage>, Start: svc.Start, Check: svc}).

Changed

  • The go-core requirement is v0.5.0; the integer overrides use its config.SetFromEnv.
  • Breaking: database.ErrConnectionFailed is sqlate.ErrConnectionFailed, one sentinel for
    a failure to reach the database, whether the pool or a session raised it.
  • Breaking: Service.Force refuses a version that is not one of the named set's migrations
    with admin.ErrValidation, before any I/O. It returned the migrator's
    migrate.ErrVersionNotFound before.
  • Breaking: Service.Ready reports the schema alone: every set's history clean and current.
    A seeder whose statements do not prepare fails Verify and Start but no longer clears it,
    and Start sets it once, when every step has passed.
  • Service.Reset with an empty state resets to the configured Options.Seed set, as
    Service.Seed does. It refused with admin.ErrSeedDisabled before.
  • Service.States returns a copy of the seeder's list.
  • The admin.Seeder contract states that Seed stays idempotent when replicas seed at once.
  • Each package comment lists the package's API, and each contract is stated once, on its symbol.

Added

  • admin.ErrConflict wraps every refusal the schema's state causes (dirty, pending, a history
    its set does not carry, a migration with no down, a set order the migrator forbids), with the
    migrate sentinel kept in the chain.
  • database.Config.Finalized reports whether Finalize has filled every field New reads; the
    providers check it.
  • database.DB.ConnTimeout returns the configured conn_timeout.
  • Once Start has succeeded, a not-ready Service.Ready verifies the schema itself, one probe
    at a time, at most once per five seconds, and bounded by the pool's conn_timeout, so a
    replica whose schema is corrected out of band returns to rotation. A probe's clean finding
    yields to any operation that determined the schema while it read.

Fixed

  • An admin operation that failed without determining the schema's state, such as a cancelled
    GET of the schema's status or a lost connection, cleared Service.Ready, taking the replica
    out of rotation until another operation found the schema current. Ready now changes only on a
    determined state.
  • A misspelled Options.Seed failed Start only after it had applied pending migrations; it
    now fails before Start reads the schema.