Releases are automated by release-plz — there is no release script to run.
- Land changes on
mainusing Conventional Commits (feat:,fix:,feat!:…) — release-plz reads them to pick the next version. - release-plz keeps a release PR open that bumps the workspace
version and updates
CHANGELOG.md. Review it. - Merge the release PR. release-plz then:
- publishes
tensakuandtensaku_clito crates.io in dependency order; - creates the
vX.Y.Ztag and the GitHub Release.
- publishes
- The GitHub Release fires the packaging workflows automatically:
release.yml— Linux x86_64 + aarch64 tarballs. x86_64 builds in the Fedora-based gtk4-rs container; aarch64 buildsgtk4-layer-shellfrom source onubuntu-24.04-armand caches the install tree across releases. Each platform is a separate job; one failure doesn't block the other.release-flatpak.yml— builds the Flatpak bundle.aur-publish.yml— pushes the updated packages to the AUR.
No local steps, no release.sh.
Repository secrets (Settings → Secrets and variables → Actions):
| Secret | Purpose |
|---|---|
RELEASE_PLZ_TOKEN |
Fine-grained PAT (contents: write, pull-requests: write). Required so release-plz's tag/Release events trigger the packaging workflows — the default GITHUB_TOKEN cannot. |
CARGO_REGISTRY_TOKEN |
crates.io token scoped to publish the tensaku* crates. |
AUR_SSH_KEY |
Private SSH key registered with the AUR account that maintains tensaku. |
packaging/aur/PKGBUILD is the source of truth. aur-publish.yml
copies it, pins pkgver/pkgrel, refreshes sha256sums with
updpkgsums, regenerates .SRCINFO, and pushes to
ssh://aur@aur.archlinux.org/tensaku.git. Edit depends, package(),
etc. in packaging/aur/PKGBUILD; never edit the AUR repo directly.
aur-publish.yml has a workflow_dispatch trigger with a tag input
so a failed AUR push can be re-run by hand against an existing release
tag:
gh workflow run aur-publish.yml -f tag=vX.Y.Z