Prepare core alias release notes
This commit is contained in:
48
docs/releases/v0.3.0.md
Normal file
48
docs/releases/v0.3.0.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# CommandKit v0.3.0
|
||||
|
||||
## Summary
|
||||
|
||||
CommandKit v0.3.0 adds application-owned command and flag aliases. This
|
||||
pre-1.0 minor release also updates the installation declaration type and
|
||||
Invocation struct shape; review the migration guidance before upgrading.
|
||||
|
||||
## Changes
|
||||
|
||||
- Declare command shortcuts and global or canonical-command-scoped flag
|
||||
spellings with `Alias`, `FlagAlias`, and `FlagAliasFor`. Install routing rules
|
||||
beside canonical commands through `New` or `App.Register`. Aliases route to
|
||||
existing handlers and preserve the target command's operand and binding
|
||||
behavior.
|
||||
- Read the entered and canonical command paths from `Invocation` with
|
||||
`EnteredPath` and `CanonicalPath`.
|
||||
- Interpret a canonical short value flag such as `-c=` as an explicitly
|
||||
supplied empty value, consistent with `--color=` and `-c ""`.
|
||||
|
||||
## Compatibility and migration
|
||||
|
||||
`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
|
||||
expanded into `...Declaration`; use a `[]Declaration` for mixed reusable
|
||||
collections or convert each command element before expanding it. Function
|
||||
values whose parameter type is `...Command`, including wrappers assigned from
|
||||
`New` or `Register`, must update their signature to `...Declaration`.
|
||||
|
||||
Adding private route fields to `Invocation` means positional struct literals no
|
||||
longer compile. Use keyed fields, for example
|
||||
`commandkit.Invocation{Context: ctx, Streams: streams}`, when constructing an
|
||||
Invocation outside command execution. CommandKit populates the route fields for
|
||||
executed handlers.
|
||||
|
||||
The consumer minimum remains Go 1.26.0 and the maintainer release toolchain
|
||||
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).
|
||||
|
||||
[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)
|
||||
@@ -728,6 +728,14 @@ deferred-work record and accepted ADR were left unchanged.
|
||||
footer are correct. No release launcher, remote push, or tag operation occurs
|
||||
as part of implementing this plan.
|
||||
|
||||
**Completed:** Added `docs/releases/v0.3.0.md` with the `...Declaration`
|
||||
migration, command-slice conversion, function-value signature impact,
|
||||
positional `Invocation` guidance, alias behavior, and `-c=` empty-value
|
||||
correction. The note retains Go 1.26.0 and maintainer Go 1.26.8 and includes
|
||||
candidate-tag links plus the required immutable licensing footer. No published
|
||||
release note, dependency version, sum file, tag, or remote was changed. Prepare
|
||||
integration dependency adoption only after core v0.3.0 is published.
|
||||
|
||||
## Stage 17: Verify the complete target and finish
|
||||
|
||||
**Work**
|
||||
|
||||
Reference in New Issue
Block a user