docs: add releasing guide (#177)

Documents the automated release workflow:
- How to tag and push releases
- Pre-release detection (alpha/beta/rc)
- Versioning strategy (semver)
- Release checklist
- Links to npm publish tracking issue (#174)

Written by Cameron ◯ Letta Code

"Ship it." - GitHub
This commit is contained in:
Cameron
2026-02-05 15:13:19 -08:00
committed by GitHub
parent 610f2a64eb
commit 002fa48b2a
3 changed files with 89 additions and 0 deletions

View File

@@ -284,6 +284,22 @@ npm run build
lettabot server lettabot server
``` ```
## Releases
Releases are automated via GitHub Actions. When a version tag is pushed, the workflow builds, tests, generates release notes from merged PRs, and creates a GitHub Release.
```bash
# Create a release
git tag v0.2.0
git push origin v0.2.0
# Create a pre-release (alpha/beta/rc are auto-detected)
git tag v0.2.0-alpha.1
git push origin v0.2.0-alpha.1
```
See all releases: [GitHub Releases](https://github.com/letta-ai/lettabot/releases)
## Troubleshooting ## Troubleshooting
### WhatsApp ### WhatsApp

View File

@@ -11,6 +11,7 @@ LettaBot is a multi-channel AI assistant powered by [Letta](https://letta.com) t
- [Scheduling Tasks](./cron-setup.md) - Cron jobs and heartbeats - [Scheduling Tasks](./cron-setup.md) - Cron jobs and heartbeats
- [Gmail Pub/Sub](./gmail-pubsub.md) - Email notifications integration - [Gmail Pub/Sub](./gmail-pubsub.md) - Email notifications integration
- [Railway Deployment](./railway-deploy.md) - Deploy to Railway - [Railway Deployment](./railway-deploy.md) - Deploy to Railway
- [Releasing](./releasing.md) - How to create releases
### Channel Setup ### Channel Setup
- [Telegram Setup](./telegram-setup.md) - BotFather token setup - [Telegram Setup](./telegram-setup.md) - BotFather token setup

72
docs/releasing.md Normal file
View File

@@ -0,0 +1,72 @@
# Releasing
LettaBot uses GitHub Releases with automated release notes.
## How to Release
### 1. Tag the commit
```bash
git checkout main
git pull origin main
git tag v0.2.0
git push origin v0.2.0
```
### 2. What happens automatically
The [release workflow](../.github/workflows/release.yml) runs on every `v*` tag push:
1. **Build gate** - `npm ci && npm run build`
2. **Test gate** - `npm run test:run` (all unit tests must pass)
3. **Release notes** - Auto-generated from merged PRs since the last tag
4. **GitHub Release** - Created with the notes, linked to the tag
### 3. Pre-releases
Tags containing `alpha`, `beta`, or `rc` are automatically marked as pre-release:
```bash
git tag v0.2.0-alpha.1 # marked as pre-release
git tag v0.2.0-beta.2 # marked as pre-release
git tag v0.2.0-rc.1 # marked as pre-release
git tag v0.2.0 # marked as stable release
```
## Versioning
We follow [Semantic Versioning](https://semver.org/):
- **Major** (`v1.0.0`) - Breaking changes to config format, channel API, or CLI
- **Minor** (`v0.2.0`) - New features, new channels, new config options
- **Patch** (`v0.1.1`) - Bug fixes, dependency updates, docs
While in `0.x`, minor versions may include breaking changes.
## Release Checklist
Before tagging a release:
- [ ] All PRs for this release are merged to `main`
- [ ] `npm run build` passes locally
- [ ] `npm run test:run` passes locally
- [ ] README and docs are up to date
- [ ] No known critical bugs (check open issues)
## npm Publishing
Not yet available. Tracked in [#174](https://github.com/letta-ai/lettabot/issues/174).
Currently, users install from source:
```bash
git clone https://github.com/letta-ai/lettabot.git
cd lettabot
git checkout v0.2.0 # or latest tag
npm install && npm run build && npm link
```
## Viewing Releases
- [All releases](https://github.com/letta-ai/lettabot/releases)
- [Latest release](https://github.com/letta-ai/lettabot/releases/latest)