v0.x: generated projects release on colophon¶
A generated project now releases through
colophon, the estate's release tool, instead of
releaser-pleaser (#110). colophon keeps a release merge or pull request up to date
on every push to main; merging it tags the commit that actually landed and
creates the release, and the tag starts goreleaser as before.
What changes¶
- GitLab:
.gitlab-ci.ymlincludes the cicdcolophoncomponent in place ofreleaser-pleaser, at the same pinned cicd version. - GitHub:
.github/workflows/release.yamlruns colophon'spublishthenpropose, at a pinned colophon version..github/workflows/releaser-pleaser.yamlis no longer generated. - Both: a commented
.colophon.yaml, where release overrides such as a hold or announcements live.
Migrating an existing project¶
gtb regenerate project applies all of this. A CI file you edited goes through the
usual conflict handling rather than being overwritten. On GitHub, regenerate also
removes releaser-pleaser.yaml when it is still as generated; an edited one is left
with a warning, and must be removed by hand, or it keeps running beside colophon's.
Then, before the next push to main:
- Add
COLOPHON_TOKEN. On GitLab, a CI/CD variable holding an access token with theapiandwrite_repositoryscopes; on GitHub, a repository secret holding a fine-grained token or GitHub App token with contents and pull requests read/write. It must not beCI_JOB_TOKENorGITHUB_TOKEN: a tag pushed with either starts no release pipeline. Ifv*tags are protected, the token must be allowed to create them.RELEASER_PLEASER_TOKENcan then be removed. - Close releaser-pleaser's open release MR or PR. colophon opens its own, on the
colophon/release/mainbranch, and the old branch can be deleted. - Write release prose in commits. A
Release-Note:trailer or a fencedrelease-noteblock in a commit message carries notes; nothing written in the release MR's description survives, because colophon regenerates it on every run.