Compare commits
2 Commits
integratio
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3f1ed2f107 | |||
| 4a8f73f289 |
@@ -20,11 +20,10 @@ defines the shared visibility policy.
|
|||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| `go.maximumdirect.net/commandkit` | `commandkit` | Typed commands, bindings, execution reporting and outcomes, help, and version. |
|
| `go.maximumdirect.net/commandkit` | `commandkit` | Typed commands, bindings, execution reporting and outcomes, help, and version. |
|
||||||
| `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. |
|
||||||
| `gitea.maximumdirect.net/eric/CommandKit/integrations/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 ckconfig v0.2.0
|
Importing an integration does not install commands. The matched ckconfig and
|
||||||
candidate uses core v0.3.0; ckprompt still uses the old core identity and cannot
|
ckprompt v0.2.0 modules use core v0.3.0. See the
|
||||||
be composed with the new core path until its planned v0.2.0 release. 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
|
||||||
|
|||||||
@@ -13,14 +13,14 @@ installed at the application root, not as group children.
|
|||||||
| --- | --- |
|
| --- | --- |
|
||||||
| `go.maximumdirect.net/commandkit` | The application needs typed command declarations and common CLI behavior. |
|
| `go.maximumdirect.net/commandkit` | The application needs typed command declarations and common CLI behavior. |
|
||||||
| `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. |
|
||||||
| `gitea.maximumdirect.net/eric/CommandKit/integrations/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 ckconfig v0.2.0 candidate uses core v0.3.0. The ckprompt source still uses
|
The matched releases are core v0.3.0, ckconfig v0.2.0, and ckprompt v0.2.0.
|
||||||
the old core and ckconfig identities; its planned matched v0.2.0 release will
|
Update application imports and dependency versions together; old and new core
|
||||||
use the new paths. Update application imports and dependency versions together.
|
paths have distinct Go type identities. Install core with
|
||||||
Old and new core 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 the matching integration
|
`go get go.maximumdirect.net/ckconfig@v0.2.0` or
|
||||||
with `go get go.maximumdirect.net/ckconfig@v0.2.0` once it is published.
|
`go get go.maximumdirect.net/ckprompt@v0.2.0`.
|
||||||
|
|
||||||
The two integrations are independent optional imports. `ckprompt` uses the
|
The two integrations are independent optional imports. `ckprompt` uses the
|
||||||
public scope and error contracts from `ckconfig`; importing it does not add the
|
public scope and error contracts from `ckconfig`; importing it does not add the
|
||||||
|
|||||||
@@ -99,10 +99,7 @@ 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 the vanity-path
|
The root module does not traverse nested modules. During development, use a
|
||||||
migration, ckprompt still imports the old core and ckconfig identities and
|
|
||||||
cannot compose with the migrated modules until its own migration is complete. After
|
|
||||||
the matched migrations, during development use a
|
|
||||||
local workspace for all three modules; it is ignored and must not be committed.
|
local workspace for all three modules; it is ignored and must not be committed.
|
||||||
If a local `go.work` already exists, preserve it and add these module directories:
|
If a local `go.work` already exists, preserve it and add these module directories:
|
||||||
|
|
||||||
|
|||||||
@@ -6,10 +6,9 @@ own the optional ConfigKit and PromptKit integrations. The
|
|||||||
[architecture policy](../policy/architecture.md) owns normative boundaries;
|
[architecture policy](../policy/architecture.md) owns normative boundaries;
|
||||||
this page inventories the implemented owners.
|
this page inventories the implemented owners.
|
||||||
|
|
||||||
The core and ckconfig modules declare `go.maximumdirect.net/commandkit` and
|
The core, ckconfig, and ckprompt modules declare
|
||||||
`go.maximumdirect.net/ckconfig`. Ckprompt retains the old module and import
|
`go.maximumdirect.net/commandkit`, `go.maximumdirect.net/ckconfig`, and
|
||||||
identities until its planned matched release; Go treats those identities as
|
`go.maximumdirect.net/ckprompt`, respectively.
|
||||||
distinct.
|
|
||||||
|
|
||||||
## Root `commandkit`
|
## Root `commandkit`
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# CommandKit vanity migration and dependency alignment plan
|
# CommandKit vanity migration and dependency alignment plan
|
||||||
|
|
||||||
Status: Stages 1–3 complete; Stages 4–7 are not started.
|
Status: Stages 1–5 complete; Stages 6–7 are not started.
|
||||||
|
|
||||||
This plan is for the Luna coding agent implementing the
|
This plan is for the Luna coding agent implementing the
|
||||||
[feature roadmap](integration-dependency-alignment.md). Follow the stages in
|
[feature roadmap](integration-dependency-alignment.md). Follow the stages in
|
||||||
@@ -224,7 +224,11 @@ aligned current documentation/attribution.
|
|||||||
|
|
||||||
## Stage 4: Validate and publish ckconfig v0.2.0
|
## Stage 4: Validate and publish ckconfig v0.2.0
|
||||||
|
|
||||||
**Status:** not started.
|
**Completed.** `go.maximumdirect.net/ckconfig v0.2.0` was published as
|
||||||
|
`integrations/ckconfig/v0.2.0` at candidate
|
||||||
|
`92a327db9752e7a898d14f56e86fbdee027b3126`. The ordinary Go 1.26.8 release
|
||||||
|
workflow passed the independent suite, maintained example, and selected file
|
||||||
|
checks before the successful source-tag push.
|
||||||
|
|
||||||
Review and commit the complete ckconfig candidate. From the repository root,
|
Review and commit the complete ckconfig candidate. From the repository root,
|
||||||
use the same authoritative-branch protocol as Stage 2:
|
use the same authoritative-branch protocol as Stage 2:
|
||||||
@@ -249,7 +253,12 @@ identity. Downloading it for ckprompt is the next module's preparation.
|
|||||||
|
|
||||||
## Stage 5: Migrate ckprompt and prepare its independent candidate
|
## Stage 5: Migrate ckprompt and prepare its independent candidate
|
||||||
|
|
||||||
**Status:** not started.
|
**Completed.** Ckprompt declares `go.maximumdirect.net/ckprompt`, uses the
|
||||||
|
new core and ckconfig imports, and downloaded their v0.3.0 and v0.2.0 releases
|
||||||
|
with authentic sums. ConfigKit v0.8.0 and PromptKit v0.16.0 remain selected;
|
||||||
|
attribution records both distinct ReleaseKit tool modules in the resolved
|
||||||
|
graph. The v0.2.0 note and current consumer guidance are prepared; independent
|
||||||
|
suite validation follows.
|
||||||
|
|
||||||
1. Migrate `integrations/ckprompt` to `go.maximumdirect.net/ckprompt`. Update its
|
1. Migrate `integrations/ckprompt` to `go.maximumdirect.net/ckprompt`. Update its
|
||||||
owned source/tests and composed example to import the new core, ckconfig,
|
owned source/tests and composed example to import the new core, ckconfig,
|
||||||
|
|||||||
@@ -26,8 +26,7 @@ and try completing `core-example report d` or `core-example ws gr`.
|
|||||||
|
|
||||||
Compatible integration factories also return `commandkit.Command` and can be
|
Compatible integration factories also return `commandkit.Command` and can be
|
||||||
passed directly to `New` beside `commandkit.Alias` or flag-alias declarations.
|
passed directly to `New` beside `commandkit.Alias` or flag-alias declarations.
|
||||||
The ckconfig candidate uses the new core identity; ckprompt will use it in its
|
The matched ckconfig and ckprompt releases use the new core identity. For a
|
||||||
planned matched release. For a
|
|
||||||
command-only `[]commandkit.Command`, convert its elements into a
|
command-only `[]commandkit.Command`, convert its elements into a
|
||||||
`[]commandkit.Declaration` before appending routing rules; Go cannot expand the
|
`[]commandkit.Declaration` before appending routing rules; Go cannot expand the
|
||||||
command slice as `...commandkit.Declaration`. The
|
command slice as `...commandkit.Declaration`. The
|
||||||
|
|||||||
@@ -7,10 +7,9 @@ Importing it does not install either command family.
|
|||||||
|
|
||||||
## Module
|
## Module
|
||||||
|
|
||||||
The module path is
|
The module path is `go.maximumdirect.net/ckprompt`. Version v0.2.0 uses
|
||||||
`gitea.maximumdirect.net/eric/CommandKit/integrations/ckprompt`. Its first
|
`go.maximumdirect.net/commandkit v0.3.0`, `go.maximumdirect.net/ckconfig v0.2.0`,
|
||||||
release is prepared as `v0.1.0`. It uses `commandkit`, `ckconfig`, and
|
and PromptKit v0.16.0. See the
|
||||||
PromptKit. See the
|
|
||||||
[consumer guide](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/consumers/guide.md#promptkit-configuration-and-definitions)
|
[consumer guide](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/consumers/guide.md#promptkit-configuration-and-definitions)
|
||||||
for callback, input, state, and acquisition contracts.
|
for callback, input, state, and acquisition contracts.
|
||||||
|
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
)
|
)
|
||||||
|
|
||||||
// PromptRequest selects one named prompt for inspection.
|
// PromptRequest selects one named prompt for inspection.
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"testing/fstest"
|
"testing/fstest"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
)
|
)
|
||||||
|
|
||||||
const adapterPrompt = `prompts:
|
const adapterPrompt = `prompts:
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
"go.yaml.in/yaml/v4"
|
"go.yaml.in/yaml/v4"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
"go.yaml.in/yaml/v4"
|
"go.yaml.in/yaml/v4"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -9,11 +9,11 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"testing/fstest"
|
"testing/fstest"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckprompt"
|
|
||||||
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
"go.maximumdirect.net/ckprompt"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
"go.yaml.in/yaml/v4"
|
"go.yaml.in/yaml/v4"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package ckprompt
|
package ckprompt
|
||||||
|
|
||||||
import commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
import commandkit "go.maximumdirect.net/commandkit"
|
||||||
|
|
||||||
func completionChoices(values ...string) commandkit.CompletionHint {
|
func completionChoices(values ...string) commandkit.CompletionHint {
|
||||||
choices := make([]commandkit.CompletionChoice, len(values))
|
choices := make([]commandkit.CompletionChoice, len(values))
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"testing/fstest"
|
"testing/fstest"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckprompt"
|
|
||||||
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
"go.maximumdirect.net/ckprompt"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
)
|
)
|
||||||
|
|
||||||
type compositionInput struct{ Campaign commandkit.Supplied[string] }
|
type compositionInput struct{ Campaign commandkit.Supplied[string] }
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// Package ckprompt provides optional PromptKit configuration comparison,
|
// Package ckprompt, provided by go.maximumdirect.net/ckprompt, provides optional
|
||||||
|
// PromptKit configuration comparison,
|
||||||
// prompt catalogs, named inspections, requirements discovery and validation,
|
// prompt catalogs, named inspections, requirements discovery and validation,
|
||||||
// and native smoke testing for CommandKit. Its command factories return
|
// and native smoke testing for CommandKit. Its command factories return
|
||||||
// canonical commandkit.Command declarations. Applications can install
|
// canonical commandkit.Command declarations. Applications can install
|
||||||
|
|||||||
@@ -28,16 +28,29 @@ License and notices: [LGPL v3.0](../../LICENSE) |
|
|||||||
|
|
||||||
## ReleaseKit
|
## ReleaseKit
|
||||||
|
|
||||||
Selected module: `gitea.maximumdirect.net/eric/ReleaseKit` at `v0.4.2` (transitive Go tool requirement; not a runtime import).
|
Selected module: `gitea.maximumdirect.net/eric/ReleaseKit` at `v0.4.1` (transitive Go tool requirement; not a runtime import).
|
||||||
|
|
||||||
Copyright (C) 2026 Eric Rakestraw
|
Copyright (C) 2026 Eric Rakestraw
|
||||||
|
|
||||||
SPDX-License-Identifier: LGPL-3.0-or-later
|
SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
|
||||||
License and notices: [LGPL v3.0](../../LICENSE) |
|
License and notices: [LGPL v3.0](../../LICENSE) |
|
||||||
[LICENSE](https://gitea.maximumdirect.net/eric/ReleaseKit/src/commit/7d033c5ca1c95aec7db9690293638a0a1ac887b8/LICENSE).
|
[LICENSE](https://gitea.maximumdirect.net/eric/ReleaseKit/src/commit/2d5a8110c61e31daf8698766114ae305d0e0e469/LICENSE).
|
||||||
|
|
||||||
[Source](https://gitea.maximumdirect.net/eric/ReleaseKit/src/commit/7d033c5ca1c95aec7db9690293638a0a1ac887b8).
|
[Source](https://gitea.maximumdirect.net/eric/ReleaseKit/src/commit/2d5a8110c61e31daf8698766114ae305d0e0e469).
|
||||||
|
|
||||||
|
## ReleaseKit (vanity module)
|
||||||
|
|
||||||
|
Selected module: `go.maximumdirect.net/releasekit` at `v0.9.0` (transitive Go tool requirement; not a runtime import).
|
||||||
|
|
||||||
|
Copyright (C) 2026 Eric Rakestraw
|
||||||
|
|
||||||
|
SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
|
||||||
|
License and notices: [LGPL v3.0](../../LICENSE) |
|
||||||
|
[LICENSE](https://forge.maximumdirect.net/base-layer/releasekit/src/commit/2180aa868ec2caa95fc8279fd59d5f0ebac41bd4/LICENSE).
|
||||||
|
|
||||||
|
[Source](https://forge.maximumdirect.net/base-layer/releasekit/src/commit/2180aa868ec2caa95fc8279fd59d5f0ebac41bd4).
|
||||||
|
|
||||||
## JSON Schema
|
## JSON Schema
|
||||||
|
|
||||||
|
|||||||
36
integrations/ckprompt/docs/releases/v0.2.0.md
Normal file
36
integrations/ckprompt/docs/releases/v0.2.0.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# CommandKit ckprompt v0.2.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
CommandKit ckprompt v0.2.0 moves the PromptKit integration to
|
||||||
|
`go.maximumdirect.net/ckprompt`. It uses core
|
||||||
|
`go.maximumdirect.net/commandkit v0.3.0`,
|
||||||
|
`go.maximumdirect.net/ckconfig v0.2.0`, PromptKit v0.16.0, and ConfigKit v0.8.0.
|
||||||
|
The integration adopts core's invocation reporting and completion contracts
|
||||||
|
while preserving PromptKit's inspection, validation, and smoke semantics.
|
||||||
|
|
||||||
|
## Migration
|
||||||
|
|
||||||
|
Replace imports of `gitea.maximumdirect.net/eric/CommandKit/integrations/ckprompt`
|
||||||
|
with `go.maximumdirect.net/ckprompt`; update core and ckconfig imports to
|
||||||
|
`go.maximumdirect.net/commandkit` and `go.maximumdirect.net/ckconfig`. Select
|
||||||
|
core v0.3.0 and both integration modules at v0.2.0 as a matched set. Old and
|
||||||
|
new core paths identify different Go packages and their types cannot be mixed.
|
||||||
|
|
||||||
|
Handlers use `Invocation.Reporter()` for output and categorized messages;
|
||||||
|
terminal failures carry an explanation and optional cause. The integration
|
||||||
|
submits provider diagnostics through the reporter, respecting shared reporting
|
||||||
|
flags. Replace uses of `Invocation.Streams`, `Outcome.Diagnostics`, and the
|
||||||
|
old error-first failure API as described in the
|
||||||
|
[core migration guide](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/v0.3.0/docs/consumers/guide.md#invocation-reporting).
|
||||||
|
PromptKit commands provide completion hints when the application installs the
|
||||||
|
core completion command. Command and flag aliases remain application owned.
|
||||||
|
|
||||||
|
Go 1.26.0 remains the consumer minimum. Importing ckprompt installs no commands;
|
||||||
|
compose configuration scopes and the PromptKit command family explicitly. See
|
||||||
|
the [module README](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckprompt/v0.2.0/integrations/ckprompt/README.md)
|
||||||
|
and [consumer guide](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckprompt/v0.2.0/docs/consumers/guide.md#promptkit-configuration-and-definitions).
|
||||||
|
|
||||||
|
[COPYRIGHT](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckprompt/v0.2.0/integrations/ckprompt/COPYRIGHT) |
|
||||||
|
[LICENSE](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckprompt/v0.2.0/integrations/ckprompt/LICENSE) |
|
||||||
|
[ATTRIBUTION](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckprompt/v0.2.0/integrations/ckprompt/docs/oss/attribution.md)
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
# Composed consumer
|
# Composed consumer
|
||||||
|
|
||||||
|
This example uses `go.maximumdirect.net/commandkit v0.3.0`,
|
||||||
|
`go.maximumdirect.net/ckconfig v0.2.0`, and
|
||||||
|
`go.maximumdirect.net/ckprompt v0.2.0`.
|
||||||
|
|
||||||
This example composes application configuration, PromptKit configuration,
|
This example composes application configuration, PromptKit configuration,
|
||||||
PromptKit comparison and catalogs, definition and requirements inspection, and
|
PromptKit comparison and catalogs, definition and requirements inspection, and
|
||||||
one application-owned command:
|
one application-owned command:
|
||||||
@@ -121,11 +125,7 @@ the selected campaign but leaves artifact bindings to the operator. The
|
|||||||
`requirements show` commands remain discovery reports: partial discovery can
|
`requirements show` commands remain discovery reports: partial discovery can
|
||||||
succeed even when a concrete request would fail validation.
|
succeed even when a concrete request would fail validation.
|
||||||
|
|
||||||
The alias examples use the local CommandKit source because the composed
|
Run `GOWORK=off go test ./...` from this example directory to check it against
|
||||||
module's published core dependency, v0.2.0, predates alias declarations. From
|
the module's declared dependencies. A local workspace can instead select the
|
||||||
the repository root, add the three local modules to `go.work` as described in
|
three current sources, as described in the
|
||||||
the [developer guide](../../../../docs/development.md#documentation-validation),
|
[developer guide](../../../../docs/development.md#documentation-validation).
|
||||||
then run `go test ./...` from this example directory. This checks the example
|
|
||||||
against the current local core and integration sources; it does not claim that
|
|
||||||
published v0.2.0 supports aliases. The next core dependency adoption is handled
|
|
||||||
after the core release is prepared.
|
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckprompt"
|
|
||||||
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
"go.maximumdirect.net/ckprompt"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
)
|
)
|
||||||
|
|
||||||
type campaign struct {
|
type campaign struct {
|
||||||
|
|||||||
@@ -9,11 +9,11 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckprompt"
|
|
||||||
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
"go.maximumdirect.net/ckprompt"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
"go.yaml.in/yaml/v4"
|
"go.yaml.in/yaml/v4"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
module gitea.maximumdirect.net/eric/CommandKit/integrations/ckprompt
|
module go.maximumdirect.net/ckprompt
|
||||||
|
|
||||||
go 1.26.0
|
go 1.26.0
|
||||||
|
|
||||||
require (
|
require (
|
||||||
gitea.maximumdirect.net/eric/CommandKit v0.2.0
|
|
||||||
gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig v0.1.0
|
|
||||||
gitea.maximumdirect.net/eric/ConfigKit v0.8.0
|
gitea.maximumdirect.net/eric/ConfigKit v0.8.0
|
||||||
gitea.maximumdirect.net/eric/promptkit v0.16.0
|
gitea.maximumdirect.net/eric/promptkit v0.16.0
|
||||||
go.yaml.in/yaml/v4 v4.0.0-rc.6
|
go.yaml.in/yaml/v4 v4.0.0-rc.6
|
||||||
@@ -15,5 +13,7 @@ require (
|
|||||||
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
|
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
|
||||||
github.com/spf13/cobra v1.10.1 // indirect
|
github.com/spf13/cobra v1.10.1 // indirect
|
||||||
github.com/spf13/pflag v1.0.9 // indirect
|
github.com/spf13/pflag v1.0.9 // indirect
|
||||||
|
go.maximumdirect.net/ckconfig v0.2.0
|
||||||
|
go.maximumdirect.net/commandkit v0.3.0
|
||||||
golang.org/x/text v0.14.0 // indirect
|
golang.org/x/text v0.14.0 // indirect
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
gitea.maximumdirect.net/eric/CommandKit v0.2.0 h1:UNBjSq6XDZHdPqvZLOL3N5R1E1ol0jnfldgradU7eqw=
|
|
||||||
gitea.maximumdirect.net/eric/CommandKit v0.2.0/go.mod h1:47DQ6Mo/yZqUVn5PAFRmPck91Zhf1jfaHDMoEZvUzsQ=
|
|
||||||
gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig v0.1.0 h1:qqgaCKrraUL//1vcoU+KUlQ5PNX0EtRpqsUraSiUW/w=
|
|
||||||
gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig v0.1.0/go.mod h1:SFtsgbTVQd+BCGQVCFSAopl55pGYhP1sSF442KFpSYA=
|
|
||||||
gitea.maximumdirect.net/eric/ConfigKit v0.8.0 h1:xCIhYnOHjw7rFvB+vIremPKGeROOxKTomnUEUipuQno=
|
gitea.maximumdirect.net/eric/ConfigKit v0.8.0 h1:xCIhYnOHjw7rFvB+vIremPKGeROOxKTomnUEUipuQno=
|
||||||
gitea.maximumdirect.net/eric/ConfigKit v0.8.0/go.mod h1:C82sbyKHYMV1OwaD2GJanFrwTfcZfjlW2JsGze5b0kA=
|
gitea.maximumdirect.net/eric/ConfigKit v0.8.0/go.mod h1:C82sbyKHYMV1OwaD2GJanFrwTfcZfjlW2JsGze5b0kA=
|
||||||
gitea.maximumdirect.net/eric/promptkit v0.16.0 h1:g3dhN0QfzQriaVOBmGUZCw2iBM9Mli2AAU4CbMfzcuY=
|
gitea.maximumdirect.net/eric/promptkit v0.16.0 h1:g3dhN0QfzQriaVOBmGUZCw2iBM9Mli2AAU4CbMfzcuY=
|
||||||
@@ -18,6 +14,10 @@ github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
|
|||||||
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
|
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
|
||||||
github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
|
github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
|
||||||
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
|
go.maximumdirect.net/ckconfig v0.2.0 h1:gcv9Opp9RFgx1cupXq7Uf+P2UWh2FZGYwp+pFY7gmfg=
|
||||||
|
go.maximumdirect.net/ckconfig v0.2.0/go.mod h1:FR25dNBQCB3rPkmmrccct19SIlbW9mHra6DHx98h10c=
|
||||||
|
go.maximumdirect.net/commandkit v0.3.0 h1:RCmg2GS8uzlLSJCIqarpn1uFDec0W3ylNNRRPT6kUFE=
|
||||||
|
go.maximumdirect.net/commandkit v0.3.0/go.mod h1:ZS98DewKNVBygKVDoh5MFD09CnPlP37dS9pVsID5Eoc=
|
||||||
go.yaml.in/yaml/v4 v4.0.0-rc.6 h1:1h7H1ohdUh93/FyE4YaDa1Zh64K6VVbjF4K6WUxMtH4=
|
go.yaml.in/yaml/v4 v4.0.0-rc.6 h1:1h7H1ohdUh93/FyE4YaDa1Zh64K6VVbjF4K6WUxMtH4=
|
||||||
go.yaml.in/yaml/v4 v4.0.0-rc.6/go.mod h1:aZqd9kCMsGL7AuUv/m/PvWLdg5sjJsZ4oHDEnfPPfY0=
|
go.yaml.in/yaml/v4 v4.0.0-rc.6/go.mod h1:aZqd9kCMsGL7AuUv/m/PvWLdg5sjJsZ4oHDEnfPPfY0=
|
||||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestBundledNativeFailuresReachTerminalExplanation(t *testing.T) {
|
func TestBundledNativeFailuresReachTerminalExplanation(t *testing.T) {
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
)
|
)
|
||||||
|
|
||||||
type cancelDuringYAML struct{ cancel context.CancelFunc }
|
type cancelDuringYAML struct{ cancel context.CancelFunc }
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
"go.yaml.in/yaml/v4"
|
"go.yaml.in/yaml/v4"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SmokeRequest pairs the configuration selection with the seed request for one
|
// SmokeRequest pairs the configuration selection with the seed request for one
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
"go.yaml.in/yaml/v4"
|
"go.yaml.in/yaml/v4"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
)
|
)
|
||||||
|
|
||||||
type smokeCommandInput[I any] struct {
|
type smokeCommandInput[I any] struct {
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
"go.yaml.in/yaml/v4"
|
"go.yaml.in/yaml/v4"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSmokeTestCommandRetainsSingletonValuesAndResetsInvocations(t *testing.T) {
|
func TestSmokeTestCommandRetainsSingletonValuesAndResetsInvocations(t *testing.T) {
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
"go.yaml.in/yaml/v4"
|
"go.yaml.in/yaml/v4"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package ckprompt
|
package ckprompt
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ValidationRequest carries the configuration selection and seed PromptKit
|
// ValidationRequest carries the configuration selection and seed PromptKit
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"testing/fstest"
|
"testing/fstest"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
)
|
)
|
||||||
|
|
||||||
type validationFailOnGenerate struct{ calls int }
|
type validationFailOnGenerate struct{ calls int }
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
)
|
)
|
||||||
|
|
||||||
type validationCommandInput[I any] struct {
|
type validationCommandInput[I any] struct {
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
commandkit "gitea.maximumdirect.net/eric/CommandKit"
|
|
||||||
"gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig"
|
|
||||||
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
||||||
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
promptkit "gitea.maximumdirect.net/eric/promptkit"
|
||||||
|
"go.maximumdirect.net/ckconfig"
|
||||||
|
commandkit "go.maximumdirect.net/commandkit"
|
||||||
"go.yaml.in/yaml/v4"
|
"go.yaml.in/yaml/v4"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user