Migrate core to the vanity module path
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user