mirror of
https://github.com/aliasvault/aliasvault.git
synced 2026-02-03 02:42:45 -05:00
62 lines
1.3 KiB
Markdown
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`
|