Skip to content

pyvista-zstd: Add version 0.4.1 - #3068

Merged
github-actions[bot] merged 2 commits into
mainfrom
pyvista-zstd
Oct 25, 2026
Merged

github-actions[bot] merged 2 commits into
mainfrom
pyvista-zstd

Conversation

@luhenry

@luhenry luhenry commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Compiles a small CMake C++ core that vendors and statically links zstd 1.5.7, loaded via ctypes for PyVista's compressed file format. Upstream publishes no riscv64 wheel.

Mirrors upstream's ci_cd.yml wheels job.

Differs from upstream

  • Only cp312 built, not cp310+cp312 - riscv64 has no equivalent of the glibc-2.17 manylinux2014 image that motivated the cp310 leg.

Matrix: cp312 only - the wheel is py3-none-<platform>, so one build serves every interpreter.

Testing

  • same as upstream

License: Wheel bundles zstd 1.5.7 (BSD) with no licence text; patch adds it, matching the fix already shipped for the python-zstd port in this repo.

Patches

  • 0001-package-the-vendored-Zstandard-licence-with-the-wheels.patch - To upstream, not yet submitted. Adds the vendored zstd LICENSE; without it the wheel redistributes Zstandard binary with no copyright notice. Reproduces on every platform upstream ships.

Built on cp312; smoke-tested against upstream's own C++-core-load check.

pyvista-zstd builds a small CMake C++ core (libpvzstd.so) that vendors and
statically links zstd 1.5.7 from source, loaded via ctypes and tagged
py3-none-<platform> (no CPython ABI dependency), so one cp312 build serves
every interpreter. zstd is portable C with existing riscv64 precedent in
this repo (zstd, zstandard, pyzstd). Adds a patch to carry the vendored
Zstandard BSD licence into the wheel, matching the fix already applied to
the python-zstd port.
luhenry added a commit that referenced this pull request Oct 13, 2026
@luhenry
luhenry marked this pull request as draft October 14, 2026 11:34
Applying the licence patch leaves the v0.4.1 checkout dirty, so
setuptools_scm versioned the wheel 0.4.2.dev0+ge3cbe68.d20261014 instead
of 0.4.1. Pin it with SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYVISTA_ZSTD and
drop the fetch-depth: 0 that only existed to reach the tag.

The test install then failed with ResolutionImpossible: pyvista needs
vtk, which has no riscv64 wheel on PyPI. Add our registry as an extra
index (it carries vtk 9.7.1 for cp312), and set PIP_PREFER_BINARY for the
test phase so numpy and matplotlib resolve to our wheels rather than
building PyPI's newer sdist-only releases from source; pyvista-validation,
which has no riscv64 wheel anywhere, still builds from its sdist.
@github-actions
github-actions Bot marked this pull request as ready for review October 25, 2026 00:19
@github-actions
github-actions Bot merged commit 7523b40 into main Oct 25, 2026
6 checks passed
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.

1 participant