Skip to content

Releases: faustbrian/go-retry

github.com/faustbrian/go-retry v1.0.0

Choose a tag to compare

@faustbrian faustbrian released this 26 Aug 06:07

1.0.0 - 2026-08-25

Changed

  • Exclude intentional nested modules from root local-proxy archives so local,
    bootstrap, CI, and public module checksums describe the same source
    boundary.

  • Track the pinned documentation-tool lockfile so clean CI checkouts install
    the exact validated cspell dependency.

  • Reconcile standalone dependency checksums against deterministic current
    module archives so CI, local verification, and release consumers resolve
    identical content.

  • Harden standalone documentation validation with deterministic spelling and
    link checks, package-specific documentation gates, and repository-local
    contributor guidance.

Documentation

  • Link the package README to the repository-wide Golib documentation portal.

Changed

  • Publish the module from its standalone github.com/faustbrian/go-retry identity while preserving its documented API and behavior.
  • Replace the obsolete owned-module pseudo-version pin with the monorepo's
    local v0.0.0 source-proxy coordinate; release tooling continues to emit
    the exact v1.0.0 dependency version.

Fixed

  • Parse Retry-After delta seconds directly in the signed duration domain so
    saturation remains explicit without a narrowing integer conversion.
  • Upgrade golang.org/x/text to v0.41.0 so the dependency graph no longer
    contains GO-2026-5970.
  • Zero-unit Fibonacci backoff now returns within a fixed computation bound even
    when callers supply the largest possible attempt number.
  • The shared resilience dependency now uses an immutable published revision so
    clean consumers can resolve Retry with workspace resolution disabled.
  • PostgreSQL retry classification now recognizes pgx-safe, closed-connection,
    timeout, truncated-response, and network failures as transient while
    preserving caller cancellation and deadlines as permanent.
  • The module actionlint gate now validates the repository-owned CI workflow
    instead of requiring a forbidden package-local workflow.

Added

  • Opt-in consumption of the shared resilience work budget, with coordinated
    retry lineage, local-denial errors, and retry-plus-hedge amplification proof.
  • Explicit bounded retry policies and generic value execution.
  • Nine deterministic and jittered backoff strategy families.
  • Typed terminal errors, bounded history, and delay hints.
  • HTTP, pgx, queue, webhook, filesystem, object-storage, slog, and
    OpenTelemetry adapters.
  • Coverage, fuzz, race, leak, mutation, API, documentation, and benchmark
    gates.

Release integrity

  • Source commit: b49facd7438712fa07ec50b5d5876c978c790d95
  • Exact-head CI: https://github.com/faustbrian/go-retry/actions/runs/32907577180
  • Release dry-run: urn:sha256:2455fc5d6d0ec202a991cfe098a72d683277d28b838f0b150f646b524b85a152
  • Assets include a CycloneDX SBOM, SLSA v1 in-toto provenance, and SSH-signed checksums.

Verify the checksum attestation with:

ssh-keygen -Y verify -f ALLOWED_SIGNERS -I brian@cline.sh -n golib-release -s SHA256SUMS.sig < SHA256SUMS