64 lines
2.5 KiB
Markdown
64 lines
2.5 KiB
Markdown
|
|
# Deploy Tool Workbench Implementation Plan
|
||
|
|
|
||
|
|
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||
|
|
|
||
|
|
**Goal:** Build a Python tkinter workbench for detecting and deploying Spring Boot + Vue separated projects.
|
||
|
|
|
||
|
|
**Architecture:** Core logic lives in testable modules for scanning, environment checks, and deployment planning. The GUI imports those modules and presents their results in a left-nav workbench with dashboard cards, settings, and logs.
|
||
|
|
|
||
|
|
**Tech Stack:** Python 3 standard library, tkinter/ttk, unittest.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Task 1: Core Project Scanner
|
||
|
|
|
||
|
|
**Files:**
|
||
|
|
- Create: `deploy_tool/scanner.py`
|
||
|
|
- Test: `tests/test_scanner.py`
|
||
|
|
|
||
|
|
- [ ] Write tests for detecting backend, frontend, and SQL files from temporary folders.
|
||
|
|
- [ ] Run `python -m unittest tests.test_scanner` and verify tests fail because the module does not exist.
|
||
|
|
- [ ] Implement scanner dataclasses and `scan_project`.
|
||
|
|
- [ ] Run `python -m unittest tests.test_scanner` and verify pass.
|
||
|
|
|
||
|
|
### Task 2: Environment Checks
|
||
|
|
|
||
|
|
**Files:**
|
||
|
|
- Create: `deploy_tool/environment.py`
|
||
|
|
- Test: `tests/test_environment.py`
|
||
|
|
|
||
|
|
- [ ] Write tests using an injected command runner for installed and missing commands.
|
||
|
|
- [ ] Run `python -m unittest tests.test_environment` and verify tests fail because the module does not exist.
|
||
|
|
- [ ] Implement environment check result types and command checks.
|
||
|
|
- [ ] Run `python -m unittest tests.test_environment` and verify pass.
|
||
|
|
|
||
|
|
### Task 3: Deployment Plan
|
||
|
|
|
||
|
|
**Files:**
|
||
|
|
- Create: `deploy_tool/deployer.py`
|
||
|
|
- Test: `tests/test_deployer.py`
|
||
|
|
|
||
|
|
- [ ] Write tests that generate backend, frontend, and SQL deployment command steps.
|
||
|
|
- [ ] Run `python -m unittest tests.test_deployer` and verify tests fail because the module does not exist.
|
||
|
|
- [ ] Implement `build_deployment_plan`.
|
||
|
|
- [ ] Run `python -m unittest tests.test_deployer` and verify pass.
|
||
|
|
|
||
|
|
### Task 4: Workbench GUI
|
||
|
|
|
||
|
|
**Files:**
|
||
|
|
- Create: `deploy_tool/gui.py`
|
||
|
|
- Create: `main.py`
|
||
|
|
|
||
|
|
- [ ] Implement tkinter layout with sidebar, top action bar, dashboard cards, config form, and log output.
|
||
|
|
- [ ] Wire folder selection, scan, environment check, and deployment plan preview.
|
||
|
|
- [ ] Keep long operations on background threads and push messages to the UI queue.
|
||
|
|
|
||
|
|
### Task 5: Documentation and Verification
|
||
|
|
|
||
|
|
**Files:**
|
||
|
|
- Create: `README.md`
|
||
|
|
|
||
|
|
- [ ] Document usage, features, and current local-only deployment scope.
|
||
|
|
- [ ] Run `python -m unittest`.
|
||
|
|
- [ ] Run `python -m py_compile main.py deploy_tool/*.py`.
|