Files
ConfigKit/docs/releases/v0.4.0.md

2.5 KiB

ConfigKit v0.4.0

This release renames selected configuration profiles to overlays, intentionally breaking the previous naming contract without compatibility aliases or fallback.

Summary

Selected configuration now uses Options.Overlay and overlays/<name>.yml. Selection, merge rules, input precedence, and lifecycle behavior are unchanged. See the selected-overlay contract.

Compatibility

This is a breaking minor release before v1.0.0. Four surfaces change:

  • Go API: Options.Profile becomes Options.Overlay, LayerProfile becomes LayerOverlay, and all seven CodeProfile* constants become CodeOverlay*.
  • Selected files: profiles/<name>.yml becomes overlays/<name>.yml; there is no legacy-directory fallback.
  • Provenance: the layer string changes from profile to overlay.
  • Structured diagnostics: the profile.* code prefix becomes overlay.*.

The old Go identifiers are removed. Application-owned concepts such as ModelProfile and model_profile are unchanged. Ordinary explicit imports from a directory named profiles remain valid base inputs.

The minimum Go version remains 1.25. Linux remains release-validated and macOS remains best-effort. The YAML dependency remains pinned to go.yaml.in/yaml/v4 v4.0.0-rc.6; this release does not change parser dependencies.

Upgrade

Update the dependency:

go get gitea.maximumdirect.net/eric/ConfigKit@v0.4.0

Rename the affected Go identifiers, move selected files into overlays/, update any handling of provenance-layer and diagnostic-code strings, and rebuild. The maintained example helper is now LoadNarratioOverlay rather than LoadNarratioProfile. Application CLI flag names remain application-owned; ConfigKit does not require renaming domain-specific profile concepts. See the migration guide.

Changes

  • Rename the selected feature consistently across the public facade, internal engine, diagnostics, source labels, examples, and current documentation.
  • Add regression coverage for the new directory, absence of legacy fallback, public values, explanations, and preservation of application profile fields.
  • Align contributor policies with the current shared standard.
  • Simplify release validation to one local minimum-toolchain check. CI is not a release gate; successful publication of the intended tag completes the source-only release. See the release procedure.
  • Retire completed overlay and release-workflow planning documents to Git history.