Skip to content

distcheck: vestigial CLI-binary prerequisite left behind by #738 (skipped integration test, dead CI step, stale README) #972

Closed

Description

@thekevinbot

Found while investigating #961 (closed as not planned). Three artifacts of the same change: #738 dropped dirsql/_binary/ so the wheel's extension module carries the CLI in-process, but the cargo-built dirsql binary is still treated as a prerequisite in three places. One of them silently skips a test.

Problem

python_flow/gate.py records that the prerequisite is gone:

- No binary staging since #738: the wheel's extension module carries the CLI
  and the console script calls it in-process, so there is nothing to stage

Confirmed: gate.py never references a binary or target/ anywhere outside that docstring caveat. But:

1. tests/integration/python_flow_test.py skips itself on a prerequisite the flow no longer has. Lines 23–32 locate target/{release,debug}/dirsql and pytest.skip("dirsql CLI binary not built ...") when it is absent. binary is never used again — it is not passed to run(), which takes (_PKG, _REPO). So the test skips whenever no cargo binary happens to be lying around, even though it would pass. This is the one with teeth: a green run where the case never executed.

2. dirsql-python-ci.yml's distcheck job builds a binary nothing consumes. The Build dirsql CLI binary step (cargo build -p dirsql --features cli) runs on every Python PR reaching that job and feeds nothing. The Install Rust / Rust cache steps stay — maturin build compiles the PyO3 extension.

3. internals/distcheck/README.md:29 still says the python flow "stages the cargo-built dirsql binary under dirsql/_binary/".

Also stale in the same README (unrelated cause, #942)

Change

  1. Drop the binary lookup and its pytest.skip from python_flow_test.py, keeping the maturin guard. Confirm the test then runs (and passes) with no cargo binary present — that is the fix's whole point, so it wants observing rather than assuming.
  2. Delete the Build dirsql CLI binary step from dirsql-python-ci.yml's distcheck job.
  3. Correct the three README lines.

Validation

(1) is a real behavior change to a test tier and needs its skip-to-run transition observed directly. (2) is verified by the Packaging distcheck (python) job staying green without the step — that job runs on any PR touching packages/python, and this issue's PR will touch dirsql-python-ci.yml, which is in its own paths:. (3) is docs.

Note the node flow is unaffected: it genuinely needs the staged host CLI under packages/ts/build/<triple>/, which is why node_flow_test.py's skip guard is still correct.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions