62 lines
3.3 KiB
Markdown
62 lines
3.3 KiB
Markdown
|
|
# CommandKit v0.1.0
|
||
|
|
|
||
|
|
## Summary
|
||
|
|
|
||
|
|
CommandKit's initial release provides a Go library for consistent CLI inspection,
|
||
|
|
command syntax, and shared command infrastructure. Applications register their
|
||
|
|
own domain commands alongside CommandKit's standard inspection families.
|
||
|
|
This release is a source-only Go module.
|
||
|
|
|
||
|
|
## Features
|
||
|
|
|
||
|
|
- An instance-owned command registry with composable groups, typed flag and
|
||
|
|
operand bindings, and explicit presence tracking for empty, false, and zero
|
||
|
|
values. Each invocation has fresh parsing state.
|
||
|
|
- A root public `commandkit` facade with Cobra-backed routing and parsing behind
|
||
|
|
an internal adapter. Applications supply context and streams and retain their
|
||
|
|
startup, acquisition, domain behavior, and process-exit decisions.
|
||
|
|
- Metadata-driven help and version reporting. Version output defaults to the
|
||
|
|
application identity and can explicitly select the embedded CommandKit identity.
|
||
|
|
- Configuration scope discovery, validation, native effective YAML display,
|
||
|
|
source inventory, and path explanation through application-supplied providers
|
||
|
|
and ConfigKit adapters. Aggregate effective display emits a YAML document per
|
||
|
|
selected scope with scope labels.
|
||
|
|
- Independent registration of PromptKit engine configuration inspection and
|
||
|
|
optional named prompt/profile inspection, with text and YAML definition reports.
|
||
|
|
- Invocation outcomes that preserve application domain classifications and
|
||
|
|
supported error identity, with diagnostic and report-delivery failure reporting.
|
||
|
|
- Reused command and scope metadata, indexed command lookup, invocation-local
|
||
|
|
backend sessions, requested-format report rendering, and fewer YAML framing
|
||
|
|
allocations.
|
||
|
|
|
||
|
|
See the [CLI reference](https://gitea.maximumdirect.net/eric/CommandKit/src/tag/v0.1.0/docs/cli.md)
|
||
|
|
for command contracts and the [consumer guide](https://gitea.maximumdirect.net/eric/CommandKit/src/tag/v0.1.0/docs/consumers/guide.md)
|
||
|
|
for integration and maintained examples. Semantic configuration comparison and
|
||
|
|
PromptKit catalog listing remain deferred.
|
||
|
|
|
||
|
|
## Requirements and adoption
|
||
|
|
|
||
|
|
**Go 1.26.0 or newer is required.** During development, the declared minimum
|
||
|
|
increased from Go 1.25.5 to 1.26.0 with the adoption of ReleaseKit v0.3.0.
|
||
|
|
ReleaseKit is a maintainer tool dependency in the root module graph, so its Go
|
||
|
|
requirement also applies to library consumers; production packages do not import
|
||
|
|
ReleaseKit. Consumers using Go 1.25 must upgrade their toolchain before adopting
|
||
|
|
v0.1.0. The selected maintainer release toolchain is Go 1.26.8, distinct from the
|
||
|
|
consumer minimum.
|
||
|
|
|
||
|
|
Select the released module version with:
|
||
|
|
|
||
|
|
```sh
|
||
|
|
go get gitea.maximumdirect.net/eric/CommandKit@v0.1.0
|
||
|
|
```
|
||
|
|
|
||
|
|
Applications migrating from their own CLI implementations should align standard
|
||
|
|
command paths and syntax with CommandKit, then update operator documentation and
|
||
|
|
subprocess callers for those intentional changes. Application-specific commands
|
||
|
|
remain application-owned. Compatibility for subsequent releases follows the
|
||
|
|
[release policy](https://gitea.maximumdirect.net/eric/CommandKit/src/tag/v0.1.0/docs/policy/release.md).
|
||
|
|
|
||
|
|
[COPYRIGHT](https://gitea.maximumdirect.net/eric/CommandKit/src/tag/v0.1.0/COPYRIGHT) |
|
||
|
|
[LICENSE](https://gitea.maximumdirect.net/eric/CommandKit/src/tag/v0.1.0/LICENSE) |
|
||
|
|
[ATTRIBUTION](https://gitea.maximumdirect.net/eric/CommandKit/src/tag/v0.1.0/docs/oss/attribution.md)
|