Skip to content

feat: warn for dirty builds.#703

Merged
sayakpaul merged 5 commits into
mainfrom
warnings-dirty-builds
Jul 14, 2026
Merged

feat: warn for dirty builds.#703
sayakpaul merged 5 commits into
mainfrom
warnings-dirty-builds

Conversation

@sayakpaul

Copy link
Copy Markdown
Member

Follow up of #666

@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 Jul 8, 2026

Copy link
Copy Markdown

Coverage report — kernels/

Measured on: Python 3.10 / Torch 2.12.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: 84.7% — threshold: 80% — ✅

Per-file breakdown
Name Stmts Miss Cover Missing
src/kernels/__init__.py 10 0 100%
src/kernels/_system.py 6 1 83% 10
src/kernels/_versions.py 63 7 89% 46, 49, 52-53, 56-57, 100
src/kernels/backends.py 194 55 72% 40, 44, 48-51, 68, 90, 108, 117, 121, 125-127, 148, 170, 181, 188-191, 201, 205-225, 233, 256-276
src/kernels/compat.py 8 1 88% 5
src/kernels/deps.py 54 4 93% 58-59, 95, 98
src/kernels/layer/__init__.py 6 0 100%
src/kernels/layer/_interval_tree.py 103 4 96% 23, 52, 147, 150
src/kernels/layer/device.py 48 14 71% 42, 47-49, 91, 96-98, 101, 149, 152, 155-157
src/kernels/layer/func.py 81 7 91% 81, 111, 183, 301, 307, 320, 338
src/kernels/layer/globals.py 5 0 100%
src/kernels/layer/kernelize.py 74 8 89% 255, 281, 289-290, 296, 300, 316-318
src/kernels/layer/layer.py 210 16 92% 167, 210, 216, 229, 337, 417-418, 430, 439, 447, 458, 487, 491, 504, 557, 587
src/kernels/layer/mode.py 14 0 100%
src/kernels/layer/repos.py 130 34 74% 27, 33, 36-41, 61-62, 68, 71-74, 88, 92, 101-102, 108, 111-114, 121-122, 128, 131-134, 141-142, 148, 151-154, 235
src/kernels/lockfile.py 71 46 35% 37-104, 108-131
src/kernels/status.py 49 2 96% 23, 81
src/kernels/utils.py 313 55 82% 65, 77-81, 87-88, 246, 250, 253, 315, 323, 362-363, 401, 432, 437, 472, 701, 704, 706, 712, 725-726, 747-759, 763-770, 778, 782-792, 796-803, 841, 845, 864, 866
src/kernels/variants.py 262 19 93% 56, 87, 108, 138, 247-248, 289, 291, 371-378, 384-390, 421-427, 439-445, 534-536
src/kernels/verify.py 88 1 99% 32
TOTAL 1789 274 85%

Updated by the Test kernels workflow on commit fea30d10d594b2553d0ff242326752f9cb42e26d.

Comment thread kernel-builder/src/upload.rs Outdated
Comment on lines 381 to 403

// Without a dirty build there is nothing to inject, so stream the file
// directly rather than reading it into memory.
if dirty_variants.is_empty() {
operations.push(CommitOperation::Add {
path_in_repo: "README.md".to_owned(),
source: AddSource::File(card_path),
});
return;
}

let source = match fs::read_to_string(&card_path) {
Ok(card) => {
AddSource::Bytes(render_card_with_dirty_banner(&card, dirty_variants).into_bytes())
}
// If the card cannot be read as UTF-8, fall back to uploading it
// verbatim rather than dropping the README entirely.
Err(_) => AddSource::File(card_path),
};
operations.push(CommitOperation::Add {
path_in_repo: "README.md".to_owned(),
source: AddSource::File(card_path),
source,
});

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

instead of commit this info and adding to the readme, maybe it would be best to surface this information in the hub?

maybe we can add a component that lists the builds and if they are dirty or not? this way we can avoid storing this info as a string in the readme

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Copying over what I said on Slack:

I preferred README because it's a cheap thing to do without adding any more logic to the Hub side backend. Plus also unlike supported accelerator devices (which is best determined after the build is done), we can almost know from the getgo if the build is dirty or not. So, preferred to do that in the README. LMK.

@drbh drbh left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

nice! lgtm

@sayakpaul sayakpaul merged commit 05f1ed4 into main Jul 14, 2026
55 checks passed
@sayakpaul sayakpaul deleted the warnings-dirty-builds branch July 14, 2026 13:28
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