• v0.6.0 1a885934c2

    # ConfigKit v0.6.0

    eric released this 2026-10-09 04:33:07 +00:00 | 387 commits to main since this release

    This minor release reduces avoidable configuration-loading and inspection work,
    adopts ReleaseKit for source publication, and raises the consumer Go minimum to
    1.26.0. The public configuration model remains unchanged from v0.5.0.

    Changes

    • Reduce temporary path allocations by sizing pointer-formatting buffers,
      combining final metadata traversal, reusing parsed sensitivity paths, and
      avoiding path construction when detecting inheritance. Effective and
      historical metadata indexes retain independently owned paths.
    • Replace repeated resolution-coverage, metadata-update, CLI-overlap, and
      sensitivity-propagation scans with private indexes and incremental processing.
      Preserve diagnostic ordering, history, contextual path shapes, and redaction.
    • Make presence-only metadata queries avoid materializing provenance. Prepare
      resolution replay descriptors and immutable mapping and inheritance-history
      lookups for inspection, and use ordered membership indexes for provenance
      collections. Returned records remain detached; explanations still replay
      complete trees and render on demand.
    • Add a maintained public-API startup construction benchmark. The initial path
      formatting and metadata traversal experiments reproduced allocation reductions
      across local and downstream workloads. Later algorithmic improvements were
      validated behaviorally without a new benchmark campaign. Busy-host timings
      were inconclusive; no fixed speedup or allocation threshold is promised.
    • Replace ConfigKit-owned release scripts with a small profile and the
      module-selected ReleaseKit v0.3.0 tool. The
      release procedure documents candidate preparation, tag-only
      publication, and failed-push recovery. Existing release checks and the
      successful-tag-push completion point remain unchanged; CI is not a gate.
    • Adopt release policy 1.6, distinguishing the consumer Go minimum from the
      validation toolchain. Retire completed planning and measurement records into
      Git history while preserving deferred work.

    Compatibility and upgrade

    The consumer minimum increases from Go 1.25.0 to Go 1.26.0. Install Go 1.26.0
    or newer before upgrading, and update application build and CI environments that
    still use Go 1.25. The go.mod directive records the consumer minimum; using a
    newer validation patch does not itself raise that minimum. See the
    consumer minimum policy.

    Select this version and rebuild:

    go get gitea.maximumdirect.net/eric/ConfigKit@v0.6.0
    

    No application-code or configuration migration is required from v0.5.0. Public
    Go signatures, strict within-tier composition, recursive tier precedence,
    sibling inheritance, presence/null distinctions, provenance, secret handling,
    and synchronous completion retain their existing contracts. See the
    configuration contract and
    consumer guide.

    The YAML dependency remains go.yaml.in/yaml/v4 v4.0.0-rc.6. ReleaseKit is a
    declared Go tool dependency for maintainer commands, not a library runtime
    import; its requirements participate in ConfigKit's module graph. Linux amd64
    and arm64 remain release-validated targets, and macOS remains best-effort.
    Maintainers should use the current release procedure instead of the retired
    scripts/release.sh and scripts/release-check.sh commands.

    COPYRIGHT | LICENSE | ATTRIBUTION

    Downloads