Skip to content

Commit 48cede9

Browse files
authored
kernels-data: allow unknown fields in Metadata (#481)
* kernels-data: allow unknown fields in `Metadata` Now that we will use `kernels-data` inside `kernels`, we have to allow unknown fields in metadata. Otherwise the following scenario will break: 1. We publish kernels 0.14. 2. We add a field `foo` to the metadata in kernel-builder 0.15. 3. `kernels` 0.14 will not load metadata from kernel-builder 0.15, since it contains an unknown (for 0.14) field `foo`. * Flip around test: unknown metadata fields must be accepted * Fix style of kernels-data Python files
1 parent 91bda11 commit 48cede9

3 files changed

Lines changed: 4 additions & 5 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.PHONY: style kernel-builder-cli-docs quality
22

33

4-
export check_dirs := kernels/src kernels/tests
4+
export check_dirs := kernels/src kernels/tests kernels-data/bindings/python
55

66
all: src/kernels/python_depends.json
77

kernels-data/bindings/python/tests/test_kernels_data.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ def test_metadata_load_cann(tmp_path):
124124
assert Metadata.load(path).backend.backend_type == Backend.CANN
125125

126126

127-
def test_metadata_load_unknown_field_rejected(tmp_path):
127+
def test_metadata_load_unknown_field_accepted(tmp_path):
128128
path = tmp_path / "metadata.json"
129129
path.write_text(
130130
json.dumps(
@@ -135,8 +135,7 @@ def test_metadata_load_unknown_field_rejected(tmp_path):
135135
}
136136
)
137137
)
138-
with pytest.raises(ValueError):
139-
Metadata.load(path)
138+
Metadata.load(path)
140139

141140

142141
def test_metadata_load_malformed(tmp_path):

kernels-data/src/metadata.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub struct BackendInfo {
1414
}
1515

1616
#[derive(Debug, Deserialize, Serialize)]
17-
#[serde(deny_unknown_fields, rename_all = "kebab-case")]
17+
#[serde(rename_all = "kebab-case")]
1818
pub struct Metadata {
1919
#[serde(skip_serializing_if = "Option::is_none")]
2020
pub version: Option<usize>,

0 commit comments

Comments
 (0)