Skip to content

Commit cbc2efd

Browse files
chore: reset template compatibility floor
1 parent bacf1d0 commit cbc2efd

3 files changed

Lines changed: 19 additions & 14 deletions

File tree

scripts/template_contract.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ def load_contract(root: Path = ROOT) -> TemplateContract:
164164
_validate_protected_template_refs(
165165
protected_template_refs,
166166
minimum_compatible_template_version=minimum_compatible_template_version,
167+
template_version=template_version,
167168
)
168169

169170
return TemplateContract(
@@ -215,8 +216,8 @@ def _parse_protected_template_refs(
215216
*,
216217
path: Path,
217218
) -> list[ProtectedTemplateRef]:
218-
if not isinstance(raw_refs, list) or not raw_refs:
219-
raise TemplateContractError(f"{path} must declare non-empty protected_template_refs")
219+
if not isinstance(raw_refs, list):
220+
raise TemplateContractError(f"{path} must declare protected_template_refs as a list")
220221

221222
protected: list[ProtectedTemplateRef] = []
222223
for index, raw_ref in enumerate(raw_refs):
@@ -312,6 +313,7 @@ def _validate_protected_template_refs(
312313
protected_template_refs: list[ProtectedTemplateRef],
313314
*,
314315
minimum_compatible_template_version: str,
316+
template_version: str,
315317
) -> None:
316318
seen_versions: set[str] = set()
317319
for protected in protected_template_refs:
@@ -320,9 +322,13 @@ def _validate_protected_template_refs(
320322
f"duplicate protected template version: {protected.template_version}"
321323
)
322324
seen_versions.add(protected.template_version)
323-
if minimum_compatible_template_version not in seen_versions:
325+
if (
326+
minimum_compatible_template_version != template_version
327+
and minimum_compatible_template_version not in seen_versions
328+
):
324329
raise TemplateContractError(
325-
"minimum_compatible_template_version must be covered by protected_template_refs"
330+
"historical minimum_compatible_template_version must be covered "
331+
+ "by protected_template_refs"
326332
)
327333

328334

template-contract.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@ accepted_action:
99
tag: v0.29.0
1010
sha: 07708b602d253512c37cf773912375784882947d
1111
default_ref: v0
12-
minimum_compatible_template_version: 0.10.0
13-
protected_template_refs:
14-
- ref: reponomics-dashboard-v0.10.0
15-
template_version: 0.10.0
16-
source_commit: 4defe7bca9a592a1b81d209eddb18c81eaee22db
17-
status: required
12+
minimum_compatible_template_version: 0.16.0
13+
protected_template_refs: []
1814
managed_docs_namespace: docs/reponomics

tests/test_generated_repos.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -720,10 +720,13 @@ def test_template_contract_and_action_metadata_contract():
720720
assert _version_tuple(
721721
contract.minimum_compatible_template_version
722722
) <= _version_tuple(contract.template_version)
723-
assert any(
724-
protected.template_version == contract.minimum_compatible_template_version
725-
and protected.status == "required"
726-
for protected in contract.protected_template_refs
723+
assert (
724+
contract.minimum_compatible_template_version == contract.template_version
725+
or any(
726+
protected.template_version == contract.minimum_compatible_template_version
727+
and protected.status == "required"
728+
for protected in contract.protected_template_refs
729+
)
727730
)
728731
template_contract.validate_action_metadata(ACTION_YML_FIXTURE)
729732

0 commit comments

Comments
 (0)