Prepare ConfigKit v0.1.1
This commit is contained in:
@@ -61,7 +61,7 @@ semantic validator, explicit path and glob imports, one selected profile, and
|
||||
filesystem context. It also accepts explicit CLI override records, static secret
|
||||
tags, and a dynamic path predicate. `NoSource` rejects imports, active profiles,
|
||||
and filesystem context as invalid combinations but accepts overrides. Input
|
||||
containing a reserved `_configkit` mapping key is rejected while imports are
|
||||
containing a reserved `configkit` mapping key is rejected while imports are
|
||||
disabled.
|
||||
|
||||
Every source, options, schema, version, defaults, decode, resolution, or validation
|
||||
@@ -419,7 +419,7 @@ origin data; history retains the displaced definitions and identifies the parent
|
||||
replacement. Surviving profile paths have profile origins, while recursively shared
|
||||
mapping containers retain their contributing locations.
|
||||
|
||||
A profile may not contain `_configkit` anywhere, contribute the configured schema
|
||||
A profile may not contain `configkit` anywhere, contribute the configured schema
|
||||
version, or replace an ancestor of that version with a scalar or null. These rules
|
||||
apply even if the supplied version text would be unchanged. Profiles cannot mask a
|
||||
base parse, composition, or version failure because those checks run first.
|
||||
@@ -452,7 +452,7 @@ All records are detached and validated before any is applied. Root and explicit
|
||||
sequence-index paths are invalid; parsed numeric tokens remain mapping keys. A path
|
||||
may create missing mapping ancestors but cannot traverse an existing scalar, null,
|
||||
or sequence. Duplicate and ancestor/descendant-overlapping records are rejected.
|
||||
Neither paths nor values may create `_configkit`, and no record may overlap the
|
||||
Neither paths nor values may create `configkit`, and no record may overlap the
|
||||
configured schema-version path. Unknown fields and effective type mismatches remain
|
||||
ordinary strict-decoder errors.
|
||||
|
||||
@@ -475,12 +475,18 @@ zero.
|
||||
## Explicit imports
|
||||
|
||||
Imports are opt-in. With `Options.Imports` enabled, a document may reserve its root
|
||||
`_configkit` mapping for an `imports` sequence. ConfigKit removes that mapping before
|
||||
`configkit` mapping for an `imports` sequence. ConfigKit removes that mapping before
|
||||
application decoding. Each sequence item is a mapping with exactly one nonempty
|
||||
string `path` or `glob` plus an optional boolean `optional`; all other shapes and
|
||||
fields are `import.invalid`. A `_configkit` key below the root is invalid. With
|
||||
fields are `import.invalid`. A `configkit` key below the root is invalid. With
|
||||
imports disabled, any occurrence remains `import.disabled`.
|
||||
|
||||
The directive key is `configkit`, not the `_configkit` spelling used in v0.1.0.
|
||||
There is no legacy alias: `_configkit` is ordinary application data, subject to
|
||||
normal schema validation, and does not trigger imports. When upgrading, rename
|
||||
directive keys in root files and imported fragments, and rename any application
|
||||
fields previously named `configkit` to avoid the newly reserved key.
|
||||
|
||||
Path declarations use slash-separated relative paths. Absolute paths and network
|
||||
URLs are invalid. Each path resolves from its declaring file's canonical directory,
|
||||
and files are traversed depth-first in declaration order: a file contributes its own
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
**Base Policy Version:** 0.1.0
|
||||
|
||||
**Last Updated:** 2026-09-06
|
||||
**Last Updated:** 2026-09-07
|
||||
|
||||
## Purpose
|
||||
|
||||
@@ -220,5 +220,12 @@ restating or redefining its requirements.
|
||||
|
||||
## Policy Exceptions
|
||||
|
||||
None. Candidate selection, publication, and post-publication verification remain
|
||||
mandatory steps in the [release procedure](../release.md), not policy exceptions.
|
||||
For v0.1.1 only, the maintainer approved renaming the reserved `_configkit` key to
|
||||
`configkit` as an error-correcting point release because there are no current
|
||||
consumers. This intentionally changes the v0.1.0 configuration contract without a
|
||||
minor-version increment. The release note must explain the renamed directive,
|
||||
the lack of a legacy alias, and the newly reserved application key. This exception
|
||||
does not apply to subsequent releases or waive any validation or publication gate.
|
||||
|
||||
Candidate selection, publication, and post-publication verification remain
|
||||
mandatory steps in the [release procedure](../release.md).
|
||||
|
||||
43
docs/releases/v0.1.1.md
Normal file
43
docs/releases/v0.1.1.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# ConfigKit v0.1.1
|
||||
|
||||
This release corrects the spelling of ConfigKit's reserved configuration key.
|
||||
|
||||
## Summary
|
||||
|
||||
The reserved directive key is now `configkit` instead of `_configkit`. Import
|
||||
declarations continue to use the same `imports` sequence and path/glob syntax.
|
||||
See the [configuration contract](../config.md#explicit-imports).
|
||||
|
||||
## Compatibility
|
||||
|
||||
This is an intentional configuration compatibility change, approved as a one-time
|
||||
[patch-release exception](../policy/release.md#policy-exceptions) because there are
|
||||
no current consumers. `_configkit` is no longer a directive or a reserved key; it
|
||||
is ordinary application data and is subject to normal schema validation. There is
|
||||
no legacy alias. `configkit` is now reserved, including in nested mappings, profiles,
|
||||
and override paths and values.
|
||||
|
||||
The Go API, diagnostic codes, Go minimum version, and supported platforms are
|
||||
unchanged. 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.
|
||||
|
||||
## Upgrade
|
||||
|
||||
Rename `_configkit` directive keys to `configkit` in root configuration files and
|
||||
imported fragments. Rename any application-owned `configkit` fields to avoid the
|
||||
newly reserved key. Update diagnostic-path expectations to the new spelling.
|
||||
Files retaining `_configkit` will not load their declared imports.
|
||||
|
||||
Consumers can select this release with:
|
||||
|
||||
```sh
|
||||
go get gitea.maximumdirect.net/eric/ConfigKit@v0.1.1
|
||||
```
|
||||
|
||||
## Changes
|
||||
|
||||
- Renamed the directive key consistently across imports, profiles, and overrides.
|
||||
- Updated current configuration documentation and the composed consumer fixture.
|
||||
- Updated behavioral tests and added coverage proving the old spelling is not an
|
||||
import alias.
|
||||
Reference in New Issue
Block a user