64 lines
3.7 KiB
Markdown
64 lines
3.7 KiB
Markdown
# ConfigKit v0.6.0
|
|
|
|
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](../release.md) 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 [performance candidates](../roadmap/future.md#3-performance-experiments).
|
|
|
|
## 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](../policy/release.md#consumer-minimum-and-release-toolchain).
|
|
|
|
Select this version and rebuild:
|
|
|
|
```sh
|
|
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](../config.md) and
|
|
[consumer guide](../consumers/README.md).
|
|
|
|
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](https://gitea.maximumdirect.net/eric/ConfigKit/src/tag/v0.6.0/COPYRIGHT) | [LICENSE](https://gitea.maximumdirect.net/eric/ConfigKit/src/tag/v0.6.0/LICENSE) | [ATTRIBUTION](https://gitea.maximumdirect.net/eric/ConfigKit/src/tag/v0.6.0/docs/oss/attribution.md)
|