dockerfile: Add version 3.4.0 - #2560
Conversation
Build the cp312-abi3 manylinux_riscv64 wheel of asottile/dockerfile with cibuildwheel. setuptools-golang compiles pylib/main.go with go build -buildmode=c-shared against a pinned Go 1.26.8 linux-riscv64 toolchain; upstream's pytest suite runs on cp312, cp313 and cp314.
|
|
Build fails on These aren't CPython C-API calls the extension makes - they're Confirmed this is specific to how this port builds it, not upstream's own process: upstream's Options, none of which I want to guess-and-burn a ~40min rebuild on without a second opinion:
Leaving this parked here rather than pushing a speculative fix. Generated by Claude Code |
39fb7ba to
a75cf68
Compare
…xports pylib/main.go's c-shared exports (PyDockerfile_Heredoc, PyDockerfile_Command, etc.) are the Go package's own symbols, not CPython C-API calls, but abi3audit's strict scan has no way to tell the difference and flags all 8 as ABI violations, same as awscrt's extension does for its own Py-prefixed helpers (see build-awscrt.yml).
dockerfile3.4.0Compiles
pylib/main.govia setuptools-golang (go build -buildmode=c-shared) into a CPython limited-API extension wrapping buildkit's Dockerfile parser. Upstream publishes no riscv64 wheel.Mirrors upstream's
main.ymlLinux job; upstream builds its Linux wheel by hand with setuptools-golang's manylinux helper.Differs from upstream
setuptools-golang-build-manylinux-wheels- samesetup.pypath inside the manylinux_2_39_riscv64 image.linux-riscv64tarball (sha256-pinned) installed inbefore-all- upstream pins no Go version for its Linux wheel.Matrix: one
cp312-abi3wheel, reused and tested on cp313/cp314. No cp314t:setup.pyforces the abi3 tag without aPy_GIL_DISABLEDguard, and upstream ships no free-threaded wheel.Testing
testfiles/staged next totests/- the suite openstestfiles/Dockerfile.okby relative path.License: MIT; the extension statically links buildkit's parser (Apache-2.0) and the Go runtime (BSD-3-Clause), as upstream's own wheel does.