Initial commit: add AutoDeploy project
This commit is contained in:
63
docs/superpowers/plans/2026-07-02-deploy-tool-workbench.md
Normal file
63
docs/superpowers/plans/2026-07-02-deploy-tool-workbench.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user