From 0d26d51bc3e033586889e664e6082fd56822866e Mon Sep 17 00:00:00 2001 From: John McCardle Date: Thu, 3 Jul 2025 23:05:30 -0400 Subject: [PATCH] Compress ROADMAP.md and archive completed test files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Condensed 'Today's Achievements' section for clarity - Archived 9 completed test files from bug fixing session - Updated task completion status for issues fixed today - Identified 5 remaining Alpha blockers as next priority 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../entity_property_setters_test.py | 0 .../entity_setter_simple_test.py | 0 .../issue27_entity_extend_test.py | 0 .../issue33_sprite_index_validation_test.py | 0 .../issue73_entity_index_test.py | 0 .../issue73_simple_index_test.py | 0 .../issue74_grid_xy_properties_test.py | 0 .../issue78_middle_click_fix_test.py | 0 .../sprite_texture_setter_test.py | 0 ROADMAP.md | 58 +++++++------------ 10 files changed, 22 insertions(+), 36 deletions(-) rename {tests => .archive}/entity_property_setters_test.py (100%) rename {tests => .archive}/entity_setter_simple_test.py (100%) rename {tests => .archive}/issue27_entity_extend_test.py (100%) rename {tests => .archive}/issue33_sprite_index_validation_test.py (100%) rename {tests => .archive}/issue73_entity_index_test.py (100%) rename {tests => .archive}/issue73_simple_index_test.py (100%) rename {tests => .archive}/issue74_grid_xy_properties_test.py (100%) rename {tests => .archive}/issue78_middle_click_fix_test.py (100%) rename {tests => .archive}/sprite_texture_setter_test.py (100%) diff --git a/tests/entity_property_setters_test.py b/.archive/entity_property_setters_test.py similarity index 100% rename from tests/entity_property_setters_test.py rename to .archive/entity_property_setters_test.py diff --git a/tests/entity_setter_simple_test.py b/.archive/entity_setter_simple_test.py similarity index 100% rename from tests/entity_setter_simple_test.py rename to .archive/entity_setter_simple_test.py diff --git a/tests/issue27_entity_extend_test.py b/.archive/issue27_entity_extend_test.py similarity index 100% rename from tests/issue27_entity_extend_test.py rename to .archive/issue27_entity_extend_test.py diff --git a/tests/issue33_sprite_index_validation_test.py b/.archive/issue33_sprite_index_validation_test.py similarity index 100% rename from tests/issue33_sprite_index_validation_test.py rename to .archive/issue33_sprite_index_validation_test.py diff --git a/tests/issue73_entity_index_test.py b/.archive/issue73_entity_index_test.py similarity index 100% rename from tests/issue73_entity_index_test.py rename to .archive/issue73_entity_index_test.py diff --git a/tests/issue73_simple_index_test.py b/.archive/issue73_simple_index_test.py similarity index 100% rename from tests/issue73_simple_index_test.py rename to .archive/issue73_simple_index_test.py diff --git a/tests/issue74_grid_xy_properties_test.py b/.archive/issue74_grid_xy_properties_test.py similarity index 100% rename from tests/issue74_grid_xy_properties_test.py rename to .archive/issue74_grid_xy_properties_test.py diff --git a/tests/issue78_middle_click_fix_test.py b/.archive/issue78_middle_click_fix_test.py similarity index 100% rename from tests/issue78_middle_click_fix_test.py rename to .archive/issue78_middle_click_fix_test.py diff --git a/tests/sprite_texture_setter_test.py b/.archive/sprite_texture_setter_test.py similarity index 100% rename from tests/sprite_texture_setter_test.py rename to .archive/sprite_texture_setter_test.py diff --git a/ROADMAP.md b/ROADMAP.md index 88b0cda..56b4eb0 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -3,36 +3,18 @@ ## Project Status: Post-7DRL 2025 "Crypt of Sokoban" **Current State**: Successful 7DRL completion with Python/C++ game engine -**Latest Update**: Fixed 12+ critical bugs in one day! (2025-01-03) +**Latest Update**: Major code cleanup and 14 issues resolved (2025-01-03) **Branch**: interpreter_mode (comprehensive test suite + major stability fixes) **Open Issues**: ~48 remaining from original 64 (closed 14 + fixed 14 today) --- -## 🎉 TODAY'S ACHIEVEMENTS (2025-01-03) +## Recent Achievements (2025-01-03) -In a single productive session, we fixed 12+ critical bugs and implemented missing features: - -### Critical Bug Fixes: -- **Grid Segfault** - Fixed crash when texture is None/null, added default 16x16 cell dimensions -- **Issue #78** - Fixed middle mouse click incorrectly sending 'C' keyboard event (SFML event union bug) -- **Issue #77** - Fixed error message copy/paste bug in Grid validation -- **Issue #74** - Added missing Grid.grid_y property (closes #74) -- **Entity Setters** - Fixed "new style getargs format" error with proper PyVector conversion -- **PyVector** - Implemented missing x/y property getters and setters -- **Sprite Texture** - Fixed setter returning -1 without setting exception -- **keypressScene** - Added validation to reject non-callable arguments - -### New Features Implemented: -- **Issue #73** - Entity.index() method for finding position in collection (closes #73) -- **Issue #27** - EntityCollection.extend() for adding multiple entities at once (closes #27) -- **Issue #33** - Sprite index validation against texture bounds (closes #33) -- **Issue #3** - Removed deprecated player_input and turn-based functions (closes #3) -- **Issue #2** - Removed entire registerPyAction/registerInputAction system (closes #2) - -### Test-Driven Development: -Every fix was accompanied by a comprehensive test using the timer callback pattern. -All tests verify the fix and ensure no regressions. +**Major Cleanup**: Removed deprecated registerPyAction system (-180 lines) +**Bug Fixes**: 12 critical issues including Grid segfault, Issue #78 (middle click), Entity setters +**New Features**: Entity.index() (#73), EntityCollection.extend() (#27), Sprite validation (#33) +**Test Coverage**: Comprehensive test suite with timer callback pattern established --- @@ -94,23 +76,27 @@ Created comprehensive test suite with 13 tests covering all Python-exposed metho --- -## 🚧 IMMEDIATE PRIORITY: Critical Bugfixes & Iterator Completion +## 🚧 NEXT PRIORITY: Alpha Release Blockers -### 🔥 Critical Bugfixes (Complete First) -- [ ] **CRITICAL: Grid Segfault** - Grid class crashes on instantiation (blocks ALL Grid functionality) - *High Priority* -- [ ] **#78** - Middle Mouse Click sends "C" keyboard event to scene event handler - *Confirmed Bug* -- [ ] **#77** - Fix error message copy/paste bug (`x value out of range (0, Grid.grid_y)`) - *Isolated Fix* -- [ ] **#74** - Add missing `Grid.grid_y` property referenced in error messages - *Isolated Fix* +### Remaining Alpha Blockers (5 issues): +1. **#69** - Python Sequence Protocol for collections - *Extensive Overhaul* +2. **#63** - Z-order rendering for UIDrawables - *Multiple Integrations* +3. **#59** - Animation system - *Extensive Overhaul* +4. **#6** - RenderTexture concept - *Extensive Overhaul* +5. **#47** - New README.md for Alpha release - *Quick Win* +- [x] **#78** - Middle Mouse Click sends "C" keyboard event - *Fixed* +- [x] **#77** - Fix error message copy/paste bug - *Fixed* +- [x] **#74** - Add missing `Grid.grid_y` property - *Fixed* - [ ] **#37** - Fix Windows build module import from "scripts" directory - *Isolated Fix* -- [ ] **Entity Property Setters** - Fix "new style getargs format" error - *Multiple Fixes* -- [ ] **Sprite Texture Setter** - Fix "error return without exception set" - *Isolated Fix* -- [ ] **keypressScene() Validation** - Add proper error handling for non-callable arguments - *Isolated Fix* +- [x] **Entity Property Setters** - Fix "new style getargs format" error - *Fixed* +- [x] **Sprite Texture Setter** - Fix "error return without exception set" - *Fixed* +- [x] **keypressScene() Validation** - Add proper error handling - *Fixed* ### 🔄 Complete Iterator System **Status**: Core iterators complete (#72 closed), Grid point iterators still pending - [ ] **Grid Point Iterator Implementation** - Complete the remaining grid iteration work -- [ ] **#73** - Add `entity.index()` method for collection removal - *Isolated Fix* +- [x] **#73** - Add `entity.index()` method for collection removal - *Fixed* - [ ] **#69** ⚠️ **Alpha Blocker** - Refactor all collections to use Python Sequence Protocol - *Extensive Overhaul* **Dependencies**: Grid point iterators → #73 entity.index() → #69 Sequence Protocol overhaul @@ -158,7 +144,7 @@ Created comprehensive test suite with 13 tests covering all Python-exposed metho - [ ] **#50** - UIGrid background color field - *Isolated Fix* - [ ] **#19** - Sprite get/set texture methods - *Multiple Integrations* - [ ] **#17** - Move UISprite position into sf::Sprite - *Isolated Fix* -- [ ] **#33** - Sprite index validation against texture range - *Isolated Fix* +- [x] **#33** - Sprite index validation against texture range - *Fixed* #### Grid/Entity System (6 issues) - [ ] **#30** - Entity/Grid association management (.die() method) - *Extensive Overhaul* @@ -183,7 +169,7 @@ Created comprehensive test suite with 13 tests covering all Python-exposed metho - [ ] **#41** - `.find(name)` method for collections - *Multiple Integrations* - [ ] **#38** - `children` arg for Frame initialization - *Isolated Fix* - [ ] **#42** - Click callback arg for UIDrawable init - *Isolated Fix* -- [ ] **#27** - UIEntityCollection.extend() method - *Isolated Fix* +- [x] **#27** - UIEntityCollection.extend() method - *Fixed* - [ ] **#28** - UICollectionIter for scene ui iteration - *Isolated Fix* - [ ] **#26** - UIEntityCollectionIter implementation - *Isolated Fix*