Mark the upgrade roadmap as implemented
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Dependency upgrade and PromptKit smoke review remediation
|
||||
|
||||
Status: in progress; R-1 through R-3 complete; R-4 remains open.
|
||||
Status: complete; R-1 through R-4 addressed.
|
||||
|
||||
## Review scope and evidence
|
||||
|
||||
@@ -177,7 +177,7 @@ resolution. Production code is unchanged.
|
||||
|
||||
## R-4: Reconcile the feature roadmap with completed implementation
|
||||
|
||||
Status: open. Priority: P3. Category: stale implementation status.
|
||||
Status: complete. Priority: P3. Category: stale implementation status.
|
||||
|
||||
**Location:** [upgrades.md](upgrades.md), status at lines 3–6,
|
||||
current-implementation descriptions at lines 28–29 and 41–44, and the source
|
||||
@@ -203,3 +203,11 @@ remediations remain open.
|
||||
**Completion evidence:** The roadmap and implementation plan agree on delivery
|
||||
status, current-code claims match the inspected implementation, and local
|
||||
links/Markdown whitespace checks pass. No code or policy change is required.
|
||||
|
||||
**Completed:** 2026-10-18. Recorded implementation completion and linked the
|
||||
completed plan, review follow-up, and current CLI/consumer/GoDoc owners. Marked
|
||||
the original dependency/capability descriptions as historical and corrected the
|
||||
source-report and ID-only API descriptions to match delivered code. Preserved
|
||||
the original baseline and accepted decisions unchanged. Local links/fragments,
|
||||
inbound roadmap anchors, status/baseline consistency, and Markdown whitespace
|
||||
checks passed. No code or policy change was needed for this issue.
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# ConfigKit, PromptKit, and ReleaseKit adoption
|
||||
|
||||
Status: adoption roadmap; implementation has not started. The release targets,
|
||||
adoption order, and OD-1 through OD-4 are accepted. Smoke testing is included
|
||||
in the current scope. This document defines the desired end state and required
|
||||
work; the [implementation plan](implementation.md) sequences coding tasks.
|
||||
Status: implementation complete, including all three dependency upgrades and
|
||||
smoke testing. The [implementation plan](implementation.md) records completion
|
||||
of Stages 1–18; [remediation.md](remediation.md) records focused review follow-up
|
||||
and its completion evidence. The following sections preserve the accepted target
|
||||
and original migration intent.
|
||||
|
||||
## Purpose and authority
|
||||
|
||||
@@ -25,28 +26,35 @@ parallel semantic model or normalization layer.
|
||||
The [architecture policy](../policy/architecture.md), accepted [ADRs](../adr/),
|
||||
and [release policy](../policy/release.md) govern this work. Upstream contract
|
||||
changes flow through the owning integration; they do not justify reimplementing
|
||||
removed behavior in CommandKit. The existing API and CLI references describe the
|
||||
current implementation until these changes land.
|
||||
removed behavior in CommandKit. The [CLI reference](../cli.md),
|
||||
[consumer guide](../consumers/guide.md), [ckconfig GoDoc](../../integrations/ckconfig/doc.go),
|
||||
and [ckprompt GoDoc](../../integrations/ckprompt/doc.go) own implemented usage
|
||||
and contracts. The completed implementation plan records delivery evidence.
|
||||
|
||||
## Baseline and reviewed releases
|
||||
## Planning baseline and reviewed releases
|
||||
|
||||
The CommandKit baseline is `5f633e3feea71f623e5e378a7df476ff7e811e5e`.
|
||||
The original adoption review used CommandKit baseline
|
||||
`5f633e3feea71f623e5e378a7df476ff7e811e5e`; the implementation plan began at
|
||||
`38b49f29fb3a8f22ff02528d2a0ed413e5c6ab1e`. This section records the historical
|
||||
starting point and reviewed releases, rather than current dependency metadata.
|
||||
|
||||
| Dependency | Current baseline | Target | Owning CommandKit area |
|
||||
| Dependency | Planning baseline | Adopted release | Owning CommandKit area |
|
||||
| --- | --- | --- | --- |
|
||||
| ReleaseKit | Root tool requirement v0.4.0; integration graphs currently select v0.4.1 | v0.4.2 | Root tool pin, launcher integration, release documentation, and notices |
|
||||
| ReleaseKit | Root tool requirement v0.4.0; integration graphs selected v0.4.1 | v0.4.2 | Root tool pin, launcher integration, release documentation, and notices |
|
||||
| ConfigKit | v0.7.1 in both integrations | v0.8.0 | ckconfig adaptation and reports; ckprompt's direct dependency |
|
||||
| PromptKit | v0.15.0 | v0.16.0 | ckprompt adapters, standard commands, reports, and composed consumer |
|
||||
|
||||
The root module owns generic commands, dispatch, bindings, help/version, and
|
||||
outcomes. ckconfig owns the configuration family. ckprompt currently supplies
|
||||
prompt/profile catalogs, named inspection, requirements discovery, and concrete
|
||||
request validation; its engine configuration scope is composed through ckconfig.
|
||||
At that baseline, the root module owned generic commands, dispatch, bindings,
|
||||
help/version, and outcomes. ckconfig owned the configuration family. ckprompt
|
||||
supplied prompt/profile catalogs, named inspection, requirements discovery, and
|
||||
concrete request validation; its engine configuration scope was composed through
|
||||
ckconfig. Current capabilities are documented in the
|
||||
[consumer guide](../consumers/guide.md#promptkit-configuration-definitions-and-requirements).
|
||||
|
||||
The completed requirements roadmap and remediation record, together with their
|
||||
The completed [requirements roadmap](promptkit-validation.md),
|
||||
[original implementation plan](https://gitea.maximumdirect.net/eric/CommandKit/src/commit/38b49f29fb3a8f22ff02528d2a0ed413e5c6ab1e/docs/roadmap/implementation.md),
|
||||
remain historical evidence for the delivered baseline. This roadmap describes
|
||||
new work and does not restart those completed assignments.
|
||||
and [preceding remediation record](https://gitea.maximumdirect.net/eric/CommandKit/src/commit/730f930b47c929fb2c59a25a75cbe2924dfc75bb/docs/roadmap/remediation.md)
|
||||
remain historical evidence for the pre-upgrade baseline.
|
||||
|
||||
Reviewed upstream references:
|
||||
|
||||
@@ -56,22 +64,21 @@ Reviewed upstream references:
|
||||
| ConfigKit v0.8.0 | `137769f3f18a370c68444242fb5d88e620e307e5` | [Release notes](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5/docs/releases/v0.8.0.md) |
|
||||
| PromptKit v0.16.0 | `9178f3eb91c2b2138caa78e22be93c048b4bc992` | [Release notes](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/docs/releases/v0.16.0.md) |
|
||||
|
||||
All three releases retain Go 1.26.0 as their consumer minimum. The adoption does
|
||||
not require changing CommandKit's Go minimum or selected release toolchain.
|
||||
All three releases retain Go 1.26.0 as their consumer minimum. The adoption
|
||||
preserved CommandKit's Go minimum and selected release toolchain.
|
||||
|
||||
## Dependency and delivery boundaries
|
||||
|
||||
The target includes all three upgrades, richer configuration source inspection,
|
||||
expanded PromptKit discovery, and explicitly invoked smoke testing. The
|
||||
[implementation plan](implementation.md) owns coding order and stage boundaries.
|
||||
These changes can be delivered in one coordinated sprint without separately
|
||||
releasable intermediate commits.
|
||||
Delivery includes all three upgrades, richer configuration source inspection,
|
||||
expanded PromptKit discovery, and explicitly invoked smoke testing. The completed
|
||||
[implementation plan](implementation.md) records coding order and stage
|
||||
boundaries for the coordinated sprint.
|
||||
|
||||
ReleaseKit has no runtime ordering dependency on the other two. ConfigKit must
|
||||
be adopted before, or atomically with, PromptKit: Go module selection would
|
||||
otherwise introduce v0.8.0 transitively while ckconfig still declares v0.7.1.
|
||||
Keep both integrations' direct ConfigKit requirements aligned with the adopted
|
||||
version and verify their independent module graphs.
|
||||
ReleaseKit has no runtime ordering dependency on the other two. During adoption,
|
||||
ConfigKit was the prerequisite for PromptKit v0.16.0: upgrading PromptKit first
|
||||
would have selected ConfigKit v0.8.0 transitively while ckconfig still declared
|
||||
v0.7.1. Both integrations now declare ConfigKit v0.8.0 directly, preserving
|
||||
alignment across their independent module graphs.
|
||||
|
||||
Publication remains source-only and follows the existing
|
||||
[core, ckconfig, ckprompt dependency order](../release.md#scope-and-release-order)
|
||||
@@ -93,11 +100,11 @@ tag IDs are resolved to commits before verification and delivery. CommandKit
|
||||
has no copied Woodpecker delivery workflow and publishes no hosted deliverables,
|
||||
so adopting this patch does not require adding either.
|
||||
|
||||
Required work includes the root requirement/checksums, selected-graph notices,
|
||||
The adoption updated the root requirement/checksums, selected-graph notices,
|
||||
the version named in the release policy, and version/commit references in the
|
||||
maintainer release procedure. Review the launcher and release integration against
|
||||
the unchanged CLI/profile contracts; a script/profile redesign is not expected.
|
||||
The ignored `.releasekit/` directory remains local bootstrap storage.
|
||||
maintainer release procedure. The launcher and release integration retain the
|
||||
supported CLI/profile contracts. The ignored `.releasekit/` directory remains
|
||||
local bootstrap storage.
|
||||
|
||||
If a delivery workflow is introduced later, start from the corrected maintained
|
||||
example: changing a module pin does not update copied YAML. This adoption does
|
||||
@@ -119,11 +126,12 @@ composition. Existing ConfigKit defaults preserve prior loading behavior.
|
||||
|
||||
### Source inspection
|
||||
|
||||
Extend `config sources` in text and YAML with useful native destination,
|
||||
placement, unresolved-destination, and source-version declaration evidence.
|
||||
The current [source DTO](../../integrations/ckconfig/sources.go) omits all four.
|
||||
Preserve its existing source fields and native inventory order. The accepted
|
||||
representation is recorded in OD-1.
|
||||
`config sources` now exposes native destination, placement,
|
||||
unresolved-destination, and source-version declaration evidence in text and YAML.
|
||||
The [source DTO](../../integrations/ckconfig/sources.go) includes all four while
|
||||
preserving the original source fields and native inventory order. OD-1 records
|
||||
the accepted intent; the [CLI source-report contract](../cli.md#list-configuration-sources)
|
||||
owns the implemented representation.
|
||||
|
||||
Project the native fields and their values directly into the report, including
|
||||
`version_check` corresponding to `SourceInfo.VersionCheck`. Use ConfigKit's
|
||||
@@ -135,11 +143,12 @@ the new SourceInfo fields do not require adding a source inventory to every
|
||||
explanation. Compact diagnostic source legends can continue identifying sources
|
||||
by ID, label, and filesystem path.
|
||||
|
||||
### Required adaptation
|
||||
### Completed adaptation
|
||||
|
||||
Update both dependency graphs, owning notices, native fixtures, and affected
|
||||
consumer guidance. Review unkeyed literals and any equality/map-key assumptions:
|
||||
ConfigKit's expanded `SourceInfo` contains a `Path` and is no longer comparable.
|
||||
Both dependency graphs, owning notices, native fixtures, and affected consumer
|
||||
guidance were updated. The compatibility review accounted for unkeyed literals
|
||||
and equality/map-key assumptions: ConfigKit's expanded `SourceInfo` contains a
|
||||
`Path` and is no longer comparable.
|
||||
Its [release notes](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5/docs/releases/v0.8.0.md)
|
||||
describe this source-compatibility change. The existing provider model need not
|
||||
be redesigned merely to adopt these additions.
|
||||
@@ -148,16 +157,17 @@ be redesigned merely to adopt these additions.
|
||||
|
||||
### ID-based prompt selection and descriptive labels
|
||||
|
||||
ckprompt uses native ID-only prompt selection. Remove the prompt-specific
|
||||
`--version` flag from named prompt inspection, requirements show, and requirements
|
||||
validate. Remove `PromptRequest.Version` and obsolete version-selector plumbing;
|
||||
use `InspectPrompt(ctx, promptID)` and the revised native request types.
|
||||
ckprompt uses native ID-only prompt selection. The prompt-specific `--version`
|
||||
flag was removed from named prompt inspection, requirements show, and requirements
|
||||
validate, together with `PromptRequest.Version` and obsolete selector plumbing.
|
||||
The adapter uses `InspectPrompt(ctx, promptID)` and the revised native request
|
||||
types.
|
||||
Application version reporting remains governed by its existing identity contract.
|
||||
|
||||
Version labels remain useful metadata. Update inspection/catalog report DTOs for
|
||||
the native optional representation. Use `version` for a prompt or collection's
|
||||
reported version, omit the field when absent, and retain `""` when explicitly
|
||||
empty, as accepted in OD-2. Selection continues to use the native ID-only API.
|
||||
Version labels remain useful metadata. Inspection/catalog report DTOs use the
|
||||
native optional representation: `version` for a prompt or collection's reported
|
||||
version, omitted when absent and retained as `""` when explicitly empty, as
|
||||
accepted in OD-2. Selection continues to use the native ID-only API.
|
||||
|
||||
The standard requirements operations continue delegating discovery and concrete
|
||||
preparation to PromptKit. Partial discovery remains a successful inspection;
|
||||
@@ -167,9 +177,10 @@ delivery behavior apply through the revised API.
|
||||
|
||||
### Explicit configuration and collections
|
||||
|
||||
Replace version-keyed prompt fixtures with one definition per prompt ID. Where
|
||||
an application formerly supplied multiple definitions under one ID, it chooses
|
||||
which definition to install or gives distinct resources distinct IDs.
|
||||
The native fixtures and composed consumer now use one direct definition per
|
||||
prompt ID. Where an application formerly supplied multiple definitions under
|
||||
one ID, it chooses which definition to install or gives distinct resources
|
||||
distinct IDs.
|
||||
PromptKit's optional resource labels do not make that deployment choice.
|
||||
|
||||
Treat a root configuration `version` as the upstream source specification
|
||||
@@ -411,10 +422,13 @@ appropriately versioned future module release. New source-report fields and
|
||||
catalog and smoke capabilities also need accurate CLI/API release notes. This
|
||||
roadmap does not require a CommandKit version to mirror any upstream version.
|
||||
|
||||
### Evidence for the eventual implementation
|
||||
### Implementation evidence and testing boundary
|
||||
|
||||
The implementation plan should test CommandKit-owned interfaces and adaptation
|
||||
under the [upstream testing ownership policy](../policy/testing.md#upstream-integration-testing-ownership).
|
||||
The [completed implementation plan](implementation.md#stage-18-verify-the-complete-target-and-finish)
|
||||
records the delivered target and its workspace/independent-graph validation.
|
||||
The [remediation record](remediation.md) tracks the focused follow-up review.
|
||||
Testing remains directed to CommandKit-owned interfaces and adaptation under the
|
||||
[upstream testing ownership policy](../policy/testing.md#upstream-integration-testing-ownership).
|
||||
Verify that command inputs and context reach the intended native APIs, including
|
||||
ID-only prompt requests, default/explicit listing filters, and smoke requests.
|
||||
Verify faithful representation of upstream-returned source evidence, optional
|
||||
|
||||
Reference in New Issue
Block a user