Files
git.stella-ops.org/docs/features/unchecked/cli/backward-compatible-command-aliases.md

2.3 KiB

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