Update Issue Roadmap

John McCardle 2025-12-02 03:11:58 +00:00
parent d0211450e6
commit da291638c5
1 changed files with 339 additions and 339 deletions

@ -1,339 +1,339 @@
# Issue Roadmap # Issue Roadmap
**Status:** 46 open issues (as of October 2025) **Status:** 46 open issues (as of October 2025)
**Organization:** Issues grouped by system and priority tier **Organization:** Issues grouped by system and priority tier
**Related Pages:** **Related Pages:**
- [[Strategic-Direction]] - Project priorities - [[Strategic-Direction]] - Project priorities
- [[Design-Proposals]] - Major architectural proposals - [[Design-Proposals]] - Major architectural proposals
- [[Home]] - Documentation hub - [[Home]] - Documentation hub
--- ---
## Overview ## Overview
This page organizes McRogueFace's 46 open issues by system and priority. Use this to understand what's being worked on and what's planned. This page organizes McRogueFace's 46 open issues by system and priority. Use this to understand what's being worked on and what's planned.
**Priority Tiers:** **Priority Tiers:**
- **Tier 1: Active Development** - Current focus, critical path to v1.0 - **Tier 1: Active Development** - Current focus, critical path to v1.0
- **Tier 2: Foundation Work** - Important but not blocking v1.0 - **Tier 2: Foundation Work** - Important but not blocking v1.0
- **Tier 3: Future Features** - Deferred until after v1.0 - **Tier 3: Future Features** - Deferred until after v1.0
--- ---
## Tier 1: Active Development (Foundation) ## Tier 1: Active Development (Foundation)
### Performance & Optimization System ### Performance & Optimization System
**Priority:** IMMEDIATE - Critical path to v1.0 **Priority:** IMMEDIATE - Critical path to v1.0
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#104](../../issues/104) | Basic profiling/metrics | ✅ Completed Oct 2025 | | [#104](../../issues/104) | Basic profiling/metrics | ✅ Completed Oct 2025 |
| [#116](../../issues/116) | Dirty Flag System | 🔄 Next priority | | [#116](../../issues/116) | Dirty Flag System | 🔄 Next priority |
| [#115](../../issues/115) | SpatialHash Implementation | 🔄 High priority | | [#115](../../issues/115) | SpatialHash Implementation | 🔄 High priority |
| [#117](../../issues/117) | Memory Pool for Entities | ⏳ After SpatialHash | | [#117](../../issues/117) | Memory Pool for Entities | ⏳ After SpatialHash |
| [#113](../../issues/113) | Batch Operations for Grid | ⏳ After dirty flags | | [#113](../../issues/113) | Batch Operations for Grid | ⏳ After dirty flags |
**Related Wiki:** [[Performance-and-Profiling]] **Related Wiki:** [[Performance-and-Profiling]]
**Goal:** 60 FPS with 10,000 entities and 100x100 grid **Goal:** 60 FPS with 10,000 entities and 100x100 grid
--- ---
### Animation System ### Animation System
**Priority:** HIGH - Blocks tutorial completion **Priority:** HIGH - Blocks tutorial completion
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#120](../../issues/120) | Animation Property Locking | ⏳ After performance work | | [#120](../../issues/120) | Animation Property Locking | ⏳ After performance work |
| [#100](../../issues/100) | Rotation Support | ⏳ API consistency needed | | [#100](../../issues/100) | Rotation Support | ⏳ API consistency needed |
**Related Wiki:** [[Animation-System]] **Related Wiki:** [[Animation-System]]
**Goal:** Consistent API suitable for tutorials **Goal:** Consistent API suitable for tutorials
--- ---
### Grid System ### Grid System
**Priority:** HIGH - Performance and features **Priority:** HIGH - Performance and features
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#124](../../issues/124) | Grid Point Animation | ⏳ Depends on animation fixes | | [#124](../../issues/124) | Grid Point Animation | ⏳ Depends on animation fixes |
| [#123](../../issues/123) | Grid Subgrid System | ⏳ Large world support | | [#123](../../issues/123) | Grid Subgrid System | ⏳ Large world support |
| [#114](../../issues/114) | CellView API | ⏳ Grid ergonomics | | [#114](../../issues/114) | CellView API | ⏳ Grid ergonomics |
| [#64](../../issues/64) | TCOD GridPointState updates | ⏳ FOV integration | | [#64](../../issues/64) | TCOD GridPointState updates | ⏳ FOV integration |
**Related Wiki:** [[Grid-System]], [[Grid-Rendering-Pipeline]], [[Grid-TCOD-Integration]] **Related Wiki:** [[Grid-System]], [[Grid-Rendering-Pipeline]], [[Grid-TCOD-Integration]]
--- ---
### Python Binding Layer ### Python Binding Layer
**Priority:** HIGH - API consistency for v1.0 **Priority:** HIGH - API consistency for v1.0
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#126](../../issues/126) | Perfect Python Interface Generation | ⏳ After API stabilization | | [#126](../../issues/126) | Perfect Python Interface Generation | ⏳ After API stabilization |
| [#109](../../issues/109) | mcrfpy.Vector Convenience | ⏳ Minor ergonomics | | [#109](../../issues/109) | mcrfpy.Vector Convenience | ⏳ Minor ergonomics |
| [#101](../../issues/101) | Standardize Constructor Defaults | ⏳ API consistency | | [#101](../../issues/101) | Standardize Constructor Defaults | ⏳ API consistency |
**Related Wiki:** [[Python-Binding-Layer]], [[Adding-Python-Bindings]] **Related Wiki:** [[Python-Binding-Layer]], [[Adding-Python-Bindings]]
--- ---
### Documentation ### Documentation
**Priority:** HIGH - Needed for v1.0 release **Priority:** HIGH - Needed for v1.0 release
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#92](../../issues/92) | Inline C++ Documentation System | ⏳ Infrastructure exists | | [#92](../../issues/92) | Inline C++ Documentation System | ⏳ Infrastructure exists |
| [#91](../../issues/91) | Python Type Stub Files (.pyi) | ⏳ IDE support | | [#91](../../issues/91) | Python Type Stub Files (.pyi) | ⏳ IDE support |
| [#97](../../issues/97) | Automated API Documentation | ⏳ Extract from inline docs | | [#97](../../issues/97) | Automated API Documentation | ⏳ Extract from inline docs |
| [#48](../../issues/48) | Compilation Guide | ⏳ Developer onboarding | | [#48](../../issues/48) | Compilation Guide | ⏳ Developer onboarding |
**Related Wiki:** [[Adding-Python-Bindings]] (inline docs section) **Related Wiki:** [[Adding-Python-Bindings]] (inline docs section)
--- ---
## Tier 2: Foundation Work ## Tier 2: Foundation Work
### UI Component Hierarchy ### UI Component Hierarchy
**Priority:** MEDIUM - Architectural improvements **Priority:** MEDIUM - Architectural improvements
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#122](../../issues/122) | Parent-Child UI System | ⏳ UI architecture enhancement | | [#122](../../issues/122) | Parent-Child UI System | ⏳ UI architecture enhancement |
| [#118](../../issues/118) | Scene as Drawable | ⏳ Composition pattern | | [#118](../../issues/118) | Scene as Drawable | ⏳ Composition pattern |
| [#102](../../issues/102) | Global Position Property | ⏳ Nested UI support | | [#102](../../issues/102) | Global Position Property | ⏳ Nested UI support |
| [#10](../../issues/10) | Visibility: Skip Render/Click | ⏳ Performance optimization | | [#10](../../issues/10) | Visibility: Skip Render/Click | ⏳ Performance optimization |
**Related Wiki:** [[UI-Component-Hierarchy]] **Related Wiki:** [[UI-Component-Hierarchy]]
--- ---
### Input & Events ### Input & Events
**Priority:** MEDIUM - Fix bugs, improve ergonomics **Priority:** MEDIUM - Fix bugs, improve ergonomics
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#111](../../issues/111) | Click Events Broken in Headless | 🐛 Bug - headless mode | | [#111](../../issues/111) | Click Events Broken in Headless | 🐛 Bug - headless mode |
| [#1](../../issues/1) | Resize Event for Scene | ⏳ Window management | | [#1](../../issues/1) | Resize Event for Scene | ⏳ Window management |
| [#53](../../issues/53) | Alternative Input Methods | ⏳ Accessibility | | [#53](../../issues/53) | Alternative Input Methods | ⏳ Accessibility |
**Related Wiki:** [[Input-and-Events]] **Related Wiki:** [[Input-and-Events]]
--- ---
### Grid Utilities ### Grid Utilities
**Priority:** MEDIUM - Quality of life **Priority:** MEDIUM - Quality of life
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#20](../../issues/20) | UIGrid: Replace Vector Getters/Setters | ⏳ API cleanup | | [#20](../../issues/20) | UIGrid: Replace Vector Getters/Setters | ⏳ API cleanup |
| [#16](../../issues/16) | Map Data via GridPointState | ⏳ Data access pattern | | [#16](../../issues/16) | Map Data via GridPointState | ⏳ Data access pattern |
| [#15](../../issues/15) | UIGridPointState Collection | ⏳ Collection pattern | | [#15](../../issues/15) | UIGridPointState Collection | ⏳ Collection pattern |
**Related Wiki:** [[Grid-System]] **Related Wiki:** [[Grid-System]]
--- ---
### UI Element Management ### UI Element Management
**Priority:** LOW - Nice to have **Priority:** LOW - Nice to have
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#41](../../issues/41) | Use Names as Tags / .find() | ⏳ Element search | | [#41](../../issues/41) | Use Names as Tags / .find() | ⏳ Element search |
| [#40](../../issues/40) | UIDrawable Overwriting by Name | ⏳ Element management | | [#40](../../issues/40) | UIDrawable Overwriting by Name | ⏳ Element management |
**Related Wiki:** [[UI-Component-Hierarchy]] **Related Wiki:** [[UI-Component-Hierarchy]]
--- ---
## Tier 3: Future Features (Post-v1.0) ## Tier 3: Future Features (Post-v1.0)
### Advanced Rendering ### Advanced Rendering
**Priority:** LOW - Post-v1.0 **Priority:** LOW - Post-v1.0
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#107](../../issues/107) | Particle System | ⏸️ Deferred - advanced feature | | [#107](../../issues/107) | Particle System | ⏸️ Deferred - advanced feature |
| [#106](../../issues/106) | Shader Support | ⏸️ Deferred - advanced feature | | [#106](../../issues/106) | Shader Support | ⏸️ Deferred - advanced feature |
**Rationale:** Advanced rendering features add complexity. Focus on foundation first. **Rationale:** Advanced rendering features add complexity. Focus on foundation first.
--- ---
### Distribution & Packaging ### Distribution & Packaging
**Priority:** MEDIUM - Post-v1.0 API freeze **Priority:** MEDIUM - Post-v1.0 API freeze
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#70](../../issues/70) | Package without Embedded Interpreter | ⏸️ Deferred - needs stable API | | [#70](../../issues/70) | Package without Embedded Interpreter | ⏸️ Deferred - needs stable API |
**Rationale:** Wait for v1.0 API freeze before packaging work. **Rationale:** Wait for v1.0 API freeze before packaging work.
See [[Strategic-Direction]] for pip packaging discussion. See [[Strategic-Direction]] for pip packaging discussion.
--- ---
### Demo Targets ### Demo Targets
**Priority:** LOW - Community engagement **Priority:** LOW - Community engagement
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#67](../../issues/67) | Grid Stitching: Infinite World | ⏸️ Demo - technical showcase | | [#67](../../issues/67) | Grid Stitching: Infinite World | ⏸️ Demo - technical showcase |
| [#62](../../issues/62) | Multiple Windows | ⏸️ Demo - advanced use case | | [#62](../../issues/62) | Multiple Windows | ⏸️ Demo - advanced use case |
| [#55](../../issues/55) | Agent Simulation Environment | ⏸️ Demo - research use case | | [#55](../../issues/55) | Agent Simulation Environment | ⏸️ Demo - research use case |
| [#54](../../issues/54) | Jupyter Notebook Interface | ⏸️ Demo - research/teaching | | [#54](../../issues/54) | Jupyter Notebook Interface | ⏸️ Demo - research/teaching |
| [#46](../../issues/46) | Subinterpreter Tests | ⏸️ Demo - technical exploration | | [#46](../../issues/46) | Subinterpreter Tests | ⏸️ Demo - technical exploration |
| [#45](../../issues/45) | Accessibility Modes | ⏸️ Demo - accessibility showcase | | [#45](../../issues/45) | Accessibility Modes | ⏸️ Demo - accessibility showcase |
| [#36](../../issues/36) | SFML-DearImgui Usage | ⏸️ Demo - UI framework integration | | [#36](../../issues/36) | SFML-DearImgui Usage | ⏸️ Demo - UI framework integration |
**Rationale:** Demos are valuable for showcasing capabilities but not critical for v1.0. **Rationale:** Demos are valuable for showcasing capabilities but not critical for v1.0.
--- ---
### Platform & Integration ### Platform & Integration
**Priority:** LOW - Specialized use cases **Priority:** LOW - Specialized use cases
| Issue | Title | Status | | Issue | Title | Status |
|-------|-------|--------| |-------|-------|--------|
| [#125](../../issues/125) | Gitea/Forgejo Issues Automation | ⏸️ Tooling - project management | | [#125](../../issues/125) | Gitea/Forgejo Issues Automation | ⏸️ Tooling - project management |
| [#75](../../issues/75) | "Not Responding" with REPL | 🐛 Bug - REPL interaction | | [#75](../../issues/75) | "Not Responding" with REPL | 🐛 Bug - REPL interaction |
| [#66](../../issues/66) | Standardize Audio Handling | ⏸️ Audio system refactor | | [#66](../../issues/66) | Standardize Audio Handling | ⏸️ Audio system refactor |
| [#65](../../issues/65) | Python Explorer Scene / Console | ⏸️ Developer tools | | [#65](../../issues/65) | Python Explorer Scene / Console | ⏸️ Developer tools |
| [#35](../../issues/35) | TCOD as Built-in Module | ⏸️ Distribution enhancement | | [#35](../../issues/35) | TCOD as Built-in Module | ⏸️ Distribution enhancement |
| [#14](../../issues/14) | SFML Python Library | ⏸️ Library extraction | | [#14](../../issues/14) | SFML Python Library | ⏸️ Library extraction |
--- ---
## System Labels (Proposed) ## System Labels (Proposed)
To improve organization, these system labels are recommended: To improve organization, these system labels are recommended:
**System Labels:** **System Labels:**
- `system:grid` - Grid system and spatial containers - `system:grid` - Grid system and spatial containers
- `system:animation` - Animation and property interpolation - `system:animation` - Animation and property interpolation
- `system:ui-hierarchy` - UI component hierarchy and composition - `system:ui-hierarchy` - UI component hierarchy and composition
- `system:python-binding` - Python/C++ binding layer - `system:python-binding` - Python/C++ binding layer
- `system:performance` - Performance optimization and profiling - `system:performance` - Performance optimization and profiling
- `system:documentation` - Documentation infrastructure - `system:documentation` - Documentation infrastructure
- `system:rendering` - Rendering pipeline and visuals - `system:rendering` - Rendering pipeline and visuals
- `system:input` - Input handling and events - `system:input` - Input handling and events
**Priority Labels:** **Priority Labels:**
- `priority:tier1-active` - Current development focus - `priority:tier1-active` - Current development focus
- `priority:tier2-foundation` - Important foundation work - `priority:tier2-foundation` - Important foundation work
- `priority:tier3-future` - Future/deferred features - `priority:tier3-future` - Future/deferred features
**Workflow Labels:** **Workflow Labels:**
- `workflow:needs-documentation` - Needs docs before/after implementation - `workflow:needs-documentation` - Needs docs before/after implementation
- `workflow:needs-benchmark` - Needs performance testing - `workflow:needs-benchmark` - Needs performance testing
- `workflow:blocked-by-foundation` - Waiting on foundation fixes - `workflow:blocked-by-foundation` - Waiting on foundation fixes
See Phase 3 of wiki migration for label creation and tagging. See Phase 3 of wiki migration for label creation and tagging.
--- ---
## Critical Path to v1.0 ## Critical Path to v1.0
Based on [[Strategic-Direction]], the critical path is: Based on [[Strategic-Direction]], the critical path is:
``` ```
1. Performance Foundation (Oct-Nov 2025) 1. Performance Foundation (Oct-Nov 2025)
- Grid dirty flags (#116) - Grid dirty flags (#116)
- SpatialHash (#115) - SpatialHash (#115)
- Batch operations (#113) - Batch operations (#113)
2. Animation System Overhaul (Dec 2025-Jan 2026) 2. Animation System Overhaul (Dec 2025-Jan 2026)
- Property locking (#120) - Property locking (#120)
- Rotation support (#100) - Rotation support (#100)
- API consistency - API consistency
3. Tutorial Completion (Feb-Mar 2026) 3. Tutorial Completion (Feb-Mar 2026)
- Parts 7-10 on stable foundation - Parts 7-10 on stable foundation
- Testing framework - Testing framework
- Documentation sprint - Documentation sprint
4. v1.0 Release (Apr 2026) 4. v1.0 Release (Apr 2026)
- API freeze - API freeze
- Python wheel packaging (#70) - Python wheel packaging (#70)
- Public announcement - Public announcement
``` ```
**Timeline:** 6 months to v1.0 **Timeline:** 6 months to v1.0
--- ---
## Monthly Priorities ## Monthly Priorities
### October 2025 (Current) ### October 2025 (Current)
- ✅ Profiling system (#104) - Complete - ✅ Profiling system (#104) - Complete
- ✅ Wiki documentation migration - In progress - ✅ Wiki documentation migration - In progress
- 🔄 Issue organization and labeling - 🔄 Issue organization and labeling
### November 2025 ### November 2025
- Grid dirty flags (#116) - Grid dirty flags (#116)
- SpatialHash implementation (#115) - SpatialHash implementation (#115)
- Performance benchmarking - Performance benchmarking
### December 2025 - January 2026 ### December 2025 - January 2026
- Animation property locking (#120) - Animation property locking (#120)
- Animation API consistency - Animation API consistency
- Rotation support (#100) - Rotation support (#100)
### February - March 2026 ### February - March 2026
- Tutorial completion (parts 7-10) - Tutorial completion (parts 7-10)
- Documentation sprint (#92, #91, #97) - Documentation sprint (#92, #91, #97)
- Testing framework - Testing framework
### April 2026 ### April 2026
- v1.0 API freeze - v1.0 API freeze
- Python wheel packaging (#70) - Python wheel packaging (#70)
- Public release - Public release
--- ---
## Issue Statistics ## Issue Statistics
**By Priority Tier:** **By Priority Tier:**
- Tier 1 (Active): 14 issues - Tier 1 (Active): 14 issues
- Tier 2 (Foundation): 11 issues - Tier 2 (Foundation): 11 issues
- Tier 3 (Future): 21 issues - Tier 3 (Future): 21 issues
**By System:** **By System:**
- Performance: 5 issues - Performance: 5 issues
- Grid System: 8 issues - Grid System: 8 issues
- Animation: 2 issues - Animation: 2 issues
- Python Binding: 3 issues - Python Binding: 3 issues
- UI Hierarchy: 4 issues - UI Hierarchy: 4 issues
- Documentation: 4 issues - Documentation: 4 issues
- Demo Targets: 7 issues - Demo Targets: 7 issues
- Other: 13 issues - Other: 13 issues
**By Status:** **By Status:**
- ✅ Completed: 1 (#104) - ✅ Completed: 1 (#104)
- 🔄 In Progress: 2 (#116, #115) - 🔄 In Progress: 2 (#116, #115)
- ⏳ Planned: 22 - ⏳ Planned: 22
- ⏸️ Deferred: 21 - ⏸️ Deferred: 21
--- ---
**Navigation:** **Navigation:**
- [[Home]] - Documentation hub - [[Home]] - Documentation hub
- [[Strategic-Direction]] - Project priorities and decision framework - [[Strategic-Direction]] - Project priorities and decision framework
- [[Design-Proposals]] - Architectural proposals - [[Design-Proposals]] - Architectural proposals
- [Gitea Issues](../../issues) - Live issue tracker - [Gitea Issues](../../issues) - Live issue tracker