Release and Publishing¶
CI release model¶
Workflow: .github/workflows/release.yml
- Every push to
mainupdates the release PR viarelease-plz release-pr. Dashboard-only changes underdashboard/**are fingerprinted intocrates/tuitbot-server/dashboard-release-marker.txtduring this job so they also trigger atuitbot-serverrelease PR. - A manual run of
.github/workflows/release.ymlonmainpublishes crates and creates release tags. - Manual runs also accept an optional
release_taginput so you can backfill assets for an existingtuitbot-cli-v...ortuitbot-server-v...tag. - If no
release_taginput is provided, a rerun on the release PR merge commit can still recover the tagged release from the merge parents and backfill missing assets.
Tags¶
tuitbot-core-vX.Y.Ztuitbot-mcp-vX.Y.Ztuitbot-cli-vX.Y.Z
GitHub releases and binary assets¶
Releases that include tuitbot-cli or tuitbot-server publish GitHub release assets:
| Binary | Platforms |
|---|---|
tuitbot (CLI) |
linux x86_64, macOS Intel, macOS Apple Silicon, windows x86_64 |
tuitbot-server |
linux x86_64, macOS Intel, macOS Apple Silicon, windows x86_64 |
When both packages are released together, assets are attached to the CLI release tag. When only tuitbot-server is released, the workflow creates or reuses the server release tag for asset uploads.
Each asset-publishing release also includes a SHA256SUMS checksum manifest covering all archives.
tuitbot update uses the CLI-tagged assets to self-update the CLI and, if tuitbot-server is found on PATH, updates it from the best release that ships a server binary for the current platform.
Required repository secrets¶
CARGO_REGISTRY_TOKEN: crates.io API token for publish.RELEASE_PLZ_TOKEN(optional): PAT for broader automation trigger behavior.
First-time crates.io requirements¶
The crates.io account bound to CARGO_REGISTRY_TOKEN must have a verified email.
Profile settings:
Manual verification¶
release-plz update --config release-plz.toml --allow-dirty
cargo check --workspace