Prepare the initial CommandKit release note
This commit is contained in:
61
docs/releases/v0.1.0.md
Normal file
61
docs/releases/v0.1.0.md
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
# 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)
|
||||||
@@ -79,7 +79,7 @@ target. Reconsider them only with concrete motivation and review of ownership,
|
|||||||
invocation state, native reports, and the affected contracts. Retained measurement
|
invocation state, native reports, and the affected contracts. Retained measurement
|
||||||
records are historical evidence, not performance guarantees or release gates.
|
records are historical evidence, not performance guarantees or release gates.
|
||||||
|
|
||||||
## Consumer adoption and release preparation
|
## Consumer adoption
|
||||||
|
|
||||||
Consumer migrations remain separate from library delivery. Applications can
|
Consumer migrations remain separate from library delivery. Applications can
|
||||||
replace duplicated standard handlers and routing, then update their CLI docs
|
replace duplicated standard handlers and routing, then update their CLI docs
|
||||||
@@ -87,8 +87,3 @@ and subprocess consumers for intentional changes while retaining domain commands
|
|||||||
No migration order or claim about individual applications' adoption is recorded
|
No migration order or claim about individual applications' adoption is recorded
|
||||||
here; the [consumer guide](../consumers/guide.md) and maintained examples provide
|
here; the [consumer guide](../consumers/guide.md) and maintained examples provide
|
||||||
integration guidance.
|
integration guidance.
|
||||||
|
|
||||||
The next CommandKit release note must explain the Go 1.26.0 minimum and the
|
|
||||||
consumer action required by the ReleaseKit v0.3.0 upgrade. Version selection,
|
|
||||||
matching notes, and publication follow the [maintainer procedure](../release.md).
|
|
||||||
This cleanup does not select a release version or publish a release.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user