# This file is used to configure GitVersion to work with the 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 always matches the latest release package on Nuget (e.g. 2.0.0); # prior to release it is a pre-release package (e.g. 2.0.0-prealpha.1). # - `v2_develop` is the main branch for V2 development and is always a pre-release package (e.g. 2.0.0-develop.1). # - We do all development work on feature branches off of `v2_develop`. # - When we deem it time to do a release, we merge the feature branches into `v2_develop` and then `v2_develop` into `v2_release`. # - The ./.github/workflows/publish.yml file is configured to build and publish on pushes to `v2_develop` and `v2_release`. # # We currently use GitVersion 5.1 # # Branches: # - v1_release: This is `main` branch for V1 # - v1_develop: This is `develop` branch for V1 # - v2_release: This is `main` branch for V2 # - v2_develop: This is `develop` branch for V2 # # Package Naming: # - from v2_develop: v2.0.0-develop.1 # - from v2_release: Prior to Release: v2.0.0-beta.1 or v2.0.0-alpha.1 or v2.0.0-prealpha.1 # - from v2_release: Release: v2.0.0 # # We prefix our tags with a 'v' or 'V' (e.g. v1.0.0) tag-prefix: '[vV]' # This is legacy from v1 and probably can be removed - see tag: develop below continuous-delivery-fallback-tag: dev branches: # V2 Branches develop: # We don't really use ContinuousDeployment, but ContinuousDelivery - I don't remember why we have this here but it works. mode: ContinuousDeployment tag: develop regex: v2_develop tracks-release-branches: true is-source-branch-for: ['main'] source-branches: [] main: # We don't really use ContinuousDeployment, but ContinuousDelivery - I don't remember why we have this here but it works. mode: ContinuousDeployment # For V2 releases, prior to Alpha we use prealpha. tag: prealpha regex: v2_release is-release-branch: true # This tells GitVersion that the main (branch is the source branch for the develop branch. source-branches: ['develop'] # V1 Branches - These are really just here for reference. v1_develop: mode: ContinuousDeployment tag: v1_develop regex: v1_develop source-branches: - v1_release pre-release-weight: 100 v1_release: mode: ContinuousDeployment regex: v1_release is-release-branch: true source-branches: ['v1_develop'] # Pull Request Branches # I don't fully understand this, but it seems to work pull-request: mode: ContinuousDeployment tag: PullRequest.{BranchName} increment: Inherit tag-number-pattern: '[/-](?\d+)' regex: ^(pull|pull\-requests|pr)[/-] source-branches: - develop - main - feature - support - hotfix pre-release-weight: 30000 # I don't remember why we have this here but it works. ignore: sha: []