Skip to content

Say that every workflow a slot reaches needs a concurrency group - #7

Merged
jeffwall-curlewlabs merged 1 commit into
mainfrom
docs/one-run-at-a-time
Oct 5, 2026
Merged

jeffwall-curlewlabs merged 1 commit into
mainfrom
docs/one-run-at-a-time

Conversation

@jeffwall-curlewlabs

Copy link
Copy Markdown
Contributor

The README stated the concurrency rule only for a workflow running the slot action.

  • Reconcilers. "Enrolling a reconciler" said declaring the dispatch type was the whole enrollment, because a reconciler is harmless to run twice. Running twice at once is a different matter: two runs that read the same state can both act on it. Enrolling makes that overlap likely, since the clock's dispatch and GitHub's schedule run of one slot can start minutes apart.
  • Chained workflows. The README said to use the slot action unchanged, with nothing saying the parent's group does not cover the chained workflow's own runs. Each parent delivery starts a chained run, and those can overlap.

Changes:

  • A new "One run at a time" section covers all three kinds of workflow: why each needs a group, and which queue setting it takes. Slot-action workflows use queue: max; reconcilers are fine on the default queue. The pull-request keying example moves there from the enrolling section.
  • The reconciler example now declares its group.
  • The chained section points to the new section.
  • slot/action.yml's header now says chained workflows must serialize too.

Docs and comments only. Nothing ships differently, so no release or tag move is needed.

The README stated the rule only for a workflow running the slot action. It
told a reconciler that declaring the dispatch type was the whole enrollment,
because running it twice is harmless; running it twice at once is not, and
enrolling makes that likely, since the clock's dispatch and GitHub's schedule
run of one slot can start minutes apart. A chained workflow was told to use
the slot action unchanged, with nothing saying the parent's group does not
cover its own runs.

The rule now has one section covering all three: which queue each needs and
why, and the pull-request keying that was under the enrolling example. The
reconciler example declares its group, and the slot action's header names
chained workflows.
@jeffwall-curlewlabs
jeffwall-curlewlabs merged commit 06ebe5b into main Oct 5, 2026
10 checks passed
@jeffwall-curlewlabs
jeffwall-curlewlabs deleted the docs/one-run-at-a-time branch October 5, 2026 22:35
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