Skip to content

kernels-data: Add version 0.16.1 - #2141

Merged
luhenry merged 2 commits into
mainfrom
kernels-data
Sep 21, 2026
Merged

luhenry merged 2 commits into
mainfrom
kernels-data

Conversation

@luhenry

@luhenry luhenry commented Sep 20, 2026 •

Copy link
Copy Markdown
Member

Compiles huggingface/kernels' kernels-data Rust crate — the kernel config parsers, variant digest hasher and metadata types — into a PyO3 extension module. Upstream publishes 20 Linux wheels and no riscv64 one.

Mirrors upstream's kernels_data_python_release.yaml linux job.

Despite the name this is not a GPU payload: no CUDA, no vendored blobs, no dependencies at all.

Differs from upstream

  • cibuildwheel replaces PyO3/maturin-action - this repo's standard riscv64 build path
  • musllinux dropped - rustup.rs ships no riscv64 musl toolchain
  • LICENSE staged into kernels-data/bindings/python/ - maturin globs licences relative to pyproject.toml's directory and upstream ships none there

Matrix: cp38-abi3 (the binding crate's unconditional abi3-py38, built on this repo's cp312 floor) + cp314t, the only two tags upstream publishes.

Testing

  • same as upstream (pytest plus its mypy.stubtest stub check); mypy comes from our registry, which publishes riscv64 wheels for every interpreter in the matrix

License: OK

Built on cp312 and cp314t; 27 passed, 0 skipped on each of cp312/cp313/cp314/cp314t, stubtest clean.

kernels-data is the Python binding for HuggingFace's kernels-data Rust crate:
the kernel.toml/kernel config parsers, the variant digest hasher and the
metadata types the Kernel Hub client reads. It is not a GPU payload -- pure
Rust, no dependencies, no CUDA -- and upstream publishes 20 Linux wheels
without riscv64.

Mirrors the linux job of upstream's kernels_data_python_release.yaml and the
test steps of its test_python.yaml.

cibuildwheel replaces PyO3/maturin-action, this repo's standard riscv64 build
path, and musllinux is dropped because rustup.rs ships no riscv64 musl
toolchain. The repo-root LICENSE is staged beside the binding's pyproject.toml
so maturin's licence glob finds it; upstream's own wheels ship no licence file
because its MANIFEST.in `include ../../../LICENSE` is not something maturin
reads.

The matrix is two entries rather than four: the binding crate declares pyo3
with abi3/abi3-py38 unconditionally, so one cp38-abi3 wheel serves every
GIL-ful interpreter, and pyo3 turns abi3 off under Py_GIL_DISABLED, which is
why the free-threaded build gets its own wheel -- the same split upstream's
second `-i python3.14t` maturin step produces.

Signed-off-by: Ludovic Henry <git@ludovic.dev>
@github-actions

github-actions Bot commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-09-21 08:03 UTC

Two `include:` entries that each introduce the same brand-new `tag`/`build`
keys over a `version`-only base matrix collapse into one job, keeping the last
one -- so the first run produced a single cp314t leg and no abi3 wheel at all,
silently green. Declaring `tag` in the base matrix makes each include update
the leg it names instead of adding a key to every combination.

Signed-off-by: Ludovic Henry <git@ludovic.dev>
luhenry added a commit that referenced this pull request Sep 20, 2026
@luhenry
luhenry marked this pull request as ready for review September 21, 2026 07:30
@luhenry
luhenry merged commit a66bce7 into main Sep 21, 2026
10 checks passed
@luhenry
luhenry deleted the kernels-data branch September 21, 2026 07:31
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