Concept · Steward
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
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
releasestep. 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
releasefrom 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#
| Release | What the Steward does |
|---|---|
tag | Makes a GitHub release itself: the tag v<version> at the branch's commit, titled "<Name> <version>". |
A command, such as npm run release | Runs 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.
Related articles
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.