Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/actions/drift-check/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ inputs:
required: false
default: '3.11'
meta-repo-ref:
description: 'git ref of TMHSDigital/Developer-Tools-Directory to use for the checker code. Defaults to v1.7 (latest 1.7.x).'
description: 'git ref of TMHSDigital/Developer-Tools-Directory to use for the checker code. Defaults to v1 (auto-maintained MAJOR floating tag, per DTD#14). Future MINORs auto-flow through this default without requiring action.yml edits.'
required: false
default: 'v1.7'
default: 'v1'
caller-path:
description: 'When mode=self, path inside GITHUB_WORKSPACE that points at the caller checkout. Defaults to "." (root).'
required: false
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.9.0
1.9.1
24 changes: 24 additions & 0 deletions tests/test_composite_action_shape.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,3 +142,27 @@ def test_action_sticky_step_does_not_swallow_rc(action_doc):
assert "exit \"$RC\"" not in body and "exit $RC" not in body, (
"sticky step must not propagate its own RC; that's the propagate step's job"
)


def test_meta_repo_ref_default_is_floating_major(action_doc):
"""The meta-repo-ref input must default to a floating MAJOR tag
(v1, v2, ...), never a specific MINOR (v1.7) or PATCH (v1.7.5).

Regression guard for the bug surfaced during the v1.9.0 ecosystem
signal rollout: the default was hardcoded to 'v1.7' and never bumped
when 1.8/1.9 shipped. Tool repos consuming the action without an
explicit ``meta-repo-ref`` override silently checked out the meta-repo
at v1.7, so any tool signals past 1.7.0 produced inverse-direction
version-signal warnings.

Floating-major is the right granularity because DTD#14 auto-maintains
v1 to point at the latest 1.x.y release, so future MINORs auto-flow
through this default with zero action.yml edits.
"""
import re

meta_ref_default = action_doc["inputs"]["meta-repo-ref"]["default"]
assert re.match(r"^v\d+$", meta_ref_default), (
f"meta-repo-ref default must be a floating major tag (v1, v2, ...) "
f"per DTD#14 to avoid stale references; got {meta_ref_default!r}"
)
Loading