|
24 | 24 |
|
25 | 25 | **Purpose**: Verify prerequisites and understand migration requirements |
26 | 26 |
|
27 | | -- [ ] T001 Verify updated gram-hs library is available and compatible with current GHC version |
28 | | -- [ ] T002 Read migration guide at `../gram-hs/docs/users/migration/rename-constructors.md` and understand breaking changes |
29 | | -- [ ] T003 Verify existing test suite passes before migration: `cabal test` |
| 27 | +- [x] T001 Verify updated gram-hs library is available and compatible with current GHC version |
| 28 | +- [x] T002 Read migration guide at `../gram-hs/docs/users/migration/rename-constructors.md` and understand breaking changes |
| 29 | +- [x] T003 Verify existing test suite passes before migration: `cabal test` |
30 | 30 |
|
31 | 31 | **Checkpoint**: Prerequisites verified - ready to begin migration |
32 | 32 |
|
|
40 | 40 |
|
41 | 41 | ### Implementation for User Story 1 |
42 | 42 |
|
43 | | -- [ ] T004 [P] [US1] Update import in `src/PatternLisp/Codec.hs`: Change `import Pattern.Core (pattern, patternWith)` to `import Pattern.Core (point, pattern)` |
44 | | -- [ ] T005 [P] [US1] Update import in `src/PatternLisp/PatternPrimitives.hs`: Change `import Pattern.Core (pattern, patternWith)` to `import Pattern.Core (point, pattern)` |
45 | | -- [ ] T006 [P] [US1] Update import in `src/PatternLisp/Gram.hs`: Change `import Pattern.Core (pattern)` to `import Pattern.Core (point, pattern)` |
46 | | -- [ ] T007 [P] [US1] Update import in `test/PatternLisp/CodecSpec.hs`: Change `import Pattern.Core (pattern, patternWith)` to `import Pattern.Core (point, pattern)` |
47 | | -- [ ] T008 [P] [US1] Update import in `test/PatternLisp/GramSpec.hs`: Change `import Pattern.Core (pattern, patternWith)` to `import Pattern.Core (point, pattern)` |
48 | | -- [ ] T009 [P] [US1] Update import in `test/PatternLisp/GramSerializationSpec.hs`: Change `import Pattern.Core (pattern, patternWith)` to `import Pattern.Core (point, pattern)` |
49 | | -- [ ] T010 [P] [US1] Update import in `test/PatternLisp/RuntimeSpec.hs`: Change `import Pattern.Core (pattern)` to `import Pattern.Core (point, pattern)` |
50 | | -- [ ] T011 [US1] Verify all imports updated: Run `grep -r "patternWith" src/ test/ | grep -i import` to confirm no old imports remain |
51 | | -- [ ] T012 [US1] Verify compilation: Run `cabal build` to ensure no import-related errors |
| 43 | +- [x] T004 [P] [US1] Update import in `src/PatternLisp/Codec.hs`: Change `import Pattern.Core (pattern, patternWith)` to `import Pattern.Core (point, pattern)` |
| 44 | +- [x] T005 [P] [US1] Update import in `src/PatternLisp/PatternPrimitives.hs`: Change `import Pattern.Core (pattern, patternWith)` to `import Pattern.Core (point, pattern)` |
| 45 | +- [x] T006 [P] [US1] Update import in `src/PatternLisp/Gram.hs`: Change `import Pattern.Core (pattern)` to `import Pattern.Core (point, pattern)` |
| 46 | +- [x] T007 [P] [US1] Update import in `test/PatternLisp/CodecSpec.hs`: Change `import Pattern.Core (pattern, patternWith)` to `import Pattern.Core (point, pattern)` |
| 47 | +- [x] T008 [P] [US1] Update import in `test/PatternLisp/GramSpec.hs`: Change `import Pattern.Core (pattern, patternWith)` to `import Pattern.Core (point, pattern)` |
| 48 | +- [x] T009 [P] [US1] Update import in `test/PatternLisp/GramSerializationSpec.hs`: Change `import Pattern.Core (pattern, patternWith)` to `import Pattern.Core (point, pattern)` |
| 49 | +- [x] T010 [P] [US1] Update import in `test/PatternLisp/RuntimeSpec.hs`: Change `import Pattern.Core (pattern)` to `import Pattern.Core (point, pattern)` |
| 50 | +- [x] T011 [US1] Verify all imports updated: Run `grep -r "patternWith" src/ test/ | grep -i import` to confirm no old imports remain |
| 51 | +- [x] T012 [US1] Verify compilation: Run `cabal build` to ensure no import-related errors |
52 | 52 |
|
53 | 53 | **Checkpoint**: All imports updated - code should compile (may have errors from old constructor usage, which is expected) |
54 | 54 |
|
|
62 | 62 |
|
63 | 63 | ### Implementation for User Story 2 |
64 | 64 |
|
65 | | -- [ ] T013 [P] [US2] Replace atomic `pattern` calls in `src/PatternLisp/Codec.hs`: Find all `pattern $` and `pattern subject` (single argument) and replace with `point $` and `point subject` |
66 | | -- [ ] T014 [P] [US2] Replace atomic `pattern` calls in `src/PatternLisp/PatternPrimitives.hs`: Find all `pattern subject` (single argument) and replace with `point subject` |
67 | | -- [ ] T015 [P] [US2] Replace atomic `pattern` calls in `src/PatternLisp/Gram.hs`: Replace `pattern subject` with `point subject` in `exprToGram` function |
68 | | -- [ ] T016 [P] [US2] Replace atomic `pattern` calls in `test/PatternLisp/RuntimeSpec.hs`: Replace any atomic `pattern` calls with `point` |
69 | | -- [ ] T017 [US2] Verify atomic patterns migrated: Run `grep -r "pattern \$" src/ test/` and `grep -r "pattern [^W]" src/ test/` to check for remaining atomic patterns (excluding `patternWith`) |
70 | | -- [ ] T018 [US2] Verify compilation: Run `cabal build` to ensure atomic pattern replacements are correct |
| 65 | +- [x] T013 [P] [US2] Replace atomic `pattern` calls in `src/PatternLisp/Codec.hs`: Find all `pattern $` and `pattern subject` (single argument) and replace with `point $` and `point subject` |
| 66 | +- [x] T014 [P] [US2] Replace atomic `pattern` calls in `src/PatternLisp/PatternPrimitives.hs`: Find all `pattern subject` (single argument) and replace with `point subject` |
| 67 | +- [x] T015 [P] [US2] Replace atomic `pattern` calls in `src/PatternLisp/Gram.hs`: Replace `pattern subject` with `point subject` in `exprToGram` function |
| 68 | +- [x] T016 [P] [US2] Replace atomic `pattern` calls in `test/PatternLisp/RuntimeSpec.hs`: Replace any atomic `pattern` calls with `point` |
| 69 | +- [x] T017 [US2] Verify atomic patterns migrated: Run `grep -r "pattern \$" src/ test/` and `grep -r "pattern [^W]" src/ test/` to check for remaining atomic patterns (excluding `patternWith`) |
| 70 | +- [x] T018 [US2] Verify compilation: Run `cabal build` to ensure atomic pattern replacements are correct |
71 | 71 |
|
72 | 72 | **Checkpoint**: All atomic patterns use `point` - compilation should succeed for atomic patterns |
73 | 73 |
|
|
81 | 81 |
|
82 | 82 | ### Implementation for User Story 3 |
83 | 83 |
|
84 | | -- [ ] T019 [P] [US3] Replace `patternWith` calls in `src/PatternLisp/Codec.hs`: Replace all ~30+ occurrences of `patternWith` with `pattern` |
85 | | -- [ ] T020 [P] [US3] Replace `patternWith` calls in `src/PatternLisp/PatternPrimitives.hs`: Replace all 4 occurrences of `patternWith` with `pattern` |
86 | | -- [ ] T021 [P] [US3] Replace `patternWith` calls in `test/PatternLisp/GramSpec.hs`: Replace `patternWith` with `pattern` |
87 | | -- [ ] T022 [P] [US3] Replace `patternWith` calls in `test/PatternLisp/GramSerializationSpec.hs`: Replace `patternWith` with `pattern` |
88 | | -- [ ] T023 [US3] Verify all `patternWith` replaced: Run `grep -r "patternWith" src/ test/` to confirm no function calls remain (comments may still reference) |
89 | | -- [ ] T024 [US3] Verify compilation: Run `cabal build` to ensure all `patternWith` replacements are correct |
90 | | -- [ ] T025 [US3] Verify nested patterns: Check that nested patterns correctly use `point` for atomic children and `pattern` for non-atomic children |
| 84 | +- [x] T019 [P] [US3] Replace `patternWith` calls in `src/PatternLisp/Codec.hs`: Replace all ~30+ occurrences of `patternWith` with `pattern` |
| 85 | +- [x] T020 [P] [US3] Replace `patternWith` calls in `src/PatternLisp/PatternPrimitives.hs`: Replace all 4 occurrences of `patternWith` with `pattern` |
| 86 | +- [x] T021 [P] [US3] Replace `patternWith` calls in `test/PatternLisp/GramSpec.hs`: Replace `patternWith` with `pattern` |
| 87 | +- [x] T022 [P] [US3] Replace `patternWith` calls in `test/PatternLisp/GramSerializationSpec.hs`: Replace `patternWith` with `pattern` |
| 88 | +- [x] T023 [US3] Verify all `patternWith` replaced: Run `grep -r "patternWith" src/ test/` to confirm no function calls remain (comments may still reference) |
| 89 | +- [x] T024 [US3] Verify compilation: Run `cabal build` to ensure all `patternWith` replacements are correct |
| 90 | +- [x] T025 [US3] Verify nested patterns: Check that nested patterns correctly use `point` for atomic children and `pattern` for non-atomic children |
91 | 91 |
|
92 | 92 | **Checkpoint**: All `patternWith` calls replaced with `pattern` - full migration of constructor calls complete |
93 | 93 |
|
|
101 | 101 |
|
102 | 102 | ### Implementation for User Story 4 |
103 | 103 |
|
104 | | -- [ ] T026 [US4] Search for remaining `patternWith` function calls: Run `grep -r "patternWith" src/ test/` and verify only comments/documentation references remain |
105 | | -- [ ] T027 [US4] Search for incorrect atomic `pattern` usage: Run `grep -r "pattern \$" src/ test/` and verify all are intentional (not atomic patterns that should be `point`) |
106 | | -- [ ] T028 [US4] Verify compilation: Run `cabal build` and ensure zero errors related to Pattern constructors |
107 | | -- [ ] T029 [US4] Run full test suite: Execute `cabal test` and verify 100% test pass rate |
108 | | -- [ ] T030 [US4] Test example programs: Run example programs through interpreter and verify they produce same results as before migration |
109 | | -- [ ] T031 [US4] Verify serialization round-trips: Test pattern serialization/deserialization for all pattern types (atomic, lists, maps, sets, closures, nested) |
| 104 | +- [x] T026 [US4] Search for remaining `patternWith` function calls: Run `grep -r "patternWith" src/ test/` and verify only comments/documentation references remain |
| 105 | +- [x] T027 [US4] Search for incorrect atomic `pattern` usage: Run `grep -r "pattern \$" src/ test/` and verify all are intentional (not atomic patterns that should be `point`) |
| 106 | +- [x] T028 [US4] Verify compilation: Run `cabal build` and ensure zero errors related to Pattern constructors |
| 107 | +- [x] T029 [US4] Run full test suite: Execute `cabal test` and verify 100% test pass rate |
| 108 | +- [x] T030 [US4] Test example programs: Run example programs through interpreter and verify they produce same results as before migration |
| 109 | +- [x] T031 [US4] Verify serialization round-trips: Test pattern serialization/deserialization for all pattern types (atomic, lists, maps, sets, closures, nested) |
110 | 110 |
|
111 | 111 | **Checkpoint**: Migration verified complete - all tests pass, no old API usage remains |
112 | 112 |
|
|
116 | 116 |
|
117 | 117 | **Purpose**: Update code comments and documentation examples to reflect new API |
118 | 118 |
|
119 | | -- [ ] T032 [P] Update Haddock examples in `src/PatternLisp/PatternPrimitives.hs`: Replace `evalPatternWith` example comments to use new API if they reference constructors |
120 | | -- [ ] T033 [P] Update inline comments in `src/PatternLisp/Codec.hs`: Review and update any comments that reference old constructor names |
121 | | -- [ ] T034 [P] Update module documentation examples: Review module headers for example code snippets referencing old API |
122 | | -- [ ] T035 [P] Update comments in `test/PatternLisp/` files: Review test file comments for old API references |
123 | | -- [ ] T036 Verify comment updates: Run final `grep -r "patternWith" src/ test/` to confirm only historical references remain (if any) |
124 | | -- [ ] T037 Final compilation check: Run `cabal build` one final time |
125 | | -- [ ] T038 Final test check: Run `cabal test` one final time to ensure everything still works |
| 119 | +- [x] T032 [P] Update Haddock examples in `src/PatternLisp/PatternPrimitives.hs`: Replace `evalPatternWith` example comments to use new API if they reference constructors |
| 120 | +- [x] T033 [P] Update inline comments in `src/PatternLisp/Codec.hs`: Review and update any comments that reference old constructor names |
| 121 | +- [x] T034 [P] Update module documentation examples: Review module headers for example code snippets referencing old API |
| 122 | +- [x] T035 [P] Update comments in `test/PatternLisp/` files: Review test file comments for old API references |
| 123 | +- [x] T036 Verify comment updates: Run final `grep -r "patternWith" src/ test/` to confirm only historical references remain (if any) |
| 124 | +- [x] T037 Final compilation check: Run `cabal build` one final time |
| 125 | +- [x] T038 Final test check: Run `cabal test` one final time to ensure everything still works |
126 | 126 |
|
127 | 127 | **Checkpoint**: Migration complete - code, tests, and documentation all updated |
128 | 128 |
|
|
0 commit comments