36 lines
2.3 KiB
Markdown
36 lines
2.3 KiB
Markdown
# Backward-Compatible Command Aliases
|
|
|
|
## Module
|
|
Cli
|
|
|
|
## Status
|
|
IMPLEMENTED
|
|
|
|
## Description
|
|
Old command paths preserved as aliases with deprecation warnings, allowing smooth migration without breaking existing CI pipelines.
|
|
|
|
## Implementation Details
|
|
- **Route Mapping**: `src/Cli/StellaOps.Cli/cli-routes.json` -- JSON-driven route mapping with 60+ deprecated-to-new mappings. Each mapping defines `old` path, `new` path, `type: "deprecated"`, `removeIn` version, and `reason`.
|
|
- **Command Router**: `src/Cli/StellaOps.Cli/Infrastructure/` -- route-based command router that intercepts old paths and redirects to new commands
|
|
- **Deprecation System**: `src/Cli/StellaOps.Cli/Commands/CommandFactory.cs` -- command factory that registers aliases alongside primary commands
|
|
- **Key consolidation mappings**:
|
|
- `notify *` -> `config notify *` (settings consolidation)
|
|
- `admin feeds *` -> `config feeds *` (feed configuration)
|
|
- `feeds list` -> `config feeds list` (feed configuration)
|
|
- `integrations *` -> `config integrations *` (integration configuration)
|
|
- `registry list` -> `config registry list` (registry configuration)
|
|
- `sources list` -> `config sources list` (source configuration)
|
|
- `signals list` -> `config signals list` (signal configuration)
|
|
- `attest verify` -> `verify attestation` (verification consolidation)
|
|
- **Tests**: `src/Cli/__Tests/StellaOps.Cli.Tests/Integration/DeprecationWarningTests.cs`, `src/Cli/__Tests/StellaOps.Cli.Tests/Infrastructure/CommandRouterTests.cs`
|
|
|
|
## E2E Test Plan
|
|
- [ ] Run deprecated `stella notify channels list` and verify it works but shows deprecation warning pointing to `stella config notify channels list`
|
|
- [ ] Run deprecated `stella feeds list` and verify deprecation warning pointing to `stella config feeds list`
|
|
- [ ] Run deprecated `stella attest verify` and verify deprecation warning pointing to `stella verify attestation`
|
|
- [ ] Verify the deprecation warning includes the `removeIn` version (e.g., "will be removed in 3.0")
|
|
- [ ] Verify the new command path works without deprecation warnings
|
|
- [ ] Run deprecated command with `--format json` and verify output still works correctly with warning on stderr
|
|
- [ ] Verify CI pipelines using old commands still exit with correct exit codes
|
|
- [ ] Verify all 60+ route mappings in cli-routes.json have corresponding working aliases
|