Docs
This commit is contained in:
parent
b992d78ef6
commit
57b5ede338
13 changed files with 198 additions and 21 deletions
83
docs/roadmap.md
Normal file
83
docs/roadmap.md
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
# WoW Backup — Project Roadmap & Next Steps
|
||||
|
||||
This document outlines the current state of the project, remaining core features from the initial masterplan, and future enhancements.
|
||||
|
||||
---
|
||||
|
||||
## 1. Immediate Priority: Feature 5 (Restore System)
|
||||
|
||||
The core backup and scheduling pipeline is complete, but the restoration flow is currently a stub placeholder. Implementing Feature 5 is the final step to complete the original functional scope of `docs/masterplan.md`.
|
||||
|
||||
### Tasks:
|
||||
1. **Restore Engine (`RestoreEngine.kt`)**
|
||||
- Implement `restoreBackup(entry: BackupEntry, targetDir: File): RestoreResult`.
|
||||
- Support restoring from both timestamped directory structures and `.zip` archives (extracting using `ZipInputStream`).
|
||||
- Clean/delete existing target folders (`WTF` and/or `Interface`) safely before copy/extraction.
|
||||
- Implement live progress reporting (`RestoreProgress` with total files, completed count, current file name).
|
||||
- Ensure full cancellation support via Kotlin Coroutines.
|
||||
2. **Safety & Validation Mechanics**
|
||||
- Warn or guard if World of Warcraft is currently running during restoration.
|
||||
- Verify backup integrity and destination disk space before starting destructive deletion.
|
||||
- Create an automatic temporary safety snapshot of current `WTF`/`Interface` folders prior to overwrite.
|
||||
3. **Restore ViewModel (`RestoreViewModel.kt`)**
|
||||
- Expose `RestoreUiState` combining available backups list, selected entry, progress, and confirmation states.
|
||||
- Manage restore lifecycle (start, cancel, dismiss, error handling).
|
||||
4. **Restore Screen UI (`RestoreScreen.kt`)**
|
||||
- Replace placeholder with scrollable list of existing backups displaying date/time, archive size, and format badge.
|
||||
- Material 3 confirmation dialog detailing destructive overwrite.
|
||||
- Progress overlay with `LinearProgressIndicator`, active file, and cancellation button.
|
||||
- Empty state when no backups are present.
|
||||
5. **App Wiring**
|
||||
- Connect `Screen.RESTORE` in `App.kt` to `RestoreScreen`.
|
||||
- Enable the "Restore" button on `StatusScreen.kt`.
|
||||
|
||||
---
|
||||
|
||||
## 2. Testing Infrastructure & Automated Test Suite
|
||||
|
||||
Currently, the project contains no automated test suite (`src/jvmTest` is empty). Adding tests will prevent regressions during future maintenance.
|
||||
|
||||
### Test Targets:
|
||||
1. **`BackupHistoryTest`**:
|
||||
- Timestamp parsing across formats and edge cases.
|
||||
- Backup listing and correct descending sort order.
|
||||
- Retention policy pruning (ensuring only oldest backups exceeding count are deleted).
|
||||
- Metrics computation for directory trees and ZIP files.
|
||||
2. **`BackupEngineTest` & `RestoreEngineTest`**:
|
||||
- File copy accuracy, recursive folder preservation, and attribute retention.
|
||||
- ZIP compression and decompression fidelity.
|
||||
- Cancellation responsiveness and cleanup of partial writes.
|
||||
3. **`ConfigManagerTest`**:
|
||||
- JSON serialization / deserialization defaults and edge cases.
|
||||
- Thread-safe updates and reactive `StateFlow` emissions.
|
||||
4. **`WoWLocationsTest`**:
|
||||
- Install directory heuristics and resolution from root `World of Warcraft` to `_retail_` or `_classic_`.
|
||||
- Missing folder detection and permission warnings.
|
||||
|
||||
---
|
||||
|
||||
## 3. Build Automation & Release Pipeline
|
||||
|
||||
The project contains packaging configurations in `composeApp/build.gradle.kts` and a `release.sh` script, but lacks automated CI/CD workflows.
|
||||
|
||||
### Tasks:
|
||||
1. **GitHub Actions CI Workflow**
|
||||
- Automated compile, lint, and test execution on pull requests and pushes to `main`.
|
||||
- Matrix builds testing on macOS (`macos-latest`) and Windows (`windows-latest`).
|
||||
2. **Automated Distribution Packaging**
|
||||
- Automated artifact generation for `.dmg` (macOS), `.msi` / `.zip` (Windows), and `.deb` (Linux) on GitHub releases.
|
||||
- Code signing and notarization configuration for macOS distributions.
|
||||
|
||||
---
|
||||
|
||||
## 4. Future Enhancements (Post-v1.0)
|
||||
|
||||
1. **Multi-Flavour & Account Profile Support**
|
||||
- Support backing up multiple game versions simultaneously (`_retail_`, `_classic_`, `_classic_era_`, `_ptr_`).
|
||||
- Account-level filtering (allowing selective backup of specific WTF accounts/characters).
|
||||
2. **Cloud Storage & Offsite Sync**
|
||||
- Optional sync integration to Google Drive, Dropbox, OneDrive, or custom S3-compatible buckets.
|
||||
3. **Diff & Changelog Inspector**
|
||||
- Inspect changes between backups (e.g., addon list changes, modified WTF saved variables).
|
||||
4. **Menu Bar Quick Actions**
|
||||
- Add a direct "Backup Now" action item to the system tray context menu.
|
||||
Loading…
Add table
Add a link
Reference in a new issue