Prepare ConfigKit v0.2.0
This commit is contained in:
58
docs/releases/v0.2.0.md
Normal file
58
docs/releases/v0.2.0.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# ConfigKit v0.2.0
|
||||
|
||||
This release adds integer schema-version input and consistent canonical sequence
|
||||
path handling.
|
||||
|
||||
## Summary
|
||||
|
||||
Applications can retain YAML such as `version: 4` while storing and checking their
|
||||
version as a Go string. The exception applies only to the path designated by
|
||||
`VersionRule`; unrelated fields keep strict decoding. See the
|
||||
[configuration contract](../config.md#application-schema-versions).
|
||||
|
||||
## Compatibility
|
||||
|
||||
This minor release intentionally changes integer schema-version input from a
|
||||
`version.type` rejection to invoking the application checker with its decimal text.
|
||||
Plain string destinations at that path now accept it. Public Go API shapes,
|
||||
minimum Go version, and supported platforms are unchanged.
|
||||
|
||||
Parsed sequence indices now require canonical nonnegative decimal spelling.
|
||||
Signed tokens such as `+0` and `-0`, previously accepted by some traversal paths,
|
||||
no longer identify sequence elements. They remain valid literal mapping keys.
|
||||
Version checking, decoding, and metadata matching now agree on this boundary.
|
||||
|
||||
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 candidate preparation. Linux
|
||||
candidate checks use Go 1.25.5 and Go 1.26.7. The maintainer confirmed native macOS
|
||||
checks at `244104f` and approved carrying that result across the documentation-only
|
||||
candidate changes under the [recorded exception](../policy/release.md#policy-exceptions).
|
||||
|
||||
## Upgrade
|
||||
|
||||
```sh
|
||||
go get gitea.maximumdirect.net/eric/ConfigKit@v0.2.0
|
||||
```
|
||||
|
||||
Existing string schema versions need no configuration changes. Applications using
|
||||
integer YAML versions can retain them and use a plain string field plus a
|
||||
`VersionRule`. Review the application checker: it now receives integer identifiers
|
||||
as text, and remains responsible for rejecting unsupported versions. Fractions,
|
||||
exponents, booleans, and containers remain invalid version kinds.
|
||||
|
||||
Replace signed sequence-index tokens in configured paths with canonical indices
|
||||
(for example, `/versions/+0` becomes `/versions/0`). Do not change signed mapping
|
||||
keys. Literal integers elsewhere still do not decode into strings, and numeric
|
||||
destinations retain their existing range checks.
|
||||
|
||||
## Changes
|
||||
|
||||
- Added load-local, path-scoped integer-to-string schema-version decoding without
|
||||
mutating original input or introducing general scalar coercion.
|
||||
- Preserved numeric historical input, string effective output, decoding
|
||||
reconciliation, source attribution, and secret redaction.
|
||||
- Unified sequence path interpretation and added regression coverage for signed
|
||||
tokens, literal mapping keys, and explicit key/index distinctions.
|
||||
- Updated maintained Notarius-shaped fixtures and migration guidance for quoted
|
||||
and integer version forms.
|
||||
- Retired completed implementation and remediation roadmaps to Git history.
|
||||
Reference in New Issue
Block a user