Skip to content

Scaffolding for main app - 8/9 tasks complete (89%) #2

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 ✅ Completed

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

  • 1.4 Improve command to use better abstraction to handle presentation layer ✅ COMPLETED - EPIC #154

    • Completed November 12, 2025: Complete reorganization of src/presentation/ layer into a four-layer MVC architecture
    • ✅ Established clean separation: Input → Dispatch → Controllers → Views
    • ✅ Standard terminology: controllers (not commands), views (not user_output)
    • ✅ Container integration for dependency injection
    • ✅ Eliminated duplicate factory patterns
  • 1.5 Create command torrust-tracker-deployer create to create a new environment - EPIC #34 ✅ Completed

    • We need to decide how the user will provide config values.
    • output using println and eprintln
  • 1.6 Create command torrust-tracker-deployer provision to provision VM infrastructure (UI layer only) - Issue #174 ✅ Completed

    • Note: The App layer ProvisionCommand is already implemented, this task focuses on the console subcommand interface
    • Implementation calls the existing ProvisionCommand business logic
    • Handles user input, validation, and output presentation
  • 1.7 Create command torrust-tracker-deployer configure to configure provisioned infrastructure (UI layer only) - Issue #180 ✅ Completed

    • Note: The App layer ConfigureCommand is already implemented, this task focuses on the console subcommand interface
    • Implementation calls the existing ConfigureCommandHandler business logic
    • Handles user input, validation, and output presentation
    • Enables transition from "provisioned" to "configured" state via CLI
  • 1.8 Create command torrust-tracker-deployer test to verify deployment infrastructure (UI layer only) - Issue #188 ✅ Completed

    • Note: The App layer TestCommandHandler is already implemented, this task focuses on the console subcommand interface
    • Implementation calls the existing TestCommandHandler business logic
    • Handles user input, validation, and output presentation
    • Enables verification of deployment state via CLI (cloud-init, Docker, Docker Compose)

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 9 tasks are implemented and merged → Progress: 8/9 tasks completed (89%)
  • Main CLI application has proper logging ✅
  • Core commands (create, provision, destroy) are functional ✅
  • Configure command is accessible via CLI ✅ (Task 1.7)
  • Test command is accessible via CLI ✅ (Task 1.8)
  • Presentation layer abstractions are in place ✅ (Task 1.4)
  • Code is shared between testing and production where appropriate ✅ (Task 1.3)
  • All documentation is updated ✅

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions