Skip to content

Comments

feat: add verbosity levels to release command#368

Merged
josecelano merged 3 commits intomainfrom
367-add-verbosity-levels-to-release-command
Feb 18, 2026
Merged

feat: add verbosity levels to release command#368
josecelano merged 3 commits intomainfrom
367-add-verbosity-levels-to-release-command

Conversation

@josecelano
Copy link
Member

This PR implements verbosity levels for the release command, matching the pattern already established in the provision and configure commands.

Overview

Adds four verbosity levels to provide users with granular control over progress output during release operations:

  • Normal (default): Shows essential progress only
  • Verbose (-v): Shows all 7 service-specific release steps
  • Very Verbose (-vv): Shows detailed operations (directories, templates, deployments)
  • Debug (-vvv): Shows technical details (Ansible commands, working directories, playbooks)

Implementation Details

Handler-Level Integration

  • Updated release/handler.rs to accept CommandProgressListener parameter
  • Added TOTAL_RELEASE_STEPS constant (7 steps) for progress tracking
  • Modified workflow to emit step-started events for each service

Step-Level Progress Reporting

All 7 service release steps now emit context-appropriate messages:

  • Tracker: Storage creation, database initialization, config deployment
  • Prometheus: Storage directories, config rendering/deployment
  • Grafana: Storage setup, provisioning file deployment
  • MySQL: (Conditional, no additional detail messages)
  • Backup: (Conditional, no additional detail messages)
  • Caddy: (Conditional, no additional detail messages)
  • Docker Compose: Template rendering, file deployment

Architecture Highlights

  • Maintains separation of concerns (Presentation → Application → Infrastructure layers)
  • Reuses existing VerboseProgressListener from presentation layer
  • Progress messages align with DDD patterns and user-friendly error principles

Testing

  • ✅ Unit tests updated and passing
  • ✅ Pre-commit checks passed (linters, clippy, rustfmt, machete)
  • ✅ Manual testing with real deployment workflows
  • ✅ All verbosity levels validated with actual command output

Documentation

  • Updated docs/user-guide/commands/release.md with comprehensive verbosity examples
  • Added symbol legend (⏳ ✅ 📋 🔍) for output interpretation
  • Included use cases for each verbosity level
  • All documentation examples verified with real command output

Closes

Closes #367

@josecelano josecelano self-assigned this Feb 18, 2026
@josecelano
Copy link
Member Author

ACK 6af8992

@josecelano josecelano merged commit 5075791 into main Feb 18, 2026
39 checks passed
@josecelano josecelano mentioned this pull request Feb 18, 2026
41 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add verbosity levels to release command

1 participant