Skip to content

nix-builder: system-flatten versions before genKernelFlakeOutputs - #953

Merged
danieldk merged 1 commit into
mainfrom
flatten-before-kernel-flake
Nov 2, 2026
Merged

danieldk merged 1 commit into
mainfrom
flatten-before-kernel-flake

Conversation

@danieldk

@danieldk danieldk commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Flatten the flatten the version list before passing is to genKernelFlakeOutputs. E.g.

[
  {
    # ...
    systems = [ "aarch64-linux" "x86_64-linux" ];
  }
]

becomes

[
  {
    # ...
    system = "aarch64-linux";
  }
  {
    # ...
    system = "x86_64-linux";
  }
]

This makes it much easier for genKernelFlakeOutputs to modify the list, since it does not need to handle nested system lists.

@github-actions

github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Coverage report — kernels/

Measured on: Python 3.10 / Torch 2.13.0.
Other CI configurations are not included in this number.
Hardware-gated code paths (ROCm/XPU/NPU/Darwin/Windows) are excluded or unreachable on the Linux+CUDA runner.

Total coverage: 88.5% — threshold: 80% — ✅

Per-file breakdown
Name Stmts Miss Cover Missing
src/kernels/__init__.py 14 0 100%
src/kernels/_system.py 6 1 83% 10
src/kernels/_versions.py 130 14 89% 53, 59-60, 63-64, 102, 165-170, 199, 219
src/kernels/archs.py 56 1 98% 94
src/kernels/backends.py 215 63 71% 42, 46, 50-53, 70, 92, 110, 119, 123, 127-129, 150, 159, 163, 167-169, 190, 201, 203, 210-213, 222, 226, 230-255, 263, 286-306
src/kernels/compat.py 9 1 89% 5
src/kernels/deps.py 70 1 99% 56
src/kernels/digest.py 58 5 91% 71-73, 136-137
src/kernels/hf_hub.py 62 2 97% 21, 23
src/kernels/importer.py 74 5 93% 158, 162, 165, 179-180
src/kernels/install.py 21 7 67% 76-100
src/kernels/layer/__init__.py 7 0 100%
src/kernels/layer/_interval_tree.py 103 4 96% 23, 52, 147, 150
src/kernels/layer/device.py 48 12 75% 42, 47-49, 91, 96-98, 101, 149, 152, 156
src/kernels/layer/func.py 93 5 95% 94, 119, 195, 315, 390
src/kernels/layer/globals.py 5 0 100%
src/kernels/layer/inspect.py 27 0 100%
src/kernels/layer/kernelize.py 83 7 92% 306, 314-315, 321, 325, 341-343
src/kernels/layer/layer.py 320 14 96% 212, 259, 447, 606-607, 628, 636, 647, 688, 692, 705, 760, 801, 876
src/kernels/layer/mode.py 14 0 100%
src/kernels/layer/repos.py 136 36 74% 32, 35-42, 73, 86, 90, 99-100, 103, 106-109, 116-117, 120, 123-126, 133-134, 137, 140-143, 150-151, 154, 157-160, 235
src/kernels/load.py 71 2 97% 338, 378
src/kernels/locking.py 89 64 28% 35-83, 91-98, 102-125, 137, 152-159, 165-175, 179-186
src/kernels/python_deps.py 58 6 90% 59-60, 64-65, 101, 104
src/kernels/resolver.py 162 1 99% 248
src/kernels/status.py 50 2 96% 25, 79
src/kernels/validate.py 104 7 93% 9, 101, 172, 195-196, 232-233
src/kernels/variants.py 278 17 94% 65, 96, 117, 147, 256-257, 299-302, 304, 388-394, 400-406, 455-461
src/kernels/verify.py 102 6 94% 44, 176-178, 266-267
TOTAL 2465 283 89%

Updated by the Test kernels workflow on commit 88e9dd07eb4e639b85799c14b2d8af14a0d9580a.

Flattening the version list before passing it to a kernel flake
makes it easier to filter/map in a kernel when needed.
@danieldk
danieldk force-pushed the flatten-before-kernel-flake branch from 824dac2 to 88e9dd0 Compare October 31, 2026 09:56
@danieldk
danieldk marked this pull request as ready for review October 31, 2026 10:01
@danieldk
danieldk merged commit 6edbc8c into main Nov 2, 2026
50 of 52 checks passed
drbh added a commit to huggingface/kernels-community that referenced this pull request Nov 2, 2026
huggingface/kernels#953 passes torchVersions one entry per system
(`system` instead of `systems`), so look up the exception via
version.system instead of splitting the systems list ourselves.
@danieldk
danieldk deleted the flatten-before-kernel-flake branch November 3, 2026 07:48
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.

2 participants