Skip to content

Commit 1b76354

Browse files
fix: keep template floor aligned after reset
1 parent cbc2efd commit 1b76354

3 files changed

Lines changed: 10 additions & 0 deletions

File tree

scripts/accept_action_release.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ def accept_action_release(
117117
payload["compatible_action_major"] = action_major
118118
payload["default_action_ref"] = expected_default_ref
119119
payload["accepted_action"] = next_action
120+
if not payload.get("protected_template_refs"):
121+
payload["minimum_compatible_template_version"] = payload["template_version"]
120122

121123
next_text = yaml.safe_dump(payload, sort_keys=False)
122124
contract_path.write_text(next_text, encoding="utf-8")

scripts/prepare_template_release.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ def prepare_template_release(
6565
previous_version = contract.template_version
6666
next_version = bump_version(previous_version, release_type)
6767
payload["template_version"] = next_version
68+
if not payload.get("protected_template_refs"):
69+
payload["minimum_compatible_template_version"] = next_version
6870
contract_path.write_text(yaml.safe_dump(payload, sort_keys=False), encoding="utf-8")
6971
try:
7072
template_contract.validate_local_contract(root)

tests/test_accept_action_release.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ def _write_root(tmp_path: Path, *, template_version: str | None = None) -> Path:
2323
assert isinstance(payload, dict)
2424
if template_version is not None:
2525
payload["template_version"] = template_version
26+
if not payload.get("protected_template_refs"):
27+
payload["minimum_compatible_template_version"] = template_version
2628
(tmp_path / "template-contract.yml").write_text(
2729
yaml.safe_dump(payload, sort_keys=False),
2830
encoding="utf-8",
@@ -76,6 +78,7 @@ def test_accept_action_release_bumps_template_patch_and_records_action(tmp_path)
7678
assert payload["template_version"] == expected_template
7779
written = _contract_payload(root)
7880
assert written["template_version"] == expected_template
81+
assert written["minimum_compatible_template_version"] == expected_template
7982
assert written["accepted_action"] == {
8083
"repository": "reponomics/reponomics-dashboard-action",
8184
"version": action_version,
@@ -98,6 +101,7 @@ def test_accept_action_release_bumps_template_minor_for_action_minor(tmp_path):
98101

99102
assert changed is True
100103
assert payload["template_version"] == expected_template
104+
assert payload["minimum_compatible_template_version"] == expected_template
101105

102106

103107
def test_accept_action_release_bumps_template_major_for_action_major(tmp_path, monkeypatch):
@@ -113,6 +117,7 @@ def test_accept_action_release_bumps_template_major_for_action_major(tmp_path, m
113117

114118
assert changed is True
115119
assert payload["template_version"] == expected_template
120+
assert payload["minimum_compatible_template_version"] == expected_template
116121
assert payload["compatible_action_major"] == 1
117122
assert payload["default_action_ref"] == "v1"
118123
assert payload["accepted_action"] == {
@@ -188,6 +193,7 @@ def test_prepare_template_release_bumps_template_patch_only(tmp_path):
188193
assert returned_previous == previous
189194
assert current == expected
190195
assert payload["template_version"] == expected
196+
assert payload["minimum_compatible_template_version"] == expected
191197
assert payload["accepted_action"]["version"] == accepted_action_version
192198
assert _contract_payload(root)["template_version"] == expected
193199

0 commit comments

Comments
 (0)