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:
16
README.md
16
README.md
@@ -284,6 +284,22 @@ npm run build
|
||||
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
|
||||
|
||||
### WhatsApp
|
||||
|
||||
@@ -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
|
||||
- [Gmail Pub/Sub](./gmail-pubsub.md) - Email notifications integration
|
||||
- [Railway Deployment](./railway-deploy.md) - Deploy to Railway
|
||||
- [Releasing](./releasing.md) - How to create releases
|
||||
|
||||
### Channel Setup
|
||||
- [Telegram Setup](./telegram-setup.md) - BotFather token setup
|
||||
|
||||
72
docs/releasing.md
Normal file
72
docs/releasing.md
Normal 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)
|
||||
Reference in New Issue
Block a user