Skip to content
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

Commit db4dc75

Browse files
Claude Code Sandboxclaude
andcommitted
docs: add release workflow documentation
Comprehensive guide covering: - Full release checklist (9 steps) - Version bump locations - CI/CD automation - ClawHub publishing - Common gotchas (zsh quoting, MCP stdio, etc.) - Remote configuration Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent eaf5ecc commit db4dc75

1 file changed

Lines changed: 153 additions & 0 deletions

File tree

docs/release-workflow.md

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
# keep-protocol Release Workflow
2+
3+
## Overview
4+
5+
This document describes the full automated release pipeline for keep-protocol.
6+
7+
## Prerequisites
8+
9+
- Git remotes configured: `origin` (CLCrawford-dev), `staging` (dev repo), `nteg` (fork)
10+
- ClawHub CLI authenticated: `CLAWHUB_REGISTRY=https://auth.clawdhub.com npx clawhub whoami`
11+
- CI configured with PyPI trusted publishing
12+
13+
## Release Checklist
14+
15+
### 1. Code Changes
16+
```bash
17+
# Work on feature branch
18+
git checkout -b feature/description
19+
20+
# Push to staging first, then origin
21+
git push staging feature/description
22+
git push origin feature/description
23+
24+
# Create PR and merge to main
25+
```
26+
27+
### 2. Version Bump (3 files)
28+
29+
| File | Field |
30+
|------|-------|
31+
| `python/pyproject.toml` | `version = "X.Y.Z"` |
32+
| `python/keep/__init__.py` | `__version__ = "X.Y.Z"` |
33+
| `keep.go` | `ServerVersion = "X.Y.Z"` |
34+
35+
### 3. Update CHANGELOG.md
36+
```markdown
37+
## [X.Y.Z] - YYYY-MM-DD
38+
39+
### Added
40+
- New feature description
41+
42+
### Changed
43+
- Change description
44+
45+
### Fixed
46+
- Fix description
47+
```
48+
49+
Update comparison links at bottom:
50+
```markdown
51+
[Unreleased]: .../compare/vX.Y.Z...HEAD
52+
[X.Y.Z]: .../compare/vPREV...vX.Y.Z
53+
```
54+
55+
### 4. Update CI Matrix (if Python version changed)
56+
Edit `.github/workflows/ci.yml`:
57+
```yaml
58+
python-version: ['3.10', '3.11', '3.12', '3.13']
59+
```
60+
61+
### 5. Commit and Push
62+
```bash
63+
git add -A
64+
git commit -m "chore: bump version to vX.Y.Z"
65+
git push staging main
66+
git push origin main
67+
```
68+
69+
### 6. Tag and Release (Triggers CI)
70+
```bash
71+
git tag vX.Y.Z
72+
git push origin vX.Y.Z
73+
```
74+
75+
This triggers:
76+
- PyPI publish (automatic via trusted publishing)
77+
- ghcr.io Docker image publish
78+
79+
### 7. Sync nTEG-dev Fork
80+
```bash
81+
git push nteg origin/main:main --force
82+
```
83+
84+
### 8. Publish to ClawHub
85+
```bash
86+
CLAWHUB_REGISTRY=https://auth.clawdhub.com npx clawhub publish . --version X.Y.Z
87+
```
88+
89+
### 9. Verify Release
90+
91+
```bash
92+
# PyPI
93+
curl -s "https://pypi.org/pypi/keep-protocol/json" | grep -o '"version":"[^"]*"'
94+
95+
# ClawHub
96+
CLAWHUB_REGISTRY=https://auth.clawdhub.com npx clawhub inspect nTEG-dev/keep-protocol
97+
98+
# Docker
99+
docker pull ghcr.io/clcrawford-dev/keep-server:X.Y.Z
100+
```
101+
102+
## Gotchas
103+
104+
### pip install with extras (zsh)
105+
```bash
106+
# Wrong (zsh interprets brackets as glob)
107+
pip install keep-protocol[mcp]
108+
109+
# Correct
110+
pip install "keep-protocol[mcp]"
111+
```
112+
113+
### MCP server has no --help
114+
The `keep-mcp` command uses stdio transport. It waits for MCP protocol messages, not CLI flags.
115+
116+
Test with:
117+
```bash
118+
python -c "from keep.mcp import main, mcp; print('Tools:', list(mcp._tool_manager._tools.keys()))"
119+
```
120+
121+
### ClawHub requires registry env var
122+
Always set:
123+
```bash
124+
CLAWHUB_REGISTRY=https://auth.clawdhub.com
125+
```
126+
127+
### ClawHub login
128+
```bash
129+
# Interactive (opens browser)
130+
CLAWHUB_REGISTRY=https://auth.clawdhub.com npx clawhub login
131+
132+
# With token (headless)
133+
CLAWHUB_REGISTRY=https://auth.clawdhub.com npx clawhub login --token TOKEN --no-browser
134+
```
135+
136+
## Remotes
137+
138+
| Remote | Repository | Purpose |
139+
|--------|------------|---------|
140+
| `origin` | CLCrawford-dev/keep-protocol | Main public repo |
141+
| `staging` | CLCrawford-dev/keep-protocol-dev | Testing before origin |
142+
| `nteg` | nTEG-dev/keep-protocol | Fork for ClawHub publishing |
143+
144+
## Linear Issues
145+
146+
Create issues in the `keep-protocol` team with prefix `KP-`.
147+
148+
Standard release issues:
149+
- Build feature (implementation)
150+
- Test on keep-1 (verification)
151+
- Package and publish to PyPI
152+
- Update SKILL.md for ClawHub
153+
- Community push (X post, etc.)

0 commit comments

Comments
 (0)