Skip to content

ci: call the org's reusable workflows, and leave CI alone - #36

Open
sotashimozono wants to merge 3 commits into
mainfrom
chore/reusable-workflows
Open

ci: call the org's reusable workflows, and leave CI alone#36
sotashimozono wants to merge 3 commits into
mainfrom
chore/reusable-workflows

Conversation

@sotashimozono

@sotashimozono sotashimozono commented Sep 2, 2026

Copy link
Copy Markdown
Member

Nine workflows were hand-rolled copies of what QAtlasHub/.github already publishes. They become
four-line callers: 417 → 138 lines, and a fix to the shared copy now reaches this repository
without anyone remembering it exists.

CI.yml is untouched — verified with git diff --quiet. It already calls TestShards.jl's
sharded-tests reusable with this suite's own shards: 4 and a General registry refresh, which
is repository-specific rather than boilerplate.

Behaviour that changes, deliberately

workflow before after
AutoMerge --auto --merge, GITHUB_TOKEN --auto --squash --delete-branch, BOT_PAT so a bot's PR triggers CI
CompatHelper daily every four hours
FormatCheck paths: ['**/*.jl'] no filter
TagBot comment + dispatch + daily backfill cron
VersionCheck "strictly greater" "exactly one semver step" — tighter
Documentation deploy + preview comment in one job split into Documentation.yml + new DocsPreview.yml
AutoRegister folded the draft release body into the comment shorter stub, still carrying the literal changelog keyword

Two of those deserve more than a table row.

CompatHelper's dead if:. The old file guarded setup-julia with
if: steps.julia.outcome == 'skipped' when no step had the id julia, so the guard never
matched and setup-julia was always skipped. I expected to find a broken workflow and did not:
the runner had Julia anyway, CompatHelper.main() succeeded, and it has been opening PRs (#25).
So this removes a condition that was guarding nothing, not a bug.

preview-base. The docs-preview reusable defaults to codes.sota-shimozono.com, which does
not resolve (curl returns 000). DocsPreview.yml passes https://qatlashub.github.io
explicitly so the link in the comment is one a reviewer can click. Pages has now been enabled on
this repository — gh-pages already carried dev/, index.html and previews/, but nothing was
serving it, so both the old and the new URL were 404 until today.

Deleted

  • .github/workflows/AutoRegister.yml.disabled — its header reads "This package is
    deliberately NOT in the General registry … rename back when the package is actually meant to be
    registered."
    That condition was met today (chore: register in the General registry #35), so the file is now a note that answers the
    question wrongly.
  • .github/scripts/build_release_notes.py — the identical script now ships inside
    QAtlasHub/.github/actions/release-notes (same ## Proposed Changes / ## Usage or Results
    extraction, same create-or-edit logic). PULL_REQUEST_TEMPLATE.md's reference is repointed.

What is deliberately not dropped

PublishRelease.yml keeps pull-requests: read. The shared action does not declare it, and a
permissions: block replaces rather than adds — so adopting the action while taking
TestShards' shorter permissions block would reintroduce exactly the failure #33 fixed
(Resource not accessible by integration (search.nodes.0)).

Checked

All 13 workflow files parse (yaml.safe_load). main requires a PR but no status checks
(QAtlasHub/.github#25), so this PR's CI has to be read rather than relied on.

Version 0.4.60.4.7.


Do not merge yet

0.4.6 is mid-registration in JuliaRegistries/General#166878
(new package, three-day waiting period). Merging this bumps to 0.4.7 and fires AutoRegister
again, which would open a second registration PR for a package whose first one is still open.

Merge after #166878 lands.

Nine workflows were hand-rolled copies of what QAtlasHub/.github already
publishes. They are now four-line callers. 417 lines of workflow become about a
third of that, and a fix to the shared copy reaches this repository without
anyone remembering it exists.

CI.yml is untouched. It already calls TestShards.jl's sharded-tests reusable
with this suite's own `shards: 4` and a General registry refresh, and that is
repository-specific rather than boilerplate.

Behaviour that changes, deliberately:

  AutoMerge      `--merge` -> `--squash --delete-branch`, and BOT_PAT so a bot's
                 PR triggers CI (a GITHUB_TOKEN-created PR does not).
  CompatHelper   daily -> every four hours. Drops a dead `if:` that referenced
                 `steps.julia.outcome` when no step had that id, so setup-julia
                 was always skipped. It was harmless — the runner had Julia and
                 CompatHelper.main() has been opening PRs (#25) — but it was
                 guarding nothing.
  FormatCheck    drops `paths: ['**/*.jl']`. A filtered required check never
                 runs on a PR that touches no .jl file, and a required check
                 that never runs stays pending forever. `main` requires no
                 checks today; the filter would cost everything the day one is
                 added.
  TagBot         gains a daily cron that backfills a registered-but-untagged
                 version.
  VersionCheck   "strictly greater" -> "exactly one semver step". Tighter: a PR
                 that skips a version now fails instead of passing.
  Documentation  split into Documentation.yml (deploy) + DocsPreview.yml
                 (preview comment), which is how the reusables are shaped. The
                 Pages-rebuild trigger is in the deploy reusable, so nothing is
                 lost. `preview-base` is set to the Pages host explicitly: the
                 reusable defaults to codes.sota-shimozono.com, which does not
                 resolve.
  AutoRegister   the local copy folded the Release Drafter draft body into the
                 registration comment; the shared one posts a shorter stub. It
                 still carries the literal 'changelog' keyword Registrator's
                 guideline check wants.

Deleted:

  .github/workflows/AutoRegister.yml.disabled — its header says this package is
  deliberately not in the General registry. That stopped being true today, so
  the file is now a note that answers the question wrongly.

  .github/scripts/build_release_notes.py — the same script now ships inside
  QAtlasHub/.github/actions/release-notes. PULL_REQUEST_TEMPLATE.md's reference
  is repointed.

PublishRelease keeps its `pull-requests: read`. The shared action does not
declare it, and a `permissions:` block replaces rather than adds, so dropping it
while adopting the action would reintroduce exactly the failure #33 fixed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added the chore label Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

📚 Docs preview: https://qatlashub.github.io/ParallelManager.jl/previews/PR36/

(updates on each push to this PR)

@codecov

codecov Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

sotashimozono and others added 2 commits September 2, 2026 03:19
Surfaced by dropping FormatCheck's `paths: ['**/*.jl']` filter in the previous
commit. `format(".")` always inspected the whole repository, so this violation
was reachable — but only from a pull request that happened to touch a `.jl`
file, and none had since it appeared. The check reported green by not running.

One file, one call, no behaviour change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Every item here was raised on the registration PR and verified against the
tree before changing anything.

  src/KeyLock.jl        the Module layout table linked a file that does not
                        exist; the row is removed
  mkdir advisory lock   locking is delegated to `DataVault.acquire_running!`,
                        which uses POSIX `link()`, not `mkdir`
  heartbeat / stale     NOT removed — `DataVault` really does write a
                        heartbeat into `.running` and reclaim cold markers via
                        `cleanup_stale`. What was wrong was the mechanism and
                        the owner, not the capability
  test/keylock/         no such directory; those tests live in `test/run/`
                        (`test_run_keylock.jl`), which the line below already
                        lists
  templateHPC.jl        the repository exists but is PRIVATE, so the link is a
                        404 for everyone but its owner. Removed rather than
                        left as a dead link from a public README

Documentation links now point at the site that is actually served,
https://qatlashub.github.io/ParallelManager.jl/ — Pages was never enabled on
this repository after the move to the org, so `gh-pages` had content that
nothing served. `docs/make.jl` had the same dead domain as `canonical`.
The `stable` badge is dropped rather than repointed: there is no tag yet, so it
would 404 too.

Swept every link in the README afterwards: all external URLs return 200, all
relative paths resolve.

Project.toml stays at 0.4.6. The pending registration is for that version, and
a pending registration is updated by retriggering from a new commit rather than
by bumping.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant