Skip to content

kernels: add environment variable to switch DigestValidator behavior - #968

Open
danieldk wants to merge 1 commit into
mainfrom
digest-validation-mode
Open

danieldk wants to merge 1 commit into
mainfrom
digest-validation-mode

Conversation

@danieldk

@danieldk danieldk commented Nov 4, 2026

Copy link
Copy Markdown
Member

KERNELS_DIGEST_VALIDATION=warn makes the validator only warn when the digest validation fails. KERNELS_DIGEST_VALIDATION=error is the default and errors out.

`KERNELS_DIGEST_VALIDATION=warn` makes the validator only warn when the
digest validation fails. `KERNELS_DIGEST_VALIDATION=error` is the
default and errors out.
@HuggingFaceDocBuilderDev

Copy link
Copy Markdown

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

@github-actions

github-actions Bot commented Nov 4, 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.6% — 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 116 7 94% 10, 102, 173, 196-197, 261-262
src/kernels/variants.py 282 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 2481 283 89%

Updated by the Test kernels workflow on commit 9ae4238e3c77f1c02325596e3ece881b4324ed95.

@vasqu vasqu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few nits but overall lgtm from my side

if mode == "warn":
logger.warning(
f"{kernel_str}: {result}\n"
f"Loading the kernel anyway, because KERNELS_DIGEST_VALIDATION=warn is set.",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
f"Loading the kernel anyway, because KERNELS_DIGEST_VALIDATION=warn is set.",
f'Loading the kernel anyway, because KERNELS_DIGEST_VALIDATION="warn" is set.',

super nit

assert "KERNELS_DIGEST_VALIDATION=warn" in caplog.text


def test_digest_validator_warn_mode_is_quiet_on_success(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

imo might be a bit overkill? or rather if we go that route could check err mode as well no?

This branch has not been deployed

No deployments
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.

3 participants