# This file configures GitVersion 6.x to work with Terminal.Gui's GitFlow branching strategy. # # Terminal.Gui uses the GitFlow branching strategy. # https://gitversion.net/docs/learn/branching-strategies/gitflow/ # # - We have two main branches: `v2_release` and `v2_develop`. # - `v2_release` is the main branch for V2 releases and matches the latest NuGet release package (e.g., 2.0.0); # prior to release, it uses pre-release labels (e.g., 2.0.0-prealpha.1). # - `v2_develop` is the development branch for V2 and always carries a pre-release label (e.g., 2.1.0-develop.1). # - Development happens on feature branches off `v2_develop`. # - For releases, we merge feature branches into `v2_develop`, then `v2_develop` into `v2_release`. # - The ./.github/workflows/publish.yml builds and publishes on pushes to `v2_develop` and `v2_release`. # # Branches: # - v1_release: Main branch for V1 (historical) # - v1_develop: Develop branch for V1 (historical) # - v2_release: Main branch for V2 # - v2_develop: Develop branch for V2 # # Package Naming: # - from v2_develop: 2.1.0-develop.1 (minor version increments) # - from v2_release (pre-release): 2.0.0-prealpha.1 or 2.0.0-beta.1 # - from v2_release (release): 2.0.0 (patch version increments) # mode: ContinuousDelivery # GitVersion 6.x uses Mainline mode for GitFlow, focusing on main branch releases # We prefix our tags with 'v' or 'V' (e.g., v1.0.0) tag-prefix: '[vV]' branches: # V2 Release Branch main: # Matches the v2_release branch regex: ^v2_release$ # Uses 'alpha' as pre-release label before `beta` label: alpha # Increments patch version (x.y.z+1) on commits increment: Patch # Specifies v2_develop as the source branch source-branches: ['develop'] # V2 Development Branch develop: # Matches the v2_develop branch regex: v2_develop # Adds 'develop' as pre-release label (e.g., 2.1.0-develop.1) label: develop # Increments minor version (x.y+1.z) on commits increment: Minor # No source branches specified as this is the root of development source-branches: [] # Indicates this branch feeds into release branches tracks-release-branches: true # # V1 Branches - Included for historical reference # v1_develop: # regex: v1_develop # label: v1_develop # increment: Minor # source-branches: ['v1_release'] # # Lower weight keeps V1 pre-releases sorted below V2 # pre-release-weight: 100 # v1_release: # regex: v1_release # # Empty label for stable releases # label: '' # increment: Patch # source-branches: ['v1_develop'] # Pull Request Branches # Configures versioning for PRs (e.g., 2.0.0-pr.feature-123.1) pull-request: # Matches typical PR branch names regex: ^(pull|pull\-requests|pr)[/-] # Uses 'pr' prefix with branch name in the label (e.g., pr.feature-123) label: pr.{BranchName} # Inherits increment strategy from source branch increment: Inherit source-branches: - develop - main # High weight ensures PR versions sort after regular pre-releases pre-release-weight: 30000 # Ignore specific commits if needed (currently empty) ignore: sha: []