Skip to main content

Module queue

Module queue 

Source
Expand description

The node’s own merge queue (D68).

The bridge queues pull requests from somebody else’s forge. A node has no pull requests; it has proposals, which are pushes to refs/for/<branch>/<user>/<topic> admitted by the propose grant (D53, D60). This is the reading that turns those refs into a round, and the landing that writes the round’s result back where the log decides.

Two things differ from the bridge’s composition, and both come from the same fact: here the log is the source of truth.

  • A landing is real. It moves refs/heads/<branch>, so it is an OpKind::SetRef carrying the value the round started from as its compare-and-swap prev. A push that beat the round makes the landing fail rather than clobber.
  • The landing itself moves no git ref. The log leads and git follows, which is the direction D21 fixed: /api/queue/run writes git’s ref after the round, CAS’d on the round’s base, and crate::Platform::reconcile_git_refs repairs anything that still lags at the next startup.

Structs§

Proposal
One proposal in a round.
ProposalRound
The proposals aimed at one branch of one repository, plus the base they are aimed at.
RefLanding
Lands by moving the branch the proposals were aimed at (D68).

Constants§

QUEUE_CHANNEL
The channel the node’s queue authors under.

Type Aliases§

ScopeSource
Where a landing reads the scope it signs: this node’s id and a head its window still holds.