From be09aef8a3afa0d416ea9655ebbec6d046f8355e Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Thu, 27 Aug 2026 19:12:47 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=8C=20Aligns=20versioning=20to=20GitHu?= =?UTF-8?q?bFlow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/skills/new-release/SKILL.md | 9 ++++----- .gitignore | 2 +- GitVersion.yml | 18 +++++------------- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/.github/skills/new-release/SKILL.md b/.github/skills/new-release/SKILL.md index f0cc486..3e3c66c 100644 --- a/.github/skills/new-release/SKILL.md +++ b/.github/skills/new-release/SKILL.md @@ -12,12 +12,11 @@ Versioning is **GitVersion-driven** (`GitVersion.yml`). Do not hand-pick version | Branch | Label | Resulting version | | --- | --- | --- | -| `main` | — | `MAJOR.MINOR.PATCH` (stable) | -| `develop` / `dev` / `development` | `beta` | `MAJOR.MINOR.PATCH-beta.N` | -| `release/*`, `hotfix/*`, `feature/*` | branch name | `…-.N` | +| `main` | — | `MAJOR.MINOR.PATCH` (stable, held until the next tag) | +| `feature/*`, `hotfix/*` | branch name | `…-.N` | - Tags use the prefix `v` (regex `[vV]?` also accepts `V` or none). -- Each `src/*` project is versioned **independently**: only changes under that project's own directory, `Directory.Packages.props`, or `GitVersion.yml` increment its version (see `GenerateProjectGitVersionConfig` in `src/Directory.Build.props` and `GitVersion.template.yml`). A change to one library does not bump a sibling's version. +- Each `src/*` project is versioned **independently**: only changes under that project's own directory, `Directory.Packages.props`, or `GitVersion.yml` increment its version (see `GenerateProjectGitVersionConfig` in `src/Directory.Build.props`, which renders the root `GitVersion.yml` into a per-project copy). A change to one library does not bump a sibling's version. - Increments are suppressed for already-merged branches and already-tagged commits. ## Procedure @@ -29,7 +28,7 @@ Versioning is **GitVersion-driven** (`GitVersion.yml`). Do not hand-pick version 5. **Publish** packages to the configured feed. 6. **Create the GitHub release** linked to the tag, using the generated changelog as notes. -For hotfixes: branch from the latest stable tag (`git switch -c hotfix/ v`), follow the procedure, then back-merge into `main` and `develop`. +For hotfixes: branch from the latest stable tag (`git switch -c hotfix/ v`), follow the procedure, then merge back into `main`. There is no `develop` branch to reconcile with — this repo is trunk-based. ## Guardrails diff --git a/.gitignore b/.gitignore index 0b6af92..9d6d60c 100644 --- a/.gitignore +++ b/.gitignore @@ -1157,7 +1157,7 @@ artifacts/** ## Machine-specific overrides compose.override.yaml -## Generated per-project GitVersion config (rendered from GitVersion.template.yml) +## Generated per-project GitVersion config (rendered from the root GitVersion.yml) src/*/GitVersion.yml ## Copilot agent scratch/research notes (ephemeral, not project documentation) diff --git a/GitVersion.yml b/GitVersion.yml index c1d84f7..9ccc2dc 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -3,23 +3,15 @@ mode: ContinuousDelivery tag-prefix: '[vV]?' ignore: paths: - - ^(?!src\/|Directory\.Packages\.props|GitVersion.yml).* + - ^(?!src\/|Directory\.Packages\.props|GitVersion.yml).* branches: - develop: - label: 'beta' - regex: '^(dev|develop|development)$' - source-branches: - - main + main: + mode: ContinuousDeployment feature: mode: ContinuousDelivery + regex: ^(features?|hotfix(es)?)[\/-](?.+) source-branches: - - develop - - main - hotfix: - regex: ^hotfix?[\/-](?.+) - mode: ContinuousDelivery - release: - mode: ContinuousDelivery + - main prevent-increment: of-merged-branch: true