Plan the staged overlay rename
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# Rename Configuration Profiles to Overlays
|
||||
|
||||
Status: approved target, not yet implemented.
|
||||
Status: approved target, not yet implemented. Execution steps and stage status
|
||||
belong to the [implementation plan](implementation.md).
|
||||
|
||||
## Purpose and release scope
|
||||
|
||||
@@ -91,61 +92,35 @@ Ordinary explicit imports retain their existing rules regardless of a file's
|
||||
directory name. Removing legacy selection support does not reserve or ban these
|
||||
names elsewhere.
|
||||
|
||||
## Work required from the baseline
|
||||
## Internal architecture and maintained examples
|
||||
|
||||
### Public facade and engine
|
||||
The public facade retains root-owned named types and inward-only dependencies.
|
||||
Selected-file acquisition and the existing overlay merge mechanism remain
|
||||
distinct responsibilities within the engine. Internal naming reflects the new
|
||||
terminology without a pipeline or merge-algorithm redesign.
|
||||
|
||||
Update root `lifecycle.go`, `records.go`, and package/API comments along with
|
||||
their engine counterparts. Rename selection helpers, variables, and tests that
|
||||
refer to ConfigKit profiles. Preserve root-owned public types and inward-only
|
||||
dependencies; no facade redesign is needed.
|
||||
Maintained examples use the new API and selected-file directory. The Narratio
|
||||
example still has an application-owned `ModelProfile` / `model_profile`; that
|
||||
concept is deliberately independent of ConfigKit overlay selection.
|
||||
|
||||
The existing `internal/engine/overlay.go` owns merge mechanics. Keep that role
|
||||
distinct from selected-file acquisition: rename `profile.go` and its tests to
|
||||
`selected_overlay.go` and `selected_overlay_test.go`, with names such as
|
||||
`loadSelectedOverlayDocument` for acquisition. Do not combine unrelated code
|
||||
merely to resolve the filename collision. Update option validation, directive
|
||||
checks, input loading, and explanation rendering consistently.
|
||||
## Documentation and migration contract
|
||||
|
||||
### Tests and maintained consumer examples
|
||||
Current public comments, configuration documentation, consumer guidance,
|
||||
architecture terminology, and implementation descriptions consistently call the
|
||||
feature an overlay. Accepted ADR decisions and historical release notes retain
|
||||
their historical wording. The extraction inventory preserves literal upstream
|
||||
symbols and revision-specific evidence while distinguishing current ConfigKit
|
||||
implementation names. Historical navigation links may change when their targets
|
||||
move; historical decisions do not change.
|
||||
|
||||
Migrate existing coverage and fixtures rather than duplicating the entire suite.
|
||||
Update assertions for layer/code values, labels, paths, and rendered output;
|
||||
retain all existing semantic assertions under the new terminology.
|
||||
Consumer migration consists of updating Go identifiers, moving selected files to
|
||||
`overlays/`, and updating any handling of the renamed provenance-layer and
|
||||
diagnostic-code strings. Applications own any corresponding CLI flag rename;
|
||||
ConfigKit does not define or modify downstream CLIs.
|
||||
|
||||
Add focused regression evidence that selection uses `overlays/`, never falls
|
||||
back to `profiles/`, and chooses only `overlays/` when both exist. Preserve coverage
|
||||
for empty/default selection, invalid and missing names, root containment,
|
||||
version/directive rules, source budgets, CLI precedence, and provenance/history.
|
||||
Existing public-boundary and consumer tests must continue to pass after their
|
||||
API migration. A source/API review must confirm that old exported names were
|
||||
removed, not hidden behind aliases.
|
||||
|
||||
Move the maintained Narratio fixture from `profiles/testing.yml` to
|
||||
`overlays/testing.yml`, update the example helper and callers, and keep its
|
||||
application-owned `ModelProfile` / `model_profile` unchanged. This distinction is
|
||||
part of the motivation for the rename, not leftover work.
|
||||
|
||||
### Documentation and consumer migration
|
||||
|
||||
Update the canonical configuration heading and inbound links, public Go
|
||||
reference comments, README, architecture policy terminology, development
|
||||
test map, consumer guide, and implemented-component descriptions as applicable.
|
||||
The architecture itself remains unchanged.
|
||||
|
||||
Do not globally replace every occurrence of "profile". Preserve immutable
|
||||
historical release notes and accepted ADR decision content. Preserve upstream
|
||||
symbol names and revision-specific evidence in the extraction inventory while
|
||||
updating its descriptions of the current ConfigKit implementation. Historical
|
||||
navigation links may be repaired when headings or files move.
|
||||
|
||||
At release preparation, the version-matched minor-release note must explicitly
|
||||
describe the breaking API, directory, provenance-layer, and diagnostic-code
|
||||
changes. Consumer instructions must cover updating Go identifiers, moving
|
||||
selected files to `overlays/`, and updating any downstream output/diagnostic
|
||||
handling. Applications own any corresponding CLI flag rename; ConfigKit does
|
||||
not define or modify downstream CLIs. Do not create a release note before an
|
||||
actual reviewed release candidate exists.
|
||||
The future minor-release note must explain those four breaking surfaces. Release
|
||||
preparation and publication remain governed by the [release procedure](../release.md);
|
||||
this roadmap does not create a release candidate or introduce additional gates.
|
||||
|
||||
## Completion criteria
|
||||
|
||||
@@ -156,11 +131,9 @@ and no directory fallback. Remaining "profile" references must be intentional
|
||||
application data, migration explanation, or historical records, not active
|
||||
ConfigKit feature names.
|
||||
|
||||
Validate locally under the [testing policy](../policy/testing.md), including
|
||||
affected behavioral tests, examples, documentation links, facade boundaries,
|
||||
formatting, vet, and builds. Publication is a separate task governed by the
|
||||
[release procedure](../release.md); neither CI waiting nor additional release
|
||||
gates are introduced by this roadmap.
|
||||
Tests establish the new selection directory, absence of legacy fallback, and
|
||||
preservation of existing semantics. Existing coverage remains with its owning
|
||||
layer instead of being duplicated across the facade and engine.
|
||||
|
||||
After implementation, current contracts own the renamed behavior and this
|
||||
roadmap becomes a completion record for retirement during release preparation.
|
||||
|
||||
Reference in New Issue
Block a user