+ notes: 'Ordinary Rust/maturin port -- the queue premise reads like a GPU payload and is not one, so the triage is worth recording. kernels-data is NOT the GPU half of HuggingFace''s Kernel Hub: it is the pyo3 binding for the kernels-data crate (kernel.toml/kernel config parsers v1-v4, the variant digest hasher, the Version/KernelName/Backend/Metadata types). requires_dist is empty -- no torch, no CUDA, nothing. The wheel is kernels_data/__init__.py (a 131-byte maturin re-export shim, gotcha 314) + kernels_data/kernels_data.abi3.so (3.7 MB) + a cyclonedx SBOM; zero vendored blobs, zero .nv_fatbin, no dlopen of any driver, so none of gotcha 452/386/387''s walls apply and the nccl4py/pynvvideocodec precedent does not transfer. The odd ''cp314,cp38'' abi split across 20 wheels is gotcha 181, not per-platform native payloads: kernels-data/bindings/python/Cargo.toml declares pyo3 = { version = "0.26", features = ["abi3", "abi3-py38"] } unconditionally, so every GIL-ful interpreter gets one cp38-abi3 wheel while pyo3 disables abi3 under Py_GIL_DISABLED, giving cp314-cp314t its own -- 10 platforms x 2 tags = 20. Wheel sizes do diverge per platform (x86_64 1.28 MB, ppc64le 1.53 MB), i.e. real compiled content, and upstream ships an sdist too. Validated locally before pushing: cargo check --target riscv64gc-unknown-linux-gnu over the whole binding graph (~70 crates, all pure Rust, no C, no SIMD gate) finished clean in 18 s; a host maturin build produced exactly PyPI''s layout and the cp38-abi3 tag with no -i flag; upstream''s own tests pass against that wheel (27 passed) and so does its mypy.stubtest stub check. Licence gap fixed: maturin globs LICEN[CS]E* relative to kernels-data/bindings/python/ and the Apache-2.0 LICENSE is at the repo root, which is why upstream''s own wheels ship no licence file at all (its MANIFEST.in ''include ../../../LICENSE'' is not read by maturin) -- the workflow stages it, same as jsoncompat/semantic-text-splitter/primp/moyopy. Matrix is two entries (cp38-abi3 built on the cp312 floor since 3.8 is absent from the manylinux image, plus cp314t); musllinux dropped, rustup.rs has no riscv64 musl toolchain. A QEMU cibuildwheel rehearsal against quay.io/pypa/manylinux_2_39_riscv64 got rustup+maturin installed in-container and through most of the cargo build before native CI overtook it. Note for later: PyPI''s latest is 0.16.2 (same shape), and the sibling ''kernels'' distribution has become the same kind of maturin package (30 files, cp38-abi3 + cp314t, no riscv64) -- gotcha 150 family, this workflow is its recipe. PR #2141 open as draft, branch/worktree kernels-data. CI running.'
0 commit comments