fix(pre-commit): quote Python dependency range#91276
Conversation
|
Focused pairing-guidance patch is up. What changed:
Validation:
|
|
Codex review: needs maintainer review before merge. Reviewed July 5, 2026, 9:44 AM ET / 13:44 UTC. Summary PR surface: Other 0. Total 0 across 1 file. Reproducibility: yes. Current main parses the hook dependency as Review metrics: 1 noteworthy metric.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Next step before merge
Security Review detailsBest possible solution: Land the one-line quoted dependency fix after normal exact-head merge gates, keeping the local hook dependency as a single PEP 508 requirement string. Do we have a high-confidence way to reproduce the issue? Yes. Current main parses the hook dependency as Is this the best way to solve the issue? Yes. Quoting the full version range as one YAML scalar is the narrow maintainable fix; no broader hook, CI, or dependency refactor is needed. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 245092dc3ae1. Label changesLabel justifications:
Evidence reviewedPR surface: Other 0. Total 0 across 1 file. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (5 earlier review cycles)
|
|
@clawsweeper re-review The current head is still the same narrow pairing-guidance patch: it only names |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
6bf8df9 to
e2950a0
Compare
|
Rebased onto current main and resolved the TUI recovery-hint conflict by preserving the newer upstream device-approval guidance ( |
e2950a0 to
21613fa
Compare
|
Maintainer verification complete on exact head Changes made:
Live proof:
Both frontends created isolated hook environments from |
f32f97e to
3e37518
Compare
a522d33 to
4333422
Compare
[pytest>=8, <9] is parsed as two items; pip fails on '<9'. Use ["pytest>=8,<9"] so pip gets one valid PEP 440 spec. Pre-commit-only fix from closed openclaw#39109.
4333422 to
e4a2caf
Compare
|
Merged via squash.
|
[pytest>=8, <9] is parsed as two items; pip fails on '<9'. Use ["pytest>=8,<9"] so pip gets one valid PEP 440 spec. Pre-commit-only fix from closed openclaw#39109.
What Problem This Solves
The local
skills-python-testshook listed the pytest lower and upper bounds as separate YAML flow-sequence values.prektreated the second value as another dependency, whilepre-commitrejected the bare<9requirement, so neither frontend could create the hook environment reliably.Why This Change Was Made
Quote the complete PEP 508 range as one dependency string:
pytest>=8,<9. This keeps the intended pytest compatibility window without adding another hook path or changing the test command.User Impact
Contributors can run the skills Python hook with either supported pre-commit frontend without dependency parsing failures.
Evidence
uvx --from prek==0.3.9 prek run skills-python-tests --all-filesuvx --from pre-commit==4.2.0 pre-commit run skills-python-tests --all-filesgit diff --check origin/main...HEADBoth live hook runs passed after creating an isolated environment from the quoted range.