Skip to content

feat!: publish versioned releases for reusable workflows; freeze CI validator to pinned ref - #24

Merged
00o-sh merged 1 commit into
mainfrom
claude/unabandoned-fork-metadata-d3e615
Aug 14, 2026
Merged

feat!: publish versioned releases for reusable workflows; freeze CI validator to pinned ref#24
00o-sh merged 1 commit into
mainfrom
claude/unabandoned-fork-metadata-d3e615

Conversation

@00o-sh

@00o-sh 00o-sh commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

What & why

Moves the reusable workflows from main-branch digest tracking to a rolling tagged-release model, so forks stop getting a digest-bump PR on every commit to this repo (docs, dashboard, templates, profile) and only get one when the workflows they actually run change.

release-reusable.yml (new). On push to main, filtered to .github/workflows/reusable-*.yml and scripts/validate_metadata.py, it cuts an auto-published GitHub Release + semver tag and moves a floating major tag (v1, …). Bump level comes from the head commit subject: feat!:/BREAKING CHANGE → major, feat: → minor, else patch. Nothing else in the repo can trigger a release, so unrelated commits no longer churn the forks. First release from this PR will be v1.0.0 (with v1).

reusable-ci.yml (validator freeze). The metadata job now checks out the validator at github.job_workflow_sha — the exact reusable-workflow commit the caller pinned — instead of main. A fork's pinned reusable-CI version now fully determines its CI behaviour, and a validate_metadata.py change ships through a new reusable-workflow release (hence it's in the trigger paths) rather than silently to every fork on the next run.

Follow-up (separate PRs): once v1.0.0 exists, the 23 forks get re-pinned from @<digest> # main to @<v1.0.0-sha> # v1.0.0 across their caller workflows; Renovate + the branch-automerge rule (renovate-config#19) then carry future bumps automatically — which now only happen on real workflow changes.

Type of change

  • fix / feat / perf — consumer-facing
  • deps — dependency update (add the security label if it fixes a CVE)
  • chore / ci / build / docs / test / refactor — maintenance

Checklist

  • Commits follow Conventional Commits (commitlint passes) — feat! drives the v1.0.0 cut
  • npm test passes on Node 20 / 22 / 24 — workflow-only change, no package surface
  • No new runtime dependency (or its addition is justified below)
  • Dev tree kept lean (prefer built-in node:test over new runners)

Generated by Claude Code

…alidator to pinned ref

Reusable workflows now get an auto-published GitHub Release + semver tag, cut
only when a reusable-*.yml (or a file it bundles into a run) changes on main.
Forks pin these tags instead of the main-branch digest, so unrelated commits to
this repo no longer churn a digest bump across every fork.

reusable-ci fetches the metadata validator at github.job_workflow_sha (the
caller's pinned reusable-workflow version) instead of main, so a fork's pinned
reusable-CI version fully determines its CI behaviour and validator changes ship
via a new reusable-workflow release rather than silently to every fork.

BREAKING CHANGE: consumers pin reusable workflows to a released tag, and the CI
metadata validator is now versioned with the reusable workflow rather than
tracked from main.
@00o-sh
00o-sh merged commit e57f1a5 into main Aug 14, 2026
2 checks passed
@00o-sh
00o-sh deleted the claude/unabandoned-fork-metadata-d3e615 branch August 14, 2026 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant