3.6 KiB
ConfigKit v0.3.0
This release adds source provenance during application resolution, separates the public API from its internal engine, and moves macOS to best-effort support.
Summary
Resolvers can query fixed entry-state metadata and already-acquired sources using
Resolution.InputInfo and Resolution.Source. This supports application-owned
decisions such as resolving relative paths against their declaring configuration
files. See the resolution contract
and the maintained source-aware path example.
The root configkit package now owns public types and explicit wrappers around a
single private engine. Internal changes no longer automatically expand public
method sets through shared type aliases. See the component overview
and facade decision.
Compatibility
Existing consumer imports, exported API signatures, configuration syntax, precedence, secret handling, callback lifetime, and ownership behavior are preserved. The two resolution query methods are additive and available only during an active resolution callback; returned records remain detached. The library supplies provenance, not a new filesystem normalization policy.
macOS on amd64 and arm64 is now best-effort rather than release-validated. Neither native macOS evidence nor Darwin cross-builds are required for publication, and macOS-specific failures do not by themselves block a release. Linux on amd64 and arm64 retains release-gated builds and native Linux validation. See the platform support policy.
The module still requires Go 1.25 or newer. The private YAML dependency remains
pinned to go.yaml.in/yaml/v4 v4.0.0-rc.6, confirmed as the newest available v4
release during preparation. It is still a prerelease dependency, isolated behind
the existing private parser boundary; no dependency upgrade is included.
Linux candidate validation uses Go 1.25.14 and Go 1.26.8, including the complete release checker, race tests, consumer examples, filesystem fixtures, and Linux cross-builds. No native macOS validation is claimed for this candidate.
Upgrade
go get gitea.maximumdirect.net/eric/ConfigKit@v0.3.0
No code or configuration migration is required for the facade refactor. Adopt the new provenance queries only if your resolver needs them. Applications retain ownership of relative-path bases and fallback/error behavior.
macOS consumers should account for the reduced validation commitment and perform their own application checks when upgrading if macOS behavior is important to their deployment.
Changes
- Added callback-scoped, fixed entry metadata and source lookup without additional filesystem access or credential resolution.
- Added a maintained Notarius-shaped path-normalization example with provenance, frozen effective output, and explanation coverage.
- Moved loading, schema, resolution, provenance/history, secret, and rendering machinery into one internal engine while keeping public named types root-owned.
- Added exact-type secret and callback adapters, with regression coverage for missing version checkers and nil/zero closed-context failures.
- Added type-aware public-boundary checks covering aliases, collections, generic constraints, and exported method sets; restored public reference documentation.
- Removed macOS release gates and retained required Linux validation.
- Retired completed feature, implementation, and remediation documents to Git history and repaired navigation to current contract and component owners.