GitVersion.yml 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. # This file configures GitVersion 6.x to work with Terminal.Gui's GitFlow branching strategy.
  2. #
  3. # Terminal.Gui uses the GitFlow branching strategy.
  4. # https://gitversion.net/docs/learn/branching-strategies/gitflow/
  5. #
  6. # - We have two main branches: `v2_release` and `v2_develop`.
  7. # - `v2_release` is the main branch for V2 releases and matches the latest NuGet release package (e.g., 2.0.0);
  8. # prior to release, it uses pre-release labels (e.g., 2.0.0-prealpha.1).
  9. # - `v2_develop` is the development branch for V2 and always carries a pre-release label (e.g., 2.1.0-develop.1).
  10. # - Development happens on feature branches off `v2_develop`.
  11. # - For releases, we merge feature branches into `v2_develop`, then `v2_develop` into `v2_release`.
  12. # - The ./.github/workflows/publish.yml builds and publishes on pushes to `v2_develop` and `v2_release`.
  13. #
  14. # Branches:
  15. # - v1_release: Main branch for V1 (historical)
  16. # - v1_develop: Develop branch for V1 (historical)
  17. # - v2_release: Main branch for V2
  18. # - v2_develop: Develop branch for V2
  19. #
  20. # Package Naming:
  21. # - from v2_develop: 2.1.0-develop.1 (minor version increments)
  22. # - from v2_release (pre-release): 2.0.0-prealpha.1 or 2.0.0-beta.1
  23. # - from v2_release (release): 2.0.0 (patch version increments)
  24. #
  25. mode: ContinuousDelivery # GitVersion 6.x uses Mainline mode for GitFlow, focusing on main branch releases
  26. # We prefix our tags with 'v' or 'V' (e.g., v1.0.0)
  27. tag-prefix: '[vV]'
  28. branches:
  29. # V2 Release Branch
  30. main:
  31. # Matches the v2_release branch
  32. regex: ^v2_release$
  33. # Uses 'prealpha' as pre-release label before official release
  34. label: prealpha
  35. # Increments patch version (x.y.z+1) on commits
  36. increment: Patch
  37. # Specifies v2_develop as the source branch
  38. source-branches: ['develop']
  39. # V2 Development Branch
  40. develop:
  41. # Matches the v2_develop branch
  42. regex: v2_develop
  43. # Adds 'develop' as pre-release label (e.g., 2.1.0-develop.1)
  44. label: develop
  45. # Increments minor version (x.y+1.z) on commits
  46. increment: Minor
  47. # No source branches specified as this is the root of development
  48. source-branches: []
  49. # Indicates this branch feeds into release branches
  50. tracks-release-branches: true
  51. # # V1 Branches - Included for historical reference
  52. # v1_develop:
  53. # regex: v1_develop
  54. # label: v1_develop
  55. # increment: Minor
  56. # source-branches: ['v1_release']
  57. # # Lower weight keeps V1 pre-releases sorted below V2
  58. # pre-release-weight: 100
  59. # v1_release:
  60. # regex: v1_release
  61. # # Empty label for stable releases
  62. # label: ''
  63. # increment: Patch
  64. # source-branches: ['v1_develop']
  65. # Pull Request Branches
  66. # Configures versioning for PRs (e.g., 2.0.0-pr.feature-123.1)
  67. pull-request:
  68. # Matches typical PR branch names
  69. regex: ^(pull|pull\-requests|pr)[/-]
  70. # Uses 'pr' prefix with branch name in the label (e.g., pr.feature-123)
  71. label: pr.{BranchName}
  72. # Inherits increment strategy from source branch
  73. increment: Inherit
  74. source-branches:
  75. - develop
  76. - main
  77. # High weight ensures PR versions sort after regular pre-releases
  78. pre-release-weight: 30000
  79. # Ignore specific commits if needed (currently empty)
  80. ignore:
  81. sha: []