Files
aliasvault/docs/misc/dev/release/git-versioning-strategy.md
2025-12-30 20:04:26 +01:00

62 lines
1.3 KiB
Markdown

---
layout: default
title: Git versioning strategy
parent: Release
grand_parent: Development
nav_order: 3
---
# Git versioning strategy
This document describes the **official release workflow** for AliasVault.
## Branch Semantics
### `main`
- Represents the **next version line**
- Contains **only pre-release versions**
- Example versions:
- `0.26.0-alpha`
- `0.26.0-beta`
- Never tagged for stable releases
---
### `XXXX-*` (GitHub issue branches)
- Branch from:
- `main` for next-version development, or
- a release tag for hotfixes
- Contains **only code fixes**
- No version changes
- No release notes
- May contain many commits
Landing rules:
- If branched from `main`: merge or rebase back into `main`
- If branched from a tag: **cherry-pick fixes into `main`**
- May be merged into a `release/*` branch for packaging
---
### `release/*`
- Used only to **package a stable release**
- Contains:
- fixes (cherry-picked back into main)
- release notes (cherry-picked back into main)
- version bump
- Never merged into `main`
- Deleted after tagging
---
## Versioning Rules
### Development versions
- Live only on `main`
- Always pre-release (`-alpha`, `-beta`, etc.)
### Stable versions
- Live only on `release/*` branches
- Always tagged
- Never merged back into `main`