@@ -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
0 commit comments