Skip to content

ci: track the hub's main instead of the @v1 tag - #21

Merged
sotashimozono merged 2 commits into
mainfrom
ci/track-main-not-v1
Jul 31, 2026
Merged

ci: track the hub's main instead of the @v1 tag#21
sotashimozono merged 2 commits into
mainfrom
ci/track-main-not-v1

Conversation

@sotashimozono

Copy link
Copy Markdown
Member

Every caller of the QAtlasHub hub references @v1. v1 is a moving tag currently at v1.0.3,
so it is not a rotting pin — but it is a second pointer that has to be pushed by hand, and it is one
release behind main right now, which is exactly the failure it invites: a fix merges and reaches
nobody.

Measured, 2026-07-30

241 reusable references across the three owners:

hub ref count
lab-sotashimozono @main 166
QAtlasHub @v1 65
QAtlasHub @main 10

Those 10 are not callers — they are the uses: examples inside the reusables' own header comments,
which already say @main. So the hub documents @main and every real caller uses @v1. The lab
hub has no @v1 references at all; this brings the two owners onto one convention.

Blast radius, exactly

QAtlasHub/.github main is v1 plus one commit:

+84/-0  .github/workflows/julia-ci.yml   (QAtlasHub/.github#20)

Purely additive — the julia-ci timings producer, gated on shards > 1 and push:main, with the
recording job continue-on-error. Nothing else differs, so this switch delivers exactly that and
nothing more.

It also makes that fix testable: record-timings only runs on push:main, so no PR anywhere could
exercise it (#19). A shards: 4 caller on @main is the first real check.

Why @main rather than moving v1

Moving the tag on every merge makes v1 an alias for main with extra machinery and one more thing
to forget. main is gated by the hub's own actionlint, and the standing rule is to track latest
rather than pin. After this the tag is unreferenced and can be retired separately.

Refs lab-sotashimozono/.github#15

`v1` is a moving tag, not a rotting pin — but it is a second pointer pushed by hand, and it
is one commit behind `main` today, which is the failure it invites: a fix merges and reaches
nobody. The hub's own `uses:` examples already say `@main`, and all 166 references to the
lab-sotashimozono hub are `@main`; this brings both owners onto one convention.

Blast radius is exactly #20 (julia-ci.yml, +84/-0, purely additive, gated on
shards>1 and push:main) — nothing else differs between v1 and main.

Files: labeler.yml, tagbot.yml

Refs lab-sotashimozono/.github#15
`token: ${{ secrets.BOT_PAT }}` with no `BOT_PAT` under `workflow_call.secrets`. An undeclared secret
in a called workflow is EMPTY unless the caller passes `secrets: inherit`; the documented caller does,
which is both why it worked and why nothing reported it.

actionlint has been failing on this repo's `push:main` runs since at least 2026-07-26 for exactly this
— and every pull request passed, because reviewdog reports only inside the diff, so a defect in a file
the PR does not touch cannot surface. Touching tagbot.yml here is what brought it into scope.

Same class of defect as lab-sotashimozono/.github#17 (documentation.yml's undeclared DOCUMENTER_KEY),
found the same way: comparing what a reusable references against what it declares.

Refs lab-sotashimozono/.github#15
@sotashimozono
sotashimozono merged commit be0f006 into main Jul 31, 2026
1 check passed
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