Skip to content

Scaffolding for main app #2

@josecelano

Description

@josecelano

Scaffolding for main app

Epic Issue - Tracks the implementation of core scaffolding for the main CLI application.

Parent Issue: #1 (Roadmap)


📋 Overview

This epic tracks the implementation of foundational infrastructure for the production CLI application, including logging setup, command structure, and user experience improvements.


🎯 Tasks

Core Scaffolding

  • 1.1 Setup logging - Issue #3 ✅ Completed

    • Setup logging for production CLI - PR #4
    • Remove ANSI codes from file logging - Issue #5, PR #7
  • 1.2 Create command torrust-tracker-deployer destroy to destroy an environment

  • 1.3 Refactor extract shared code between testing and production for app bootstrapping

    • Issue: TBD (to be created when ready)
  • 1.4 Improve command to use better abstraction to handle presentation layer

    • types to handle user's views, etc
    • Issue: TBD (to be created when ready)
  • 1.5 Create command torrust-tracker-deployer create to create a new environment

    • We need to decide how the user will provide config values.
    • output using println and eprintln
    • Issue: TBD (to be created when ready)
  • 1.6 Create command torrust-tracker-deployer provision to provision VM infrastructure (UI layer only)

    • Note: The App layer ProvisionCommand is already implemented, this task focuses on the console subcommand interface
    • Implementation should call the existing ProvisionCommand business logic
    • Handle user input, validation, and output presentation
    • Issue: TBD (to be created when ready)
  • 1.7 Add levels of verbosity as described in the UX research

    • Implement -v, -vv, -vvv flags for user-facing output
    • See docs/research/UX/ for detailed UX research
    • Issue: TBD (to be created when ready)

Note: See docs/research/UX/ for detailed UX research that will be useful to implement the features in this section.

Future Enhancement: The torrust-tracker-deployer deploy porcelain command (intelligent orchestration of plumbing commands) will be implemented after the core plumbing commands are stable. See docs/features/hybrid-command-architecture/ for the complete specification.


🔗 Related Documentation


📝 Notes


✅ Acceptance Criteria

This epic is complete when:

  • All 7 tasks are implemented and merged
  • Main CLI application has proper logging
  • Core commands (create, provision, destroy) are functional
  • User output verbosity system is implemented
  • Presentation layer abstractions are in place
  • Code is shared between testing and production where appropriate
  • All documentation is updated

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions