Skip to content
Castellan
Steward's icon

Concept · Steward

Read as

The Steward on several PCs

How Stewards on your desktop and your laptop take turns, so only one merges and releases each repository; Do it here, Keep it on this PC, and what happens when a PC can't reach GitHub.

Article
1307
Applies to
Steward 0.35.0
Last reviewed
For
For developers
Written for Steward 0.35.0. Steward is at 0.35.1 now (1 small release since: what changed).

Why the PCs take turns#

You may work on a desktop one day and a laptop the next, each with a Steward signed in to the same GitHub account. Without taking turns, both would merge and release the same pull requests. So, for each repository, one PC has the turn to publish, and the others leave it alone.

The PCs work this out among themselves, through the repository's own remote, with plain git: a small ref, refs/manor/release-pc, says which PC has the turn. No account or license is involved, and it's all done in a scratch repository in the Steward's work folder, never in your clone.

What waits for the turn#

Only what publishes to the shared remote:

  • merging;
  • releasing, including the Release button;
  • the push of a catch-up.

Nothing local ever waits: tests, vouching and claiming a version work on every PC, turn or not.

How the turn moves#

  • A free turn (or one that ran out more than 2 minutes ago) is taken for three rounds, at least 15 minutes. The PC that has it renews it once half that time is gone.
  • A PC with a clone of the repository takes the turn from one without.
  • Before each merge or release, the PC checks once that the turn is still its own.

So when a PC is switched off or asleep, its turns run out and the other PC carries on.

On the page#

The Release PC column of Your repositories says which PC has each repository's turn. A repository another PC has is left alone here, and its row says so ("Merging and releasing for Example App: done by DESKTOP-ABC"), with two buttons:

  • Do it here takes the turn for this PC at once.
  • Keep it on this PC pins it here. Other PCs never take a pinned turn while this PC keeps renewing it. A pin that's gone quiet for more than a day may be taken, and the page says that PC has gone quiet.

Unpin lets a pinned turn go back to the usual rules.

When the remote can't be reached#

  • This PC can't reach the remote: nothing can be published there anyway. The page says, in plain words and not as an alarm, that releasing waits until this PC can reach it.
  • The host refuses the ref: this PC works alone there, as before, and the page says so once.

Versions on several PCs#

Versions claimed on one PC are shared with the others through the same remote, so two PCs never hand out the same version. See Versions claimed up front.

Is this page right?

If something on it is wrong or out of date, tell us and we'll fix the page.

Still stuck? Write to support@castellan-software.com and mention article 1307. Every version of Steward, and what changed in it, is in its release notes.