Skip to content

Release Guide

David Zhu edited this page Mar 26, 2025 · 1 revision

This document outlines our standard workflow for creating stable releases from the main branch.

Branch Strategy

  • main - Active development (always deployable)
  • release/* - Temporary branches for release preparation
  • Tags mark production releases (e.g., v1.0.0)

Release Steps

1. Prepare Release Branch

git checkout main
git pull
git checkout -b release/vX.Y.Z  # Replace with your version

2. Update Release Assets

On the release branch:

  • Update version in all relevant files
  • Verify CHANGELOG.md includes all changes
  • Ensure CI tests pass

3. Merge and Tag

git checkout main
git merge --no-ff release/vX.Y.Z -m "Release vX.Y.Z"
git tag -a vX.Y.Z -m "Version vX.Y.Z"
git push origin main --tags

4. Deploy

CI/CD should automatically deploy from the tag

Hotfix Process

For critical production fixes:

  1. Create branch from the production tag:
    git checkout -b hotfix/vX.Y.Z vX.Y.Z
  2. Apply fixes and follow normal release process

Best Practices

  • Keep release branches short-lived
  • Never force-push to release branches
  • Document every release in CHANGELOG.md

Visual Workflow

main:        o---o---o-------o (merge release)
                     \     /
release:               o---o
                             |
                             vX.Y.Z (tag)

Clone this wiki locally