Prepare ConfigKit v0.3.0
This commit is contained in:
70
docs/releases/v0.3.0.md
Normal file
70
docs/releases/v0.3.0.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# 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](../config.md#recorded-application-resolution)
|
||||
and the maintained [source-aware path example](../consumers/README.md#source-aware-application-path-policy).
|
||||
|
||||
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](../internal/overview.md)
|
||||
and [facade decision](../adr/0006-public-facade.md).
|
||||
|
||||
## 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](../policy/release.md#platform-support).
|
||||
|
||||
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
|
||||
|
||||
```sh
|
||||
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.
|
||||
Reference in New Issue
Block a user