Skip to content

fix(scaffold): derive meta-repo action pins from VERSION#72

Merged
TMHSDigital merged 1 commit into
mainfrom
fix/scaffold-derive-meta-refs
Jun 13, 2026
Merged

fix(scaffold): derive meta-repo action pins from VERSION#72
TMHSDigital merged 1 commit into
mainfrom
fix/scaffold-derive-meta-refs

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

Summary

Root-cause fix for stale meta-repo action refs in the scaffold. The .j2
workflow templates emitted hardcoded pins (drift-check@v1.9,
release-doc-sync@v1), so every repo created by create-tool.py was born
pinned to a stale meta train. The Blender reconcile (@v1.9 -> @v1.15) fixed
one repo by hand; this fixes the source so it stops happening.

All three pins are now derived from the live meta VERSION at generation
time (read via a new read_meta_version() in create-tool.py):

Ref Train Value today (VERSION 1.16.1)
drift-check action ref @v{MAJOR}.{MINOR} @v1.16
release-doc-sync action ref @v{MAJOR} @v1
release.yml meta-repo-ref input v{MAJOR}.{MINOR}.{PATCH} v1.16.1

Hardcoding today's number would just move the staleness forward one release;
deriving removes it permanently.

Changes

  • scaffold/create-tool.py: read VERSION, expose meta_major/minor/patch to templates.
  • scaffold/templates/drift-check.yml.j2, release.yml.j2: use the derived pins; add meta-repo-ref.
  • .github/workflows/validate.yml: scaffold regression greps now derive the expected refs from VERSION instead of asserting hardcoded literals.
  • standards/ci-cd.md: drift-check pin example switched from @v1.9 to derive-from-current language.
  • tests/test_release_doc_sync.py: fix a stale test that asserted the release-doc-sync default was v1.0 (it has been v1, the floating-major train, since fix: change release-doc-sync default meta-repo-ref to v1 #43).
  • VERSION: 1.16.0 -> 1.16.1 (required by the version-bump-check guard).

Scope

Newly generated repos only. Existing tool-repo ref bumps remain the periodic standards re-stamp's job and are intentionally not swept here.

Test plan

  • Rendered the templates via create-tool.py against the current VERSION (1.16.1): output resolves to drift-check@v1.16, release-doc-sync@v1, meta-repo-ref: v1.16.1.
  • Grepped rendered output: zero v1.9 / v1.9.1 occurrences; all 6 workflows parse as valid YAML.
  • pytest tests/ green (212 passed, 1 skipped; the previously-failing stale-ref test now passes).
  • scripts/sync_from_registry.py --check clean (registry.json untouched).

Workflow action refs in generated tool repos were hardcoded literals
(drift-check@v1.9, release-doc-sync@v1), so every newly scaffolded repo
was born pinned to a stale meta-repo train. Hand-correcting one repo
(Blender @v1.9 -> @v1.15) treated the symptom; the source kept minting
stale refs.

Derive all three pins from the live meta VERSION at generation time:
- drift-check      -> @v{MAJOR}.{MINOR}        (MAJOR.MINOR train)
- release-doc-sync -> @v{MAJOR}                (MAJOR train)
- meta-repo-ref    -> v{MAJOR}.{MINOR}.{PATCH} (full current release tag)

A repo scaffolded after any future meta release is now born current
instead of stale. The validate.yml scaffold regression checks and the
ci-cd.md drift-check pin example are likewise derive-from-current rather
than hardcoded. Also fixes a stale test that asserted the release-doc-sync
default was v1.0 (it is v1, the floating-major train, since #43).

Scope: newly generated repos only; existing-repo ref bumps remain the
periodic standards re-stamp's job.

Signed-off-by: fOuttaMyPaint <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@TMHSDigital TMHSDigital merged commit d9f1ef7 into main Jun 13, 2026
14 checks passed
@TMHSDigital TMHSDigital deleted the fix/scaffold-derive-meta-refs branch June 13, 2026 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant