mirror of
https://github.com/aliasvault/aliasvault.git
synced 2026-03-31 13:05:41 -04:00
Create git-versioning-strategy.md
This commit is contained in:
61
docs/misc/dev/release/git-versioning-strategy.md
Normal file
61
docs/misc/dev/release/git-versioning-strategy.md
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
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`
|
||||
Reference in New Issue
Block a user