Conversation
black publishes mypyc-compiled wheels for common platforms but not riscv64.
Unlike tomli (flit-swap) or mypy (setuptools), black uses the hatch-mypyc
build hook, gated on HATCH_BUILD_HOOKS_ENABLE=1 in its committed
[tool.cibuildwheel] config. We check out the tag and inherit that config
wholesale (mypyc hook, CC=clang, the pytest suite, test-extras), overriding
only CIBW_MANYLINUX_RISCV64_IMAGE — every runtime and test dependency
(aiohttp, ipython, ...) already resolves from public PyPI.
Matrix is cp312/cp313/cp314; upstream skips free-threaded ("mypyc doesn't
have great support for free threaded builds"), so no cp314t.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Collaborator
|
New issue to reference: #324 |
threexc
approved these changes
Aug 24, 2026
Collaborator
|
I don't want to make the workflows run again, but future commits could just do |
Member
Author
|
@threexc I've updated Python Wheels to remove that behavior |
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.
Adds a riscv64 wheel build for black 26.5.1, published to
pypi.riseproject.dev.Ref #324
Shape
black publishes mypyc-compiled binary wheels (
cpXY-cpXY, a big speedup) for common platforms but not riscv64 — the value-add here. It's a third mypyc variant on top of the ones already in the repo:TOMLI_USE_MYPYC=1MYPY_USE_MYPYC=1HATCH_BUILD_HOOKS_ENABLE=1black ships a full
[tool.cibuildwheel]config and bundles its tests, so this is the "easy inverse" (CLAUDE.md gotcha 6): we check out the tag and inherit that config wholesale — the hatch-mypyc hook,CC=clang(+yum install -y clang), and upstream's ownpytest {project} -k "not incompatible_with_mypyc" -n autowith thed/jupytertest-extras. The only override isCIBW_MANYLINUX_RISCV64_IMAGE.Deliberately not setting
CIBW_ENVIRONMENT: as an env var it replaces black's TOML[tool.cibuildwheel.environment]table rather than merging, which would silently dropHATCH_BUILD_HOOKS_ENABLE=1and ship a pure-Python no-op. Not needed anyway — every runtime + test dep (aiohttp, ipython, …) already resolves from public PyPI.Matrix
cp312 / cp313 / cp314— per-interpreter (mypyc wheels aren't abi3). No free-threaded build: upstream skips it (cp31?t-*, "mypyc doesn't have great support for free threaded builds"), and PyPI confirms no cp313t/cp314t wheel.Validation
actionlintclean (only the expectedubuntu-24.04-riscvunknown-label warning).cibuildwheel --only cp312-manylinux_riscv64, aarch64 host): confirmedyum install -y clangsucceeds on the image (clang 21.1.8) and the build's isolated env pulls inhatch-mypyc>=0.16.0+mypy==1.20.2— i.e. the compile hook is engaged, not a pure-Python fallback.git describeyields a clean26.5.1(hatch-vcs), matching the canonical PyPI filename (no local segment).