Migrate core to the vanity module path

This commit is contained in:
2026-11-04 03:49:38 +00:00
parent 881dae27c4
commit e256eb1cc0
48 changed files with 120 additions and 87 deletions

View File

@@ -2,7 +2,7 @@
CommandKit is distributed as three Go modules. Start with the core and add an
integration module only when the application uses that library. Core and
integration command factories return canonical `commandkit.Command` values.
compatible integration command factories return canonical `commandkit.Command` values.
Applications may install those alongside application-owned `RoutingRule`
declarations through `commandkit.New` or `App.Register`; routing rules are
installed at the application root, not as group children.
@@ -11,10 +11,18 @@ installed at the application root, not as group children.
| Import | Use when |
| --- | --- |
| `gitea.maximumdirect.net/eric/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. |
| `gitea.maximumdirect.net/eric/CommandKit/integrations/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. |
The integration paths in the table are their current source identities; they
use the old core path and do not compose with `go.maximumdirect.net/commandkit`.
For the new core v0.3.0 identity, the planned matched releases are
`go.maximumdirect.net/ckconfig v0.2.0` and `go.maximumdirect.net/ckprompt v0.2.0`.
Update application imports and dependency versions together when those releases
are available. Old and new core paths have distinct Go type identities.
Install the new core with `go get go.maximumdirect.net/commandkit@v0.3.0`.
The two integrations are independent optional imports. `ckprompt` uses the
public scope and error contracts from `ckconfig`; importing it does not add the
`config` family. An application that wants both families passes both returned
@@ -44,7 +52,7 @@ import (
"fmt"
"strconv"
commandkit "gitea.maximumdirect.net/eric/CommandKit"
commandkit "go.maximumdirect.net/commandkit"
)
type GreetInput struct {

View File

@@ -99,7 +99,10 @@ Sibling-checkout references in retired planning records are historical review
evidence, not build dependencies. Implemented contracts belong in CommandKit
under their canonical owners.
The root module does not traverse nested modules. During development, use a
The root module does not traverse nested modules. During the vanity-path
migration, integrations still import the old core identity and cannot compose
with the migrated root until their own module migrations are complete. After
the matched migrations, during development use a
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:

View File

@@ -6,6 +6,10 @@ own the optional ConfigKit and PromptKit integrations. The
[architecture policy](../policy/architecture.md) owns normative boundaries;
this page inventories the implemented owners.
The core module now declares `go.maximumdirect.net/commandkit`. The integration
modules retain their old module and core import identities until their planned
matched releases; Go treats those identities as distinct.
## Root `commandkit`
The root facade owns captured canonical command declarations, application-owned

View File

@@ -2,8 +2,9 @@
## Summary
CommandKit v0.3.0 adds application-owned command and flag aliases and shared
invocation reporting. This pre-1.0 minor release also updates the installation
CommandKit v0.3.0 moves core to `go.maximumdirect.net/commandkit`, adds
application-owned command and flag aliases, shared invocation reporting, and
shell completion. This pre-1.0 minor release also updates the installation
declaration type and Invocation struct shape, replaces the error-first outcome
and diagnostic-delivery APIs, and reserves reporting flag names; review the
migration guidance before upgrading.
@@ -27,9 +28,22 @@ migration guidance before upgrading.
`Outcome.WithExplanation`; attach an optional operation error separately with
`Outcome.WithCause`. Returned `Outcome.Presentation` records output and
diagnostic delivery observations without changing the operation cause.
- Install the optional `Completion` command and declare static choices or
path hints for interactive shell completion. Bash, Zsh, and Fish scripts
use the application's captured commands and routing metadata.
- Maintainer release tooling now uses the root-selected ReleaseKit v0.9.0 tool,
with separate source publication and optional page-only hosted delivery.
## Compatibility and migration
Change core imports from `gitea.maximumdirect.net/eric/CommandKit` to
`go.maximumdirect.net/commandkit` and select v0.3.0. These paths identify
different Go packages, so their types cannot be mixed. Applications using the
integrations should migrate together to the forthcoming matched
`go.maximumdirect.net/ckconfig v0.2.0` and
`go.maximumdirect.net/ckprompt v0.2.0` releases, which depend on the new core;
the existing integration releases retain their old identities.
`New` and `App.Register` now accept `...Declaration` instead of `...Command`.
Command, group, and integration command factories still return `Command`, so
individual factory calls can be passed directly. A `[]Command` cannot be
@@ -65,10 +79,10 @@ remains Go 1.26.8. Core v0.3.0 must be published before preparing dependent
integration releases that adopt it and record downloaded dependency sums; this
release does not change their v0.1.0 release records.
See the [consumer guide](https://gitea.maximumdirect.net/eric/CommandKit/src/tag/v0.3.0/docs/consumers/guide.md),
[CLI reference](https://gitea.maximumdirect.net/eric/CommandKit/src/tag/v0.3.0/docs/cli.md),
and [maintainer release procedure](https://gitea.maximumdirect.net/eric/CommandKit/src/tag/v0.3.0/docs/release.md).
See the [consumer guide](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/v0.3.0/docs/consumers/guide.md),
[CLI reference](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/v0.3.0/docs/cli.md),
and [maintainer release procedure](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/v0.3.0/docs/release.md).
[COPYRIGHT](https://gitea.maximumdirect.net/eric/CommandKit/src/tag/v0.3.0/COPYRIGHT) |
[LICENSE](https://gitea.maximumdirect.net/eric/CommandKit/src/tag/v0.3.0/LICENSE) |
[ATTRIBUTION](https://gitea.maximumdirect.net/eric/CommandKit/src/tag/v0.3.0/docs/oss/attribution.md)
[COPYRIGHT](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/v0.3.0/COPYRIGHT) |
[LICENSE](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/v0.3.0/LICENSE) |
[ATTRIBUTION](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/v0.3.0/docs/oss/attribution.md)

View File

@@ -1,6 +1,6 @@
# CommandKit vanity migration and dependency alignment plan
Status: planned; Stages 1–7 are not started.
Status: Stage 1 complete; Stages 2–7 are not started.
This plan is for the Luna coding agent implementing the
[feature roadmap](integration-dependency-alignment.md). Follow the stages in
@@ -100,7 +100,10 @@ than permanently changing proxy settings. Retain authentic downloaded sums.
## Stage 1: Migrate core identity and prepare its release candidate
**Status:** not started.
**Completed.** The root module, owned imports, component build identity,
consumer guidance, and v0.3.0 release note use the new core identity. The
focused build-identity test passed offline with Go 1.26.8; affected links and
whitespace were checked. The complete candidate suite belongs to publication.
1. Change only the root module declaration to `go.maximumdirect.net/commandkit`.
Migrate root-owned imports in production files, root/external tests, internal