| name | release |
| description | Cut a Memoria release. Version bump, CHANGELOG, CI workflows, Docker image. Use when publishing a new version. |
Flow
| Step | Who | How |
|---|
| Bump version, tag, push | You | make release VERSION=x.y.z |
| Build binaries (4 platforms) | CI | release-rust.yml |
| Build + push Docker image | CI | release-docker.yml |
| Create GitHub Release | CI | softprops/action-gh-release |
Stable Release
git status
make release VERSION=0.2.0
Does: update Cargo.toml version → cargo check → generate CHANGELOG (git-cliff) → commit → tag → push.
CI then: test → build binaries (x86_64/aarch64 linux/macos) → GitHub Release → Docker image (:0.2.0 + :latest).
Pre-Release
make release-rc VERSION=0.2.0-rc1
Same but: no CHANGELOG, GitHub Release marked prerelease, Docker gets :0.2.0-rc1 (not :latest).
Typical: rc1 → rc2 → stable.
Manual Docker Push
make release-docker
make release-docker VERSION=0.2.0
CI Workflows
| Workflow | Trigger | What |
|---|
test.yml | Push main/develop, PRs | check + clippy + tests |
pr-title.yml | PR open/edit | Conventional Commits validation |
release-rust.yml | Tag v* | Test → build → GitHub Release |
release-docker.yml | Tag v* | Test → build → Docker Hub |
Both release workflows run full test suite before publishing.
Version Locations
memoria/Cargo.toml — source of truth
memoria --version — binary
mcp.json — _version field
- Steering rules —
<!-- memoria-version: x.y.z -->
Checklist