Skip to content

deptry: add build-deptry.yml for riscv64 wheels - #869

Merged
luhenry merged 4 commits into
mainfrom
deptry
Sep 4, 2026
Merged

deptry: add build-deptry.yml for riscv64 wheels#869
luhenry merged 4 commits into
mainfrom
deptry

Conversation

@luhenry

@luhenry luhenry commented Sep 3, 2026

Copy link
Copy Markdown
Member

Builds deptry's pyo3/maturin Rust extension, a CLI that scans a Python project for unused, missing and transitive dependencies. Upstream publishes no riscv64 wheel.

Mirrors upstream's release.yml linux job, driven through cibuildwheel instead of PyO3/maturin-action.

Differs from upstream

  • Rust toolchain installed via rustup in-container - upstream's runner ships one already
  • musllinux dropped - no riscv64 musl rustup target
  • pyproject.toml version stamped from the tag via sed - matches upstream's own release-job fix-up

Matrix: cp310-abi3 (covers cp310-cp314) - pyo3's abi3-py310 feature is unconditional in Cargo.toml. Upstream ships no free-threaded wheel either.

Testing

  • same as upstream (tests/unit + tests/functional), plus a patch so functional tests reuse the wheel cibuildwheel already built instead of rebuilding it a second time

License: OK

Patches

  • 0001-tests-allow-functional-tests-to-reuse-a-prebuilt-whe.patch - Inappropriate [CI-infra]. Avoids rebuilding deptry from scratch with uv build a second time. Reproduces off riscv64 too.
  • 0002-tests-upgrade-pip-in-each-throwaway-venv-before-inst.patch - Inappropriate [CI-infra]. ensurepip's bundled pip in the fixture venvs doesn't recognize the riscv64 wheel tag. Does not reproduce off riscv64.

Built on cp310; 179 passed, 2 skipped (unit) and 38 passed, 1 skipped (functional), on every retested interpreter (cp310-cp314).

@luhenry luhenry changed the title deptry: add riscv64 wheel build deptry: add build-deptry.yml for riscv64 wheels Sep 3, 2026
Drives upstream's maturin/pyo3 build (release.yml's linux job) through
cibuildwheel, narrowed to riscv64. abi3-py310 is unconditional in
Cargo.toml, so one cp310 build covers cp310-cp314; musllinux is dropped
(no riscv64 musl rustup target).

Includes a small patch to tests/functional/conftest.py so the functional
suite reuses the wheel cibuildwheel already built instead of rebuilding
deptry from scratch a second time via `uv build`.
poetry pulls keyring -> SecretStorage -> cryptography on Linux. Without
PIP_ONLY_BINARY=cryptography, pip resolves whatever cryptography release
is newest on PyPI, which is newer than what pypi.riseproject.dev has a
riscv64 wheel for, and tries to build it from source -- failing on a
missing OpenSSL dev install (openssl-sys can't find openssl.pc).
test_text_reporter_only/test_all_reporters run deptry against cwd's own
pyproject.toml (mirrors upstream's `uv run deptry python` quality-job
step); without it staged, the dependency getter builder finds nothing
and raises DependencySpecificationNotFoundError instead of the expected
SystemExit. Verified locally: 179 passed (was 177 passed, 2 failed).
ensurepip's bundled pip on the manylinux_riscv64 image doesn't recognize
the riscv64 wheel tag, so the poetry/pdm/uv/pip fixture venvs functional
tests create with venv.EnvBuilder fail to install our own riscv64 wheel
with "... is not a supported wheel on this platform" even though the
outer cibuildwheel test venv's own pip installs the identical wheel
without complaint. Verified locally (doesn't reproduce off riscv64, but
the extra `pip install --upgrade pip` step is a no-op there and the
functional suite still passes: 38 passed, 1 skipped).
@luhenry
luhenry merged commit 1c46213 into main Sep 4, 2026
7 checks passed
@luhenry
luhenry deleted the deptry branch September 4, 2026 05:59
@luhenry luhenry mentioned this pull request Sep 4, 2026
@luhenry luhenry linked an issue Sep 4, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

deptry riscv64 support

1 participant