Skip to content
This repository was archived by the owner on May 13, 2026. It is now read-only.

Commit 92737bb

Browse files
committed
Update migration next steps
1 parent 2868a8b commit 92737bb

3 files changed

Lines changed: 155 additions & 3 deletions

File tree

ROADMAP.md

Lines changed: 72 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,18 @@
2020
- AceDB bootstrap/runtime migration is now complete for supported SavedVariables paths; one-way versioned legacy cutovers are in place with guarded legacy creation and post-migration cleanup to avoid stale duplicate persistence.
2121
- **Milestone 7 (Minimap/options integration):** Completed.
2222
- Minimap hide/angle, global frame strata, options timers/throttle, Spec dropdown positions, Hunter/Shaman quick-bar positions, Hunter pet stance state and Shaman totem choice state now run through AceDB-backed helpers with one-way versioned legacy cutover and guarded legacy fallback (no legacy table creation on pure read paths).
23-
- **Milestone 8 (AceGUI UI refactor):** Not started.
23+
- **Milestone 8 (AceGUI UI refactor):** Planned (next).
24+
- Replace legacy frame construction screen-by-screen with AceGUI containers/widgets while preserving behavior and slash/open flows.
25+
- **Milestone 9 (Localization and text pipeline):** Planned.
26+
- Consolidate user-facing strings into AceLocale tables and remove duplicated inline literals where feasible.
27+
- **Milestone 10 (Data model and table lifecycle hardening):** Planned.
28+
- Normalize runtime stores and remove ad-hoc table creation paths via centralized getters/validators.
29+
- **Milestone 11 (Scheduler/timers convergence):** Planned.
30+
- Route scattered timers/OnUpdate loops to a constrained scheduler strategy (AceTimer where appropriate, existing loops retained when safer).
31+
- **Milestone 12 (Observability, diagnostics and perf guardrails):** Planned.
32+
- Add lightweight debug/perf toggles and migration diagnostics to validate behavior without chat spam.
33+
- **Milestone 13 (Release hardening and deprecation window close):** Planned.
34+
- Close migration fallback window, document upgrade path, and freeze compatibility guarantees for release.
2435

2536
---
2637

@@ -91,8 +102,61 @@
91102
2. Keep data/control flow equivalent for each migrated screen.
92103
3. Avoid big-bang rewrites.
93104

105+
## Phase D — Full ACE3 expansion plan (post-M7)
106+
107+
### D1. Milestone 8 — AceGUI UI refactor
108+
1. Pick one UI domain per PR (Options, Class, Quest, Raidus auxiliary panes, etc.).
109+
2. Keep slash commands and open/close behavior unchanged.
110+
3. Reuse existing persistence helpers (no duplicate save logic).
111+
112+
**Exit criteria**
113+
- Legacy frame templates are removed only for migrated screens.
114+
- Each migrated screen reaches behavior parity before moving to the next one.
115+
116+
### D2. Milestone 9 — Localization and text pipeline
117+
1. Inventory all user-facing strings in `Core/`, `UI/`, `Features/`.
118+
2. Route strings through locale tables (AceLocale integration when feasible with current packaging).
119+
3. Preserve fallback locale behavior and avoid nil-text regressions.
120+
121+
**Exit criteria**
122+
- New/edited UI text no longer ships as hardcoded literals outside locale tables.
123+
- Missing keys fail gracefully with deterministic fallback.
124+
125+
### D3. Milestone 10 — Data model and table lifecycle hardening
126+
1. Centralize table accessors for high-churn stores (`profile.ui`, runtime bot stores, quick UI caches).
127+
2. Remove duplicate validators and one-off table bootstrap snippets.
128+
3. Enforce read-only accessors that do not create tables unless explicitly requested.
129+
130+
**Exit criteria**
131+
- No uncontrolled table creation on read paths in targeted modules.
132+
- Store normalization helpers are reused across modules.
133+
134+
### D4. Milestone 11 — Scheduler/timers convergence
135+
1. Inventory `OnUpdate`, elapsed counters, delayed whisper/refresh loops.
136+
2. Migrate safe candidates to a centralized scheduler strategy (AceTimer where applicable).
137+
3. Keep ultra-hot paths local if conversion adds risk/regression.
138+
139+
**Exit criteria**
140+
- Timer responsibilities are documented and mapped to one owner per feature.
141+
- Duplicate periodic loops are reduced without behavior drift.
142+
143+
### D5. Milestone 12 — Observability and performance guardrails
144+
1. Add structured debug toggles (off by default) for migration/state transitions.
145+
2. Add lightweight perf counters around roster refresh and high-frequency handlers.
146+
3. Gate diagnostics to avoid chat spam and runtime overhead in normal mode.
147+
148+
**Exit criteria**
149+
- Debug instrumentation can be enabled per subsystem.
150+
- No measurable baseline degradation with diagnostics disabled.
151+
152+
### D6. Milestone 13 — Release hardening and migration window close
153+
1. Define deprecation policy for remaining legacy fallback paths.
154+
2. Add final upgrade notes and rollback instructions.
155+
3. Freeze scope and run full pre-release checklist.
156+
94157
**Exit criteria**
95-
- Screen-by-screen functional parity before moving forward.
158+
- Fallback window closure is documented and predictable.
159+
- Release notes reflect final compatibility contract.
96160

97161
---
98162

@@ -105,7 +169,12 @@
105169
5. Legacy -> AceDB one-way migration.
106170
6. Runtime switch to AceDB.
107171
7. Minimap/options persistence finalization.
108-
8. Optional per-screen AceGUI refactor.
172+
8. Milestone 8 (AceGUI screen-by-screen).
173+
9. Milestone 9 (localization pipeline).
174+
10. Milestone 10 (data model hardening).
175+
11. Milestone 11 (timer convergence).
176+
12. Milestone 12 (observability/perf guardrails).
177+
13. Milestone 13 (release hardening).
109178

110179
---
111180

docs/ace3-expansion-checklist.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# ACE3 Expansion Checklist (Post-M7)
2+
3+
Checklist for the full addon-wide ACE3 expansion after M7 completion.
4+
5+
## Scope and Principles
6+
7+
- [ ] Keep behavior parity first (no feature redesign during migration PRs).
8+
- [ ] Reuse existing helpers before introducing new APIs.
9+
- [ ] Avoid legacy table creation on read paths unless explicitly required.
10+
- [ ] Keep PRs localized per subsystem/screen.
11+
12+
---
13+
14+
## Milestone 8 — AceGUI UI refactor
15+
16+
- [ ] Inventory all legacy frame-based screens and map migration order.
17+
- [ ] Migrate one screen at a time to AceGUI containers/widgets.
18+
- [ ] Preserve slash entry points and open/close behavior.
19+
- [ ] Keep persisted state routed through existing AceDB helpers.
20+
- [ ] Validate visual/interaction parity per migrated screen.
21+
22+
## Milestone 9 — Localization and text pipeline
23+
24+
- [ ] Inventory hardcoded user-facing strings in Core/UI/Features.
25+
- [ ] Move strings into locale tables (AceLocale strategy) where feasible.
26+
- [ ] Add deterministic fallback for missing locale keys.
27+
- [ ] Remove duplicate literals once locale keys are stable.
28+
29+
## Milestone 10 — Data model and table lifecycle hardening
30+
31+
- [ ] Centralize store accessors for profile/runtime tables.
32+
- [ ] Remove duplicate validation/bootstrap snippets.
33+
- [ ] Ensure read accessors are non-creating by default.
34+
- [ ] Add cleanup for empty transient buckets where needed.
35+
36+
## Milestone 11 — Scheduler/timers convergence
37+
38+
- [ ] Inventory all `OnUpdate` loops and elapsed timers.
39+
- [ ] Classify each loop (hot path/local, safe-to-centralize, keep-as-is).
40+
- [ ] Migrate safe loops to a shared scheduler approach.
41+
- [ ] Remove duplicate periodic loops after parity validation.
42+
43+
## Milestone 12 — Observability and perf guardrails
44+
45+
- [ ] Add subsystem debug toggles (off by default).
46+
- [ ] Add lightweight counters around high-frequency handlers.
47+
- [ ] Ensure diagnostics do not spam chat/log by default.
48+
- [ ] Validate no notable overhead in normal mode.
49+
50+
## Milestone 13 — Release hardening and fallback closure
51+
52+
- [ ] Define closure policy for remaining legacy fallback writes.
53+
- [ ] Document upgrade and rollback procedure.
54+
- [ ] Execute full smoke + migration regression pass.
55+
- [ ] Freeze release scope and publish compatibility notes.
56+
57+
---
58+
59+
## Post-M7 Smoke Tests (run per PR)
60+
61+
### 1) Startup / reload safety
62+
- [ ] Addon loads without Lua errors.
63+
- [ ] `/reload` does not duplicate handlers, loops, or startup effects.
64+
65+
### 2) UI parity
66+
- [ ] Main UI toggles and panels open/close identically.
67+
- [ ] Migrated AceGUI screens match legacy behavior.
68+
- [ ] Drag/drop and frame anchoring still restore after relog/reload.
69+
70+
### 3) Persistence and migration safety
71+
- [ ] No read path creates legacy tables accidentally.
72+
- [ ] Legacy writes happen only in approved migration fallback windows.
73+
- [ ] One-way migration markers prevent repeated imports.
74+
75+
### 4) Bot and event flows
76+
- [ ] Roster refresh remains stable under frequent events.
77+
- [ ] Whisper/quest parsing remains non-blocking and accurate.
78+
- [ ] No new chat/event spam regressions.
79+
80+
### 5) Performance sanity
81+
- [ ] No obvious CPU spikes from new scheduler/UI paths.
82+
- [ ] No growth of transient tables across repeated open/close cycles.

docs/ace3-migration-checklist.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# ACE3 Migration Checklist (Before/After Validation)
22

33
Checklist for each migration PR to verify no user-facing regressions.
4+
> Milestones M1-M7 are tracked here. Post-M7 expansion work (M8+) is tracked in `docs/ace3-expansion-checklist.md`.
45
56
## Current Progress Snapshot
67

0 commit comments

Comments
 (0)