GitVersion.yml 3.1 KB

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