Repository navigation
fix(distcheck): drop the python flow's vestigial CLI-binary prerequisite - #993
Merged
Merged
Conversation
#738 moved the wheel's CLI in-process and deleted `dirsql/_binary/`, so the python distcheck flow stopped staging a cargo-built binary. `gate.py` never referenced one again, but three callers were never updated: `python_flow_test.py` located `target/{release,debug}/dirsql` and skipped when it was absent, then never used the path -- `run()` takes `(_PKG, _REPO)`. So the only real-subprocess coverage of the flow silently skipped on a machine with no cargo build lying around, which is every clean checkout. Observed directly rather than assumed: with no binary present the case skipped before this change and passes after it (39.84s, `1 passed`). `dirsql-python-ci.yml`'s distcheck job then built that binary on every Python PR for nothing. `Install Rust` / `Rust cache` stay -- `maturin build` compiles the PyO3 extension. Verified by running the job's remaining command with no binary in `target/`: `dirsql-distcheck python` -> `OK`, exit 0. The README still described the flow as staging the binary; its two other stale lines the issue cites (#942's workflow renames) were already corrected on main by 6c02901. The node flow is untouched: it genuinely needs the staged host CLI. Fixes #972 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FPnyJVtn9Ld2iNbP9xnGus
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.
Fixes #972
#738 moved the wheel's CLI in-process and deleted
dirsql/_binary/, so the python distcheck flow stopped staging a cargo-built binary.gate.pynever referenced one again, but three callers were never updated.Changes
1.
internals/distcheck/tests/integration/python_flow_test.py— dropped thetarget/{release,debug}/dirsqllookup and itspytest.skip; thematuringuard stays. The located path was never passed anywhere (run()takes(_PKG, _REPO)), so the flow's only real-subprocess coverage silently skipped on any checkout without a stray cargo build — a green run where the case never executed.2.
.github/workflows/dirsql-python-ci.yml— deleted theBuild dirsql CLI binarystep from thedistcheckjob.Install Rust/Rust cachestay:maturin buildcompiles the PyO3 extension.3.
internals/distcheck/README.md— thepythonbullet no longer claims the flow stages the binary underdirsql/_binary/, and the local-run comment no longer lists a cargo binary as a prerequisite.The issue also cited
:54and:67as stale (#942's workflow renames) — both were already corrected onmainby 6c02901, so this PR leaves them alone.The node flow is untouched: it genuinely needs the staged host CLI, so
node_flow_test.py's guard is still correct in principle (see the note at the bottom).Validation
The issue asked for (1)'s skip-to-run transition to be observed, not assumed. With no
target/release/dirsqlortarget/debug/dirsqlpresent andmaturinonPATH:Manual run of what the
distcheckjob now executes, still with no binary intarget/— this is the direct evidence the removed step fed nothing:Gates for both lanes this diff triggers, via
dirsql-checks preflight --conventions <workflow>:internals-distcheck-ci.yml— 0 failing pairs (colocated-test,unit-lint,integration-lint,unit-coverage,mutation,declared-deps)dirsql-python-ci.yml— 0 failing pairs, 1 skipped (packaging, needs a built artifact)Packaging distcheck (python)in CI is the remaining confirmation that the deleted step was dead: this PR touchesdirsql-python-ci.yml, which is in that job's ownpaths:.E2E Verification
N/A - test/CI-config/docs only.Nopackages/**source changed, so no attestation is stale.packages/python/e2e-attestation.jsonrefreshed ifpackages/pythonchanged — not changedpackages/ts/e2e-attestation.jsonrefreshed ifpackages/tschanged — not changeddirsql-distcheck pythonexits 0 in the same conditions.Changelog / Migrations
packages/<pkg>/orplugins/<pkg>/changed, sochangelog-gatereports "No package source changed; nothing to enforce."PARITY.mdneeds no update: no SDK public API is touched.Out of scope, found while validating
Running the full distcheck suite surfaced a pre-existing, unrelated failure in the sibling node case —
#739dropped@dirsql/cli-<slug>along withPlatform.bin_name, butnode_flow_test.py:28still readshost.bin_nameand looks underbuild/bundled-cli-<slug>/:It raises before its skip guard, so it fails rather than skips — and
internals-distcheck-ci.ymlruns only the conventions gates, never the integration suite, which is why nothing caught it. The README'snodebullet describes the same retired@dirsql/cli-<slug>sub-package. Same shape as this issue but a different cause (#739, not #738), so it is left for its own issue rather than widened into this PR.Generated by Claude Code