Document ConfigKit adoption
This commit is contained in:
@@ -22,8 +22,10 @@ defines the shared visibility policy.
|
|||||||
| `go.maximumdirect.net/ckconfig` | `ckconfig` | ConfigKit-backed `config` scopes, including configuration source evidence. |
|
| `go.maximumdirect.net/ckconfig` | `ckconfig` | ConfigKit-backed `config` scopes, including configuration source evidence. |
|
||||||
| `go.maximumdirect.net/ckprompt` | `ckprompt` | PromptKit engine configuration/comparison, five catalogs, named inspection, requirements discovery, concrete request validation, and native smoke tests. |
|
| `go.maximumdirect.net/ckprompt` | `ckprompt` | PromptKit engine configuration/comparison, five catalogs, named inspection, requirements discovery, concrete request validation, and native smoke tests. |
|
||||||
|
|
||||||
Importing an integration does not install commands. The matched ckconfig and
|
Importing an integration does not install commands. The published ckconfig and
|
||||||
ckprompt v0.2.0 modules use core v0.3.0. See the
|
ckprompt v0.2.0 modules use core v0.3.0. The local
|
||||||
|
ckconfig v0.3.0 candidate uses ConfigKit v1.1.0 and does not compose with
|
||||||
|
ckprompt v0.2.0; the published v0.2.0 pair remains matched. See the
|
||||||
[consumer guide](docs/consumers/guide.md#module-selection) for migration details.
|
[consumer guide](docs/consumers/guide.md#module-selection) for migration details.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|||||||
26
docs/cli.md
26
docs/cli.md
@@ -363,14 +363,14 @@ sources:
|
|||||||
- id: source-1
|
- id: source-1
|
||||||
label: "application config"
|
label: "application config"
|
||||||
path: /etc/example/config.yml
|
path: /etc/example/config.yml
|
||||||
layer: base
|
layer: main
|
||||||
kind: file
|
kind: file
|
||||||
underlay_index: 0
|
underlay_index: 0
|
||||||
imported_from: null
|
imported_from: null
|
||||||
destination: /server
|
destination: /server
|
||||||
placement: mapping
|
placement: mapping
|
||||||
destination_unresolved: false
|
destination_is_fallback: false
|
||||||
version_check:
|
version_evidence:
|
||||||
path: /version
|
path: /version
|
||||||
version:
|
version:
|
||||||
present: true
|
present: true
|
||||||
@@ -381,22 +381,28 @@ sources:
|
|||||||
line: 2
|
line: 2
|
||||||
column: 1
|
column: 1
|
||||||
redacted: false
|
redacted: false
|
||||||
|
empty_import_selections: []
|
||||||
```
|
```
|
||||||
|
|
||||||
Each source includes `id`, `label`, `path`, `layer`, `kind`, `underlay_index`,
|
Each source includes `id`, `label`, `path`, `layer`, `kind`, `underlay_index`,
|
||||||
and `imported_from`, plus the native destination pointer, placement, unresolved
|
and `imported_from`, plus the native destination pointer, placement,
|
||||||
destination flag, and nullable `version_check`. Placement is `mapping` or
|
`destination_is_fallback`, nullable `version_evidence`, and
|
||||||
`sequence_item`. The import location is null when absent; otherwise it has
|
`empty_import_selections`. Placement is `mapping` or `sequence_item`. The
|
||||||
|
import location is null when absent; otherwise it has
|
||||||
`source_id`, `line`, and `column`. Version evidence preserves `path`, `present`,
|
`source_id`, `line`, and `column`. Version evidence preserves `path`, `present`,
|
||||||
`null`, `text`, optional source `location`, and `redacted` as returned by
|
`null`, `text`, optional source `location`, and `redacted` as returned by
|
||||||
ConfigKit. Owning values and source order are preserved, including empty fields,
|
ConfigKit. Owning values and source order are preserved, including empty fields,
|
||||||
zero coordinates, false and null observations, and synthetic sources without
|
zero coordinates, false and null observations, and synthetic sources without
|
||||||
paths. An absent version check is null. An empty inventory is `sources: []`.
|
paths. Absent version evidence is null. Each empty-import record has a source-local
|
||||||
|
`path`, a `location` mapping (`source_id`, `line`, `column`), and a `selector`;
|
||||||
|
records preserve their returned order. No records are `empty_import_selections: []`.
|
||||||
|
An empty inventory is `sources: []`.
|
||||||
Text output begins with the scope heading and prints the same source fields,
|
Text output begins with the scope heading and prints the same source fields,
|
||||||
quoting labels and paths. These fields project the selected ConfigKit source
|
quoting labels and paths. These fields project the selected ConfigKit source
|
||||||
records; CommandKit does not reload files or rerun version checks. See the
|
records; CommandKit does not reload files or rerun version checks. See the
|
||||||
[ConfigKit v0.8.0 inspection API](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5/inspection.go)
|
[ConfigKit v1.1.0 source records](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/records.go)
|
||||||
for native evidence definitions.
|
for native evidence definitions. Ckprompt v0.2.0 uses
|
||||||
|
[ConfigKit v0.8.0](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5/inspection.go).
|
||||||
|
|
||||||
### Explain a configuration path
|
### Explain a configuration path
|
||||||
|
|
||||||
@@ -427,7 +433,7 @@ effective:
|
|||||||
redacted: false
|
redacted: false
|
||||||
yaml: "localhost:8080\n"
|
yaml: "localhost:8080\n"
|
||||||
origin:
|
origin:
|
||||||
layer: base
|
layer: main
|
||||||
locations:
|
locations:
|
||||||
- source_id: source-1
|
- source_id: source-1
|
||||||
line: 4
|
line: 4
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ installed at the application root, not as group children.
|
|||||||
| `go.maximumdirect.net/ckconfig` | The application wants ConfigKit-backed configuration scopes and reports. |
|
| `go.maximumdirect.net/ckconfig` | The application wants ConfigKit-backed configuration scopes and reports. |
|
||||||
| `go.maximumdirect.net/ckprompt` | The application wants PromptKit engine configuration/comparison, five catalogs, named inspection, requirements discovery, request validation, or native smoke testing. |
|
| `go.maximumdirect.net/ckprompt` | The application wants PromptKit engine configuration/comparison, five catalogs, named inspection, requirements discovery, request validation, or native smoke testing. |
|
||||||
|
|
||||||
The matched releases are core v0.3.0, ckconfig v0.2.0, and ckprompt v0.2.0.
|
The published matched releases are core v0.3.0, ckconfig v0.2.0, and ckprompt v0.2.0.
|
||||||
|
The local ckconfig v0.3.0 candidate uses ConfigKit v1.1.0 and does not compose
|
||||||
|
with ckprompt v0.2.0, which retains ckconfig v0.2.0 and ConfigKit v0.8.0.
|
||||||
Update application imports and dependency versions together; old and new core
|
Update application imports and dependency versions together; old and new core
|
||||||
paths have distinct Go type identities. Install core with
|
paths have distinct Go type identities. Install core with
|
||||||
`go get go.maximumdirect.net/commandkit@v0.3.0` and either integration with
|
`go get go.maximumdirect.net/commandkit@v0.3.0` and either integration with
|
||||||
@@ -30,12 +32,13 @@ core-only, ConfigKit-only, and composed applications.
|
|||||||
|
|
||||||
## Go compatibility
|
## Go compatibility
|
||||||
|
|
||||||
All three modules declare a consumer minimum of Go 1.26.0. The root module also
|
Core and ckprompt declare a consumer minimum of Go 1.26.0; the ckconfig
|
||||||
|
v0.3.0 candidate requires Go 1.27.0. The root module also
|
||||||
selects ReleaseKit v0.9.0 (`go.maximumdirect.net/releasekit`) as a Go tool, which
|
selects ReleaseKit v0.9.0 (`go.maximumdirect.net/releasekit`) as a Go tool, which
|
||||||
makes that tool's module graph part of the root consumer module requirements
|
makes that tool's module graph part of the root consumer module requirements
|
||||||
even though production packages do not import ReleaseKit. The
|
even though production packages do not import ReleaseKit. The
|
||||||
[release policy](../policy/release.md#consumer-minimum-and-release-toolchain)
|
[release policy](../policy/release.md#consumer-minimum-and-release-toolchain)
|
||||||
defines the support assumption. Maintainers use Go 1.26.8 for validation and
|
defines the support assumption. Maintainers use Go 1.27.0 for validation and
|
||||||
publication; see the [release procedure](../release.md#release-toolchain).
|
publication; see the [release procedure](../release.md#release-toolchain).
|
||||||
|
|
||||||
## Core commands
|
## Core commands
|
||||||
@@ -347,8 +350,24 @@ signal handling, and exit mapping; `Execute` never exits the process.
|
|||||||
Go declarations and GoDoc own exact exported contracts. ConfigKit owns
|
Go declarations and GoDoc own exact exported contracts. ConfigKit owns
|
||||||
configuration decoding, validation, and provenance. PromptKit owns prompt
|
configuration decoding, validation, and provenance. PromptKit owns prompt
|
||||||
formats, profile resolution, and inspection details. See the
|
formats, profile resolution, and inspection details. See the
|
||||||
[ConfigKit v0.8.0 inspection API](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5/inspection.go),
|
[ConfigKit v0.8.0 inspection API for ckprompt v0.2.0](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5/inspection.go),
|
||||||
[PromptKit engine methods](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/engine.go),
|
[PromptKit engine methods](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/engine.go),
|
||||||
[configuration inspection](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/configuration_inspection.go),
|
[configuration inspection](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/configuration_inspection.go),
|
||||||
[smoke diagnostics](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/smoke_diagnostics.go),
|
[smoke diagnostics](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/smoke_diagnostics.go),
|
||||||
and [PromptKit v0.16.0 consumer guidance](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/docs/consumers/pkg-promptkit.md).
|
and [PromptKit v0.16.0 consumer guidance](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/docs/consumers/pkg-promptkit.md).
|
||||||
|
|
||||||
|
## ConfigKit v1.1 migration
|
||||||
|
|
||||||
|
The ckconfig v0.3.0 candidate uses `go.maximumdirect.net/configkit v1.1.0`
|
||||||
|
and Go 1.27.0. Consumers must migrate ConfigKit imports and values passed to
|
||||||
|
ckconfig: the old and new package paths have distinct type identities. Source
|
||||||
|
reports rename `destination_unresolved` to `destination_is_fallback` and
|
||||||
|
`version_check` to `version_evidence`, and add `empty_import_selections`.
|
||||||
|
|
||||||
|
The upstream [v0.9 migration notes](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/docs/releases/v0.9.0.md),
|
||||||
|
[v0.10 notes](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/docs/releases/v0.10.0.md),
|
||||||
|
[v1.0 migration notes](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/docs/releases/v1.0.0.md),
|
||||||
|
and [v1.1 notes](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/docs/releases/v1.1.0.md)
|
||||||
|
cover source-root `configkit` controls becoming `config`, import requiredness
|
||||||
|
and defaults, collection registration and operations, removed APIs, and CLI
|
||||||
|
assignment order.
|
||||||
|
|||||||
@@ -99,25 +99,14 @@ Sibling-checkout references in retired planning records are historical review
|
|||||||
evidence, not build dependencies. Implemented contracts belong in CommandKit
|
evidence, not build dependencies. Implemented contracts belong in CommandKit
|
||||||
under their canonical owners.
|
under their canonical owners.
|
||||||
|
|
||||||
The root module does not traverse nested modules. During development, use a
|
The root module does not traverse nested modules. Preserve the ignored `go.work`
|
||||||
local workspace for all three modules; it is ignored and must not be committed.
|
and `go.work.sum`; use `GOWORK=off GOTOOLCHAIN=local` for dependency preparation,
|
||||||
If a local `go.work` already exists, preserve it and add these module directories:
|
module suites, and examples during the ckconfig migration. Local ckprompt uses
|
||||||
|
the old ConfigKit identity and cannot compose with migrated local ckconfig. Its
|
||||||
|
independent suite and composed example use published ckconfig v0.2.0; restore
|
||||||
|
full local workspace guidance after the coordinated ckprompt migration.
|
||||||
|
Run `go test ./...` separately from each module directory.
|
||||||
|
|
||||||
```sh
|
|
||||||
if [ -f go.work ]; then
|
|
||||||
go work use . ./integrations/ckconfig ./integrations/ckprompt
|
|
||||||
else
|
|
||||||
go work init . ./integrations/ckconfig ./integrations/ckprompt
|
|
||||||
fi
|
|
||||||
go test ./...
|
|
||||||
(cd integrations/ckconfig && go test ./...)
|
|
||||||
(cd integrations/ckprompt && go test ./...)
|
|
||||||
```
|
|
||||||
|
|
||||||
The workspace checks package behavior. Workspace-off checks with each module's
|
|
||||||
own dependency graph are separate evidence. For unpublished CommandKit dependency
|
|
||||||
versions, the [completed integration validation record](https://gitea.maximumdirect.net/eric/CommandKit/src/commit/8a82620dfcd34c0ae56bbecb0d014eb49786bc92/docs/roadmap/implementation.md#stage-12-validate-the-complete-end-state-and-finish)
|
|
||||||
describes the disposable module-file procedure used during implementation.
|
|
||||||
Format changed Go files with `gofmt`. The
|
Format changed Go files with `gofmt`. The
|
||||||
[maintainer release procedure](release.md) owns candidate preparation and
|
[maintainer release procedure](release.md) owns candidate preparation and
|
||||||
publication commands.
|
publication commands.
|
||||||
@@ -141,25 +130,25 @@ external services. The PromptKit smoke examples use local fixtures and the
|
|||||||
example's configured client:
|
example's configured client:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
go run ./examples/core workspace greet --count=0 --tag=first --tag second
|
GOWORK=off GOTOOLCHAIN=local go run ./examples/core workspace greet --count=0 --tag=first --tag second
|
||||||
(cd integrations/ckconfig/examples/simple && go run . config show)
|
(cd integrations/ckconfig/examples/simple && GOWORK=off GOTOOLCHAIN=local go run . config show)
|
||||||
(cd integrations/ckconfig/examples/simple && go run . config diff --config fixtures/before.yml --against-config fixtures/after.yml)
|
(cd integrations/ckconfig/examples/simple && GOWORK=off GOTOOLCHAIN=local go run . config diff --config fixtures/before.yml --against-config fixtures/after.yml)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . config validate --scope all --campaign spring --limit=0)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . config validate --scope all --campaign spring --limit=0)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . config diff --scope app --config fixtures/before.yml --against-config fixtures/after.yml)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . config diff --scope app --config fixtures/before.yml --against-config fixtures/after.yml)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . config diff --scope promptkit --config fixtures/before.yml --against-config fixtures/after.yml --campaign spring)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . config diff --scope promptkit --config fixtures/before.yml --against-config fixtures/after.yml --campaign spring)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . promptkit list prompts --config fixtures/before.yml --campaign spring)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit list prompts --config fixtures/before.yml --campaign spring)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . promptkit list profiles --config fixtures/after.yml --campaign autumn --format yaml)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit list profiles --config fixtures/after.yml --campaign autumn --format yaml)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . promptkit list backends --namespace team)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit list backends --namespace team)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . promptkit list namespaces --kind prompt --kind profile)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit list namespaces --kind prompt --kind profile)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . promptkit list collections)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit list collections)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . promptkit show prompt briefing --campaign spring --format yaml)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit show prompt briefing --campaign spring --format yaml)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . promptkit requirements show briefing --campaign spring)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit requirements show briefing --campaign spring)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . promptkit requirements show briefing --campaign spring --var mode=full --format yaml)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit requirements show briefing --campaign spring --var mode=full --format yaml)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . promptkit requirements validate briefing --campaign spring --input topic=fixtures/topic.txt)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit requirements validate briefing --campaign spring --input topic=fixtures/topic.txt)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . promptkit requirements validate briefing --campaign spring --input topic=fixtures/topic.txt --var mode=full --input notes=fixtures/notes.txt --format yaml)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit requirements validate briefing --campaign spring --input topic=fixtures/topic.txt --var mode=full --input notes=fixtures/notes.txt --format yaml)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . promptkit test reachability --campaign spring --prompt briefing --profile spring)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit test reachability --campaign spring --prompt briefing --profile spring)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . promptkit test all --campaign spring --prompt briefing --profile spring)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit test all --campaign spring --prompt briefing --profile spring)
|
||||||
(cd integrations/ckprompt/examples/composed && go run . session restore session-42 --campaign spring)
|
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . session restore session-42 --campaign spring)
|
||||||
```
|
```
|
||||||
|
|
||||||
The [consumer guide](consumers/guide.md) explains how their public API usage
|
The [consumer guide](consumers/guide.md) explains how their public API usage
|
||||||
|
|||||||
@@ -35,20 +35,21 @@ module metadata.
|
|||||||
|
|
||||||
## Release toolchain
|
## Release toolchain
|
||||||
|
|
||||||
The selected release toolchain is **Go 1.26.8**. Each module declares a consumer
|
The selected release toolchain is **Go 1.27.0**. Core and ckprompt declare a
|
||||||
minimum of **Go 1.26.0**. Maintainers use Go 1.26.8 for dependency preparation,
|
consumer minimum of **Go 1.26.0**; ckconfig requires **Go 1.27.0**. Maintainers
|
||||||
candidate validation, and ReleaseKit execution. The
|
use Go 1.27.0 for dependency preparation, candidate validation, and ReleaseKit
|
||||||
|
execution. The
|
||||||
[consumer guide](consumers/guide.md#go-compatibility) and
|
[consumer guide](consumers/guide.md#go-compatibility) and
|
||||||
[release policy](policy/release.md#consumer-minimum-and-release-toolchain)
|
[release policy](policy/release.md#consumer-minimum-and-release-toolchain)
|
||||||
describe these selections.
|
describe these selections.
|
||||||
|
|
||||||
Select Go 1.26.8 on `PATH`; the launcher uses `GOTOOLCHAIN=local`. If needed,
|
Select Go 1.27.0 on `PATH`; the launcher uses `GOTOOLCHAIN=local`. If needed,
|
||||||
install it with the standard Go tools:
|
install it with the standard Go tools:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
GOWORK=off GOTOOLCHAIN=local go install golang.org/dl/go1.26.8@latest
|
GOWORK=off GOTOOLCHAIN=local go install golang.org/dl/go1.27.0@latest
|
||||||
go1.26.8 download
|
go1.27.0 download
|
||||||
export PATH="$(go1.26.8 env GOROOT)/bin:$PATH"
|
export PATH="$(go1.27.0 env GOROOT)/bin:$PATH"
|
||||||
hash -r
|
hash -r
|
||||||
GOWORK=off GOTOOLCHAIN=local go version
|
GOWORK=off GOTOOLCHAIN=local go version
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# ConfigKit v1.1.0 adoption implementation plan
|
# ConfigKit v1.1.0 adoption implementation plan
|
||||||
|
|
||||||
Status: Stages 1–3 complete; Stages 4–6 are not started.
|
Status: Stages 1–4 complete; Stages 5–6 are not started.
|
||||||
|
|
||||||
This plan is for a Luna coding agent implementing the selected
|
This plan is for a Luna coding agent implementing the selected
|
||||||
[ConfigKit adoption target](configkit-v1.1.0.md). Follow Stage 1 through Stage 6
|
[ConfigKit adoption target](configkit-v1.1.0.md). Follow Stage 1 through Stage 6
|
||||||
@@ -187,6 +187,10 @@ classifies sensitive data correctly.
|
|||||||
|
|
||||||
## Stage 4: Update current guidance and prepare the release note
|
## Stage 4: Update current guidance and prepare the release note
|
||||||
|
|
||||||
|
**Completed.** Current guidance describes the new source report, consumer and
|
||||||
|
toolchain migration, and temporary ckprompt mismatch. The v0.3.0 candidate
|
||||||
|
note is prepared; published notes remain unchanged.
|
||||||
|
|
||||||
1. Update ckconfig README, GoDoc, and `examples/simple/README.md` for the new
|
1. Update ckconfig README, GoDoc, and `examples/simple/README.md` for the new
|
||||||
dependency identity and Go minimum, and the planned ckconfig v0.3.0 with
|
dependency identity and Go minimum, and the planned ckconfig v0.3.0 with
|
||||||
core v0.3.0. Keep package/provider usage consistent with actual code.
|
core v0.3.0. Keep package/provider usage consistent with actual code.
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ itself.
|
|||||||
|
|
||||||
## Module
|
## Module
|
||||||
|
|
||||||
The module path is `go.maximumdirect.net/ckconfig`. Version v0.2.0 uses
|
The module path is `go.maximumdirect.net/ckconfig`. The prepared v0.3.0
|
||||||
`go.maximumdirect.net/commandkit v0.3.0` and
|
candidate requires Go 1.27.0 and uses `go.maximumdirect.net/commandkit v0.3.0` and
|
||||||
ConfigKit; it does not import PromptKit. See the
|
`go.maximumdirect.net/configkit v1.1.0`; it does not import PromptKit. See the
|
||||||
[consumer guide](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/consumers/guide.md#configkit-scopes)
|
[consumer guide](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/consumers/guide.md#configkit-scopes)
|
||||||
for exact callback and lifetime contracts.
|
for exact callback and lifetime contracts.
|
||||||
|
|
||||||
@@ -26,9 +26,9 @@ scopes, selectors, input checks, and state shared by the selected acquisitions
|
|||||||
or comparison in a config invocation. `ckconfig.FromConfigKit` adapts a typed
|
or comparison in a config invocation. `ckconfig.FromConfigKit` adapts a typed
|
||||||
ConfigKit loader. The `config` command family exposes scope discovery and the
|
ConfigKit loader. The `config` command family exposes scope discovery and the
|
||||||
validate, show, sources, explain, and diff operations supported by the declared
|
validate, show, sources, explain, and diff operations supported by the declared
|
||||||
scopes. Source reports include native destination, placement, unresolved
|
scopes. Source reports include native destination, placement, destination
|
||||||
destination, and source version-check evidence. Comparison returns ConfigKit's
|
fallback, version evidence, and empty-import selections. Comparison returns
|
||||||
native records to the YAML report path; the
|
ConfigKit's native records to the YAML report path; the
|
||||||
[CLI reference](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/cli.md#compare-configuration-selections)
|
[CLI reference](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/cli.md#compare-configuration-selections)
|
||||||
owns its operator details.
|
owns its operator details.
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
// Package ckconfig, provided by go.maximumdirect.net/ckconfig, provides
|
// Package ckconfig, provided by go.maximumdirect.net/ckconfig, provides
|
||||||
// CommandKit's optional ConfigKit integration. Its
|
// CommandKit's optional ConfigKit v1.1.0 integration, requiring Go 1.27.0. Its
|
||||||
// canonical Command declaration installs the standard config command family
|
// canonical Command declaration installs the standard config command family
|
||||||
// through the core commandkit package. Applications can install CommandKit
|
// through the core commandkit package. Applications can install CommandKit
|
||||||
// RoutingRule declarations alongside it through commandkit.New or
|
// RoutingRule declarations alongside it through commandkit.New or
|
||||||
// App.Register. Source reports preserve ConfigKit's destination, placement,
|
// App.Register. Source reports preserve ConfigKit's destination, placement,
|
||||||
// and version-check evidence. Invocation reporting applies CommandKit's shared
|
// version, and empty-import evidence. Invocation reporting applies CommandKit's shared
|
||||||
// visibility and delivery policy; provider warnings remain independent of
|
// visibility and delivery policy; provider warnings remain independent of
|
||||||
// failure explanations. Importing ckconfig alone installs no commands.
|
// failure explanations. Importing ckconfig alone installs no commands.
|
||||||
package ckconfig
|
package ckconfig
|
||||||
|
|||||||
25
integrations/ckconfig/docs/releases/v0.3.0.md
Normal file
25
integrations/ckconfig/docs/releases/v0.3.0.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# CommandKit ckconfig v0.3.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
This candidate adopts `go.maximumdirect.net/configkit v1.1.0` and requires Go
|
||||||
|
1.27.0, while retaining `go.maximumdirect.net/commandkit v0.3.0`. It updates
|
||||||
|
configuration source reports to expose ConfigKit's current evidence.
|
||||||
|
|
||||||
|
## Migration
|
||||||
|
|
||||||
|
Change ConfigKit imports from `gitea.maximumdirect.net/eric/ConfigKit` to
|
||||||
|
`go.maximumdirect.net/configkit`. Values from the two paths have distinct Go
|
||||||
|
type identities. Update application loaders and provider values together with
|
||||||
|
ckconfig. Published ckprompt v0.2.0 continues to use ckconfig v0.2.0 and the old
|
||||||
|
ConfigKit identity; it does not compose with this candidate.
|
||||||
|
|
||||||
|
Source reports rename `destination_unresolved` to `destination_is_fallback` and
|
||||||
|
`version_check` to `version_evidence`, use the native `main` layer name, and add
|
||||||
|
`empty_import_selections` records (or `[]` when empty). Update report consumers.
|
||||||
|
See the [consumer migration guide](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckconfig/v0.3.0/docs/consumers/guide.md#configkit-v11-migration)
|
||||||
|
for links to upstream configuration and API changes.
|
||||||
|
|
||||||
|
[COPYRIGHT](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckconfig/v0.3.0/integrations/ckconfig/COPYRIGHT) |
|
||||||
|
[LICENSE](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckconfig/v0.3.0/integrations/ckconfig/LICENSE) |
|
||||||
|
[ATTRIBUTION](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckconfig/v0.3.0/integrations/ckconfig/docs/oss/attribution.md)
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
# Simple consumer
|
# Simple consumer
|
||||||
|
|
||||||
This example imports `go.maximumdirect.net/ckconfig` and
|
This example imports `go.maximumdirect.net/ckconfig` and
|
||||||
`go.maximumdirect.net/commandkit`; use ckconfig v0.2.0 with core v0.3.0.
|
`go.maximumdirect.net/commandkit`; use the ckconfig v0.3.0 candidate with core
|
||||||
|
v0.3.0, ConfigKit v1.1.0, and Go 1.27.0. Set `GOWORK=off GOTOOLCHAIN=local`
|
||||||
|
for the commands below.
|
||||||
|
|
||||||
Run the maintained example with:
|
Run the maintained example with:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user