|
| 1 | +# Projects |
| 2 | + |
| 3 | +**Legend:** |
| 4 | +- `[x]` Completed |
| 5 | +- `[-]` In Progress |
| 6 | +- `[ ]` Not Started |
| 7 | +- `[~]` Won't fix / Invalid / False positive |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +## [-] Project P16: Fix GitHub Actions Bugs + Makefile CI/Lefthook Recipes (v0.3.4) |
| 12 | +**Goal**: Fix duplicate test execution bug in CI workflow, add Makefile recipes for CI dependency management, lefthook install, and manual lefthook runs |
| 13 | + |
| 14 | +**Out of Scope** |
| 15 | +- Raising the coverage threshold (currently 35%) |
| 16 | +- Adding `permissions:` block to ci.yml (not a bug, just best practice) |
| 17 | + |
| 18 | +### Tests & Tasks |
| 19 | +- [x] [P16-T01] Fix duplicate pytest run for Python 3.12 in ci.yml |
| 20 | + Added `if: matrix.python-version != '3.12'` to plain test step so 3.12 only runs the coverage variant |
| 21 | +- [x] [P16-T02] Add `-v --tb=short` flags to coverage test step for consistent verbose output |
| 22 | + Ensures 3.12 coverage run has same verbosity as other versions |
| 23 | +- [x] [P16-T03] Add `make ci-deps` recipe — checks if uv/lefthook/actionlint are installed before installing, then runs `uv sync --group dev` |
| 24 | +- [x] [P16-T04] Add `make lefthook-install` recipe — activates pre-commit hooks (errors if lefthook not found) |
| 25 | +- [x] [P16-T05] Add `make lefthook-run` recipe — manually runs all pre-commit checks (errors if lefthook not found) |
| 26 | +- [x] [P16-TS01] Validate ci.yml with actionlint — passed with no errors |
| 27 | +- [x] [P16-TS02] Run full test suite — 159 tests passed |
| 28 | +- [x] [P16-TS03] Verify `make help` shows all new targets |
| 29 | +- [x] [P16-TS04] Verify `make ci-deps` detects already-installed tools |
| 30 | +- [x] [P16-TS05] Verify `make lefthook-install` activates hooks |
| 31 | +- [x] [P16-TS06] Verify `make lefthook-run` executes pre-commit checks |
| 32 | +- [ ] [P16-TS07] Regression — push to branch and confirm CI passes on all 3 Python versions |
| 33 | + |
| 34 | +### Deliverable |
| 35 | +- `.github/workflows/ci.yml` — Python 3.12 no longer runs the test suite twice |
| 36 | +- `Makefile` — 3 new recipes: `ci-deps`, `lefthook-install`, `lefthook-run` |
| 37 | + |
| 38 | +### Automated Verification |
| 39 | +- `actionlint .github/workflows/ci.yml` passes |
| 40 | +- `make test` — 159 tests pass |
| 41 | +- `make ci-deps` — detects installed tools, installs missing ones |
| 42 | +- `make lefthook-install` — activates hooks |
| 43 | +- `make lefthook-run` — runs pre-commit checks |
| 44 | + |
| 45 | +### Manual Verification |
| 46 | +- Push to a branch and confirm CI passes on all 3 Python versions (3.11, 3.12, 3.13) |
| 47 | +- Confirm 3.12 job only shows one pytest execution (with coverage) |
0 commit comments