fix(justfile): repair five recipes that fail on a fresh clone - #639
Merged
Conversation
test, test-product and report pointed at tests/, which has been untracked since the product suite moved into src/vip_tests/; they collected nothing and exited 5. coverage and typecheck called pytest --cov and mypy, which live in the dev extra that a bare uv sync does not install. Points the three at src/vip_tests/ and adds --extra dev to the two, with a comment on each saying why the flag is load-bearing. Also corrects the docs an agent is told to trust. AGENTS.md gave ruff paths that omit docker/ while listing "forgetting examples/" as a common mistake, and docs/development.md gave paths omitting docker/, selftests/ and examples/ plus mypy src/ where CI runs mypy src/vip/. Drops the instruction never to pass -p no:randomly. pytest-randomly is not in pyproject.toml, has no match in uv.lock, is not importable, and git log -S shows it was never a declared dependency, so CI does not run selftests randomized. The neighbouring warning about importing a pytest-bdd step module is a real hazard and is kept, with the cause reattributed to xdist redistribution. Closes #638
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The changes are straightforward, consistent with the repo’s current structure/markers, and fix confirmed fresh-clone workflow failures without introducing behavioral risk to the test suite itself.
Pull request overview
Repairs developer-facing just recipes and accompanying docs so common workflows work on a fresh clone with only a plain uv sync, aligning local commands with the repo’s current test layout (src/vip_tests/) and CI’s tooling expectations.
Changes:
- Fixes
test,test-product, andreportrecipes to targetsrc/vip_tests/instead of the removedtests/path. - Updates
typecheckandcoveragerecipes to useuv run --extra dev(required formypyandpytest-covon a bareuv sync). - Corrects developer documentation (
docs/development.md,AGENTS.md) to reflect the correct ruff paths and mypy invocation scope.
File summaries
| File | Description |
|---|---|
justfile |
Repairs broken recipes by pointing pytest at src/vip_tests/ and ensuring mypy/pytest-cov are available via --extra dev. |
docs/development.md |
Updates “run ruff directly” paths and documents the correct mypy src/vip/ invocation with --extra dev. |
AGENTS.md |
Fixes ruff path guidance (including docker/) and removes references to pytest-randomly behavior that doesn’t match declared deps. |
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #638
test,test-productandreportpointed attests/, which has been untracked since the product suite moved intosrc/vip_tests/; they collected nothing and exited 5.coverageandtypecheckcalledpytest --covandmypy, which live in the dev extra that a bareuv syncdoes not install.Points the three at
src/vip_tests/and adds--extra devto the two, with a comment on each saying why the flag is load-bearing.Also corrects the docs an agent is told to trust.
AGENTS.mdgave ruff paths that omitdocker/while itself listing "forgettingexamples/" as a common mistake, anddocs/development.mdgave paths omittingdocker/,selftests/andexamples/, plusmypy src/where CI runsmypy src/vip/.Drops the instruction never to pass
-p no:randomly.pytest-randomlyis not inpyproject.toml, has no match inuv.lock, is not importable, andgit log -S pytest-randomly -- pyproject.tomlreturns nothing, so it was never a declared dependency and CI does not run selftests randomized. The neighbouring warning about importing a pytest-bdd step module is a real hazard and is kept, with its cause reattributed to xdist redistribution rather than a plugin that is not installed.Testing
Every touched recipe was run on a worktree synced with a bare
uv sync, which is whatjust setupdoes:just typecheck—Success: no issues found in 35 source files(wasFailed to spawn: mypy)just coverage—1904 passed, 3 skipped,TOTAL ... 75%(wasunrecognized arguments: --cov=src/vip)just test --collect-only -q -n0— collects 139 (wasno tests collected)just test-product connect— collects 21 against a config with Connect enabled. With novip.tomlpresent it exits 5 because every scenario is deselected for a disabled product;vip.tomlis untracked, so that is expected on a fresh clone and is not changed by this PR.1904 selftests pass. ruff 0.15.0 — CI's exact pin — passes both
checkandformat --checkon CI's exact paths.Deliberately out of scope
just lintand friends resolverufffromPATHrather than from the project. On one developer machine that is a global ruff 0.15.5, while CI pins exactly 0.15.0 and the dev extra'sruff>=0.15.0,<0.17resolves 0.16.4 — three versions, sojust checkcan disagree with CI either way. Routing those recipes through--extra devwould widen the gap rather than close it, and pinning the extra to 0.15.0 means a relock, so it is left for a separate decision. Recorded in #638.