-
Notifications
You must be signed in to change notification settings - Fork 0
Description
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
-
1.2 Create command
torrust-tracker-deployer destroyto destroy an environment β Completed- Parent EPIC: Implement
destroyCommand - GitHub Issue EPIC: Destroy Command ImplementationΒ #8 (8-epic-destroy-command.md) - Split into two child EPICs for incremental delivery:
- Child EPIC EPIC: App Layer Destroy CommandΒ #9: App Layer Destroy Command - Core business logic (
9-epic-app-layer-destroy-command.md) - Child EPIC EPIC: UI Layer Destroy CommandΒ #10: UI Layer Destroy Command - CLI interface (
10-epic-ui-layer-destroy-command.md) (depends on EPIC EPIC: App Layer Destroy CommandΒ #9)
- Child EPIC EPIC: App Layer Destroy CommandΒ #9: App Layer Destroy Command - Core business logic (
- Note: It will depend on the environment status. For example, if it has not been provisioned we only have to delete the persistent data.
- For manual testing we can create envs with the E2E full test (there is an option to keep the infra after testing)
- Parent EPIC: Implement
-
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
- β
Completed November 12, 2025: Complete reorganization of
-
1.5 Create command
torrust-tracker-deployer createto 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 provisionto 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 configureto 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 testto 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)
-
1.9 Add levels of verbosity as described in the UX research
- Implement
-v,-vv,-vvvflags for user-facing output - See
docs/research/UX/for detailed UX research - Issue: TBD (to be created when ready)
- Implement
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
- Roadmap
- UX Research
- Development Principles
- Presentation Layer Reorganization Plan - Details for completed task 1.4
π Notes
- Each task should have a dedicated issue created when work begins
- Link individual task issues to this epic for tracking
- Follow the development process outlined in
docs/features/README.md - Task 1.1 (Setup logging) has detailed specification in
docs/issues/3-setup-logging-for-production-cli.md
β 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)
- User output verbosity system is implemented (Task 1.9)
- 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 β