Repository navigation
ci: consumer-test the wheels, before tagging and after publishing - #10
Merged
Merged
Conversation
- package.yml builds the four wheels as the release did (now the only place they are built) at the given PEP 440 version, and checks each holds both the generated bindings and the native library: maturin can build a wheel without the bindings and report success (#9). - consumer-test/: run.sh installs the wheel into a new venv with --no-index (local) or minigraf==<version> from PyPI (registry), checks the installed version, then runs the README quick start and the consumer contract (in memory, file-backed reopen, MiniGrafError). readme_sync.py checks the README. - ci.yml: package, consumer test on the four platforms, readme-sync. - release.yml: the test job builds and consumer-tests the wheels at the release version; publish uploads exactly those; verify-published installs from PyPI on the four platforms and opens a release-broken issue on failure. The plan's manylinux2014 floor via zig is not in: it produces wheels without bindings (#9). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PtCdzbJMSS1V8qEPaJ4jXz
This was referenced Oct 20, 2026
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.
Plan step 5 of the core binding consumer-test spec (
docs/superpowers/specs/2026-10-20-binding-consumer-tests-design.md).Changes
package.yml: builds the four wheels as the release did, and is now the only place they're built. The version is PEP 440 (0.0.0.dev0in CI). Each wheel is checked for both the generated bindings and the native library.consumer-test/:run.shinstalls into a new venv, either the built wheel with--no-index(local mode) orminigraf==<version>from PyPI (registry mode). It checks the installed version, then runs:MiniGrafErroron invalid Datalog.readme_sync.pychecks the README.ci.yml:package, a consumer test on Linux x64 and arm64, macOS and Windows, andreadme-sync.release.yml:testjob builds and consumer-tests the wheels at the release version.publishuploads exactly those four wheels.verify-publishedinstalls from PyPI on the four platforms, and opens arelease-brokenissue if it fails.Change to the plan
The plan lowers the Linux floor to glibc 2.17 with
maturin --zig --compatibility manylinux2014. I tried it locally. maturin reports success, but the wheel has no Python bindings (import minigraffails). The wheel check now catches that. The floor stays atmanylinux_2_34, and #9 tracks a container-based fix.Verified
CI is green: the consumer test passes on all four platforms (Windows included).
Codex review raised two points, neither applicable. On Windows the script falls through to
venv/Scripts/python.exe, which is correct; CI passes there. PEP 440 versions cannot contain the backslashes that would confuse there.substamp.Locally, the consumer test passes against a built wheel, and against 2.0.8 from PyPI (Python 2.0.8 is fine).
🤖 Generated with Claude Code
https://claude.ai/code/session_01PtCdzbJMSS1V8qEPaJ4jXz