Release Strategy
Overview
This document describes the release process for our project. We use semantic versioning with automated releases based on conventional commits.
Table of Contents
Version Numbering
We use semantic versioning (MAJOR.MINOR.PATCH) automatically calculated from commit messages:
- MAJOR version for breaking changes
- MINOR version for new features
- PATCH version for bug fixes
Branch Strategy
main
- Production codedevelop
- Integration branchfeature/*
- New featuresfix/*
- Bug fixeshotfix/*
- Emergency fixes
Release Process
Releases are automated using semantic-release and triggered by merging to main:
- Write commits following conventional commit format
- Create PR to develop
- Merge develop to main when ready to release
- Automated process:
- Calculates version
- Creates changelog
- Creates GitHub release
- Tags Docker images
Commit Convention
Format: <type>(<scope>): <description>
Types:
- feat
: New feature (MINOR version)
- fix
: Bug fix (PATCH version)
- feat!
or BREAKING CHANGE
: Breaking change (MAJOR version)
- docs
: Documentation only
- style
: Code style changes
- refactor
: Code refactoring
- perf
: Performance improvements
- test
: Adding/updating tests
- chore
: Maintenance tasks
Examples:
feat: add new user authentication endpoint
fix: resolve memory leak in worker process
feat!: redesign API response format
Automated Releases
Releases are handled by GitHub Actions workflow:
For more details, see: - Contributing Guidelines