Skip to content
Castellan
Steward's icon

Concept · Steward

Read as

How the Steward releases

Which versions the Steward releases and when, the two ways it can release a repository (a tag, or your own release command), where the release notes come from, and what happens when a release fails.

Article
1306
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).

What it releases#

A repository is released when its branch on GitHub carries a version that has no GitHub release yet: whether a pull request raised it, or it was pushed straight to the branch.

Only in a repository the Steward has a way to release: Release each new version when you looked after it, or the Release field in Castellan's Settings > Repositories. With that field empty, it's never released, and its row says not released.

Releases always come from the branch itself, at its commit, never from a pull request's branch, so a release and its branch never drift apart.

When it releases#

  • In its rounds, while it's on duty and Merges and releases by itself is on, right after the round's merges.
  • When a merged pull request asks for it, with a release step. See How the Steward merges pull requests.
  • Right after every merge, if Release right after merging is on in its settings (it's off).
  • When you ask: Release on its page, for the repositories you tick (it asks first), or release from a terminal.

On several PCs, only the PC whose turn it is releases a repository. See The Steward on several PCs.

Two ways to release#

ReleaseWhat the Steward does
tagMakes a GitHub release itself: the tag v<version> at the branch's commit, titled "<Name> <version>".
A command, such as npm run releaseRuns it in a fresh worktree of the branch, at that commit, with its packages installed when it needs them. The command must make the GitHub release v<version> in the repository itself. One that finishes without it is a failed release.

Either way, the release goes to the repository's own GitHub repository, never anywhere else.

Release notes#

For a tag release, the notes are the version's entry in CHANGELOG.md, at the commit released, together with the entries of any versions merged since the release before and never released on their own. With no entry, GitHub writes the notes from the commits since the last release.

An entry in this shape reads well as release notes:

## 1.4.3

**One line that says what this version is about.**

### What's new

- New things a person using it will notice.

### What changed

- Changes and fixes to what was there.

When a release fails#

  • It isn't tried again at the same commit. The round says so, and it's an alarm at once, with what failed. See The Steward's alarms.
  • Once it's fixed, choose Release on the Steward's page, or push a new commit to the branch: the next round tries that.

The usual causes: gh signed out, the repository's own release command failing, or a release command that doesn't make the GitHub release. See When the Steward isn't working as it should.

Telling other pages#

After any release, the Steward tells the local pages listed under Told after a release in its settings, as each page's own button would. One that doesn't answer within 5 seconds is only a line in the log.

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 1306. Every version of Steward, and what changed in it, is in its release notes.