-
Couldn't load subscription status.
- 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- 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
- 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 createto 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 provisionto 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,-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
📝 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 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