feat: warn for dirty builds.#703
Conversation
|
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. |
Coverage report —
|
| 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.
|
|
||
| // 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, | ||
| }); |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
# Conflicts: # kernel-builder/src/upload.rs
Follow up of #666