Release Process
This document describes the automated and manual release processes for ai-proxy.
Related:
- Testing Guide - Test coverage and CI requirements
- Load Testing Guide - Performance baseline validation
- Security Configuration - Release security checklist
Automated Releases
Releases are automated using semantic-release.
How It Works
- Push commits to
masterbranch - CI runs tests and validates
- semantic-release analyzes commit messages
- If release needed: creates tag, updates CHANGELOG, publishes to npm
Commit Convention
Releases follow Conventional Commits:
| Type | Bump | Description |
|---|---|---|
feat: |
minor | New feature |
fix: |
patch | Bug fix |
perf: |
patch | Performance improvement |
refactor: |
patch | Code refactoring |
docs: |
none | Documentation only |
test: |
none | Test only |
chore: |
none | Maintenance |
ci: |
none | CI changes |
Examples:
feat(dashboard): add tier builder visualizationfix(api): resolve race condition in key schedulerperf(proxy): optimize circuit breaker state machine
Breaking Changes
Add ! after type and BREAKING CHANGE: in body:
feat(api)!: remove legacy endpoint
BREAKING CHANGE: The /v1/legacy endpoint is removed
Manual Releases
For situations where automated releases don’t fit:
# Bump patch version (bug fixes)
npm run release patch
# Bump minor version (features)
npm run release minor
# Bump major version (breaking changes)
npm run release major
# Push tag to trigger release
git push origin v<version>
Release Checklist
Pre-release Testing: Run Load Testing baselines and Test Suite before releasing.
Before a release:
- All tests passing
- Coverage thresholds met
- CHANGELOG.md updated
- Version in sync
After release:
- Verify GitHub release created
- Verify npm package published
- Update announcements