Overview
Add graduated verbosity levels (-v, -vv, -vvv) to the release command to give users control over the amount of user-facing progress detail displayed. This applies the same verbosity pattern established in the provision and configure commands (tasks 8.1 and 8.2) to the release command.
Parent Epic: #362 - Add levels of verbosity (Roadmap Section 8)
Goals
- Reuse
CommandProgressListener infrastructure from provision/configure commands
- Apply same four verbosity levels to release command
- Show service-specific release steps, template rendering, file deployments at different detail levels
- Maintain backward compatibility (default = Normal level)
- Keep user output completely separate from tracing logs
- Update user documentation with verbosity examples
Verbosity Levels
| Level |
Flag |
Shows |
| Normal |
(default) |
Essential progress and results (2 main phases) |
| Verbose |
-v |
+ 7 service-specific release steps (tracker, prometheus, etc.) |
| VeryVerbose |
-vv |
+ Template rendering, file paths, deployment results |
| Debug |
-vvv |
+ Ansible commands, working directories, full output |
Service Release Steps
The release command executes 7 service-specific operations:
- Tracker - storage creation, database init, config rendering/deployment
- Prometheus - config rendering/deployment
- Grafana - dashboard provisioning, config deployment
- MySQL - database setup (if enabled)
- Backup - backup container config (if enabled)
- Caddy - reverse proxy config (if HTTPS enabled)
- Docker Compose - compose file rendering and deployment
Implementation Plan
Phase 1: Handler-Level Verbosity (3-4 hours)
- Update
ReleaseCommandHandler::execute() to accept optional CommandProgressListener
- Add progress reporting for the 7 service release steps
- Pass listener from controller to handler
- Test Normal and Verbose levels
Phase 2: Step-Level Verbosity (5-7 hours)
- Update all 7 service release functions to accept listener
- Add
on_detail() calls for template rendering, file deployments, storage operations
- Add
on_debug() calls for Ansible commands, working directories, paths
- Test VeryVerbose and Debug levels
Phase 3: Documentation (2-3 hours)
- Add "Verbosity Levels" section to
docs/user-guide/commands/release.md
- Include examples for all 4 verbosity levels
- Document use cases and combined flag usage
Total Estimated Time: 10-14 hours
Architecture
- Pattern: Same as provision/configure commands - reuse
CommandProgressListener trait
- DDD Layer: Application (
src/application/command_handlers/release/)
- Files: handler.rs, workflow.rs, steps/* (7 service modules), controller
Reference Implementations
Acceptance Criteria
Quality:
Functionality:
Documentation:
Related
Overview
Add graduated verbosity levels (
-v,-vv,-vvv) to thereleasecommand to give users control over the amount of user-facing progress detail displayed. This applies the same verbosity pattern established in the provision and configure commands (tasks 8.1 and 8.2) to the release command.Parent Epic: #362 - Add levels of verbosity (Roadmap Section 8)
Goals
CommandProgressListenerinfrastructure from provision/configure commandsVerbosity Levels
-v-vv-vvvService Release Steps
The release command executes 7 service-specific operations:
Implementation Plan
Phase 1: Handler-Level Verbosity (3-4 hours)
ReleaseCommandHandler::execute()to accept optionalCommandProgressListenerPhase 2: Step-Level Verbosity (5-7 hours)
on_detail()calls for template rendering, file deployments, storage operationson_debug()calls for Ansible commands, working directories, pathsPhase 3: Documentation (2-3 hours)
docs/user-guide/commands/release.mdTotal Estimated Time: 10-14 hours
Architecture
CommandProgressListenertraitsrc/application/command_handlers/release/)Reference Implementations
Acceptance Criteria
Quality:
Functionality:
-v,-vv,-vvvflagsDocumentation:
Related