remeris: a Go release tool, drop-in for Knope
remeris is a release tool written in Go. It reads Knope's knope.toml, changeset files and Git tags, so it can replace Knope in an existing project.
remeris is a release tool written in Go. It reads Knope’s knope.toml, .changeset/ files and Git tag formats, writes the same file edits and changelog output, and prints the same messages. If your project releases with Knope, you can switch the binary and keep everything else.
Usage
The command line, the output, exit codes, environment variables and credentials.
Configuration
The knope.toml that remeris reads: packages, workflows, steps and variables.
Differences from Knope
Where remeris behaves differently, and why.
Releasing
How remeris releases itself, and how to verify a download. For maintainers.
Install
With mise and its packslip backend, which checks the signed release bundle (packslip.sigstore.json) before it unpacks anything:
mise use -g packslip:github.com/celest-io/remerisThe signer fingerprint of remeris is ps1_p2ti4zisstvj4fgdichvcpnhhq (it comes from the repository ID of celest-io/remeris, so it survives a rename). Releases from v0.0.2 on carry the bundle. See Releasing for the other ways to verify a download.
go install github.com/celest-io/remeris/cmd/remeris@latestFrom a checkout, with mise (the build task injects the version information):
mise install
mise run build # writes build/remerisQuick start
In a Git repository with a package file such as Cargo.toml, package.json or pyproject.toml, and no knope.toml:
Generate a configuration
remeris --generateWrites a knope.toml with the release, document-change and get-version workflows. A repository without a knope.toml already has these three workflows with the same defaults, so --generate only saves them to a file you can edit.
Record a change
remeris document-changeRecords a change file for the next release.
Preview the release
remeris release --dry-runShows what a release would do, and changes nothing.
Release
remeris releasePrepares and creates the release.