Skip to content

Document v7 configuration layout and migration - #5160

Merged
mergify[bot] merged 1 commit into
mainfrom
feature/5134-v7-configuration-docs
Sep 7, 2026
Merged

Document v7 configuration layout and migration#5160
mergify[bot] merged 1 commit into
mainfrom
feature/5134-v7-configuration-docs

Conversation

@arturcic

@arturcic arturcic commented Aug 19, 2026

Copy link
Copy Markdown
Member

Summary

  • Documents the v7 root workflow selector alongside calculation and output.
  • Explains that presets supply defaults for both sections, including workflow-provided branches, with file and runtime overrides taking precedence.
  • Updates migration, override, ownership, and authored configuration examples; regenerates the configuration reference.
  • Schema implementation and generated schema now belong to the base PR Implement versioned calculation and output configuration #5158.

Validation

  • Full-stack solution build; 168 configuration tests and 404 app tests passed.
  • mdsnippets --write-header false.
  • Repeated schema generation produces identical output.
  • Scoped dotnet format and git diff checks.

Closes #5134

@mergify

mergify Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

⚠️ The sha of the head commit of this PR conflicts with #5157. Mergify cannot evaluate rules on this PR. Once #5157 is merged or closed, Mergify will resume processing this PR. ⚠️

@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from 565e1f3 to 190a755 Compare August 19, 2026 19:43
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from 190a755 to eb6cf46 Compare August 19, 2026 19:48
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from eb6cf46 to c0034ba Compare August 19, 2026 21:17
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from c0034ba to e358ee3 Compare August 19, 2026 21:32
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from e358ee3 to c17e590 Compare August 19, 2026 21:49
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from c17e590 to 0f91a29 Compare August 20, 2026 00:34
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from 0f91a29 to 6575eea Compare August 20, 2026 01:31
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from 6575eea to ae39600 Compare August 28, 2026 18:16
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from ae39600 to 65c9d45 Compare September 6, 2026 12:41
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from 65c9d45 to 4215344 Compare September 6, 2026 13:03
@arturcic
arturcic marked this pull request as ready for review September 6, 2026 15:55
Copilot AI lite review requested due to automatic review settings September 6, 2026 15:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Some updated documentation YAML snippets contain duplicate keys in a single mapping, making the examples invalid YAML and potentially misleading.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR updates GitVersion’s v7 documentation and published artifacts to reflect the nested configuration layout (calculation vs output) and the supported migration/override workflows, including regenerating the v7 configuration schema output.

Changes:

  • Generate a nested-only v7 configuration schema (root contains only calculation and output) while keeping prior versions’ schema output unchanged.
  • Update CLI/docs/migration guidance and examples to use version-aware nested override keys and document gitversion config migrate.
  • Update breaking-changes documentation to describe the v7 configuration structure and migration path.
File summaries
File Description
src/GitVersion.Schema/Program.cs Switches schema emission to a v7-specific writer for schema versions ≥ 7.
src/GitVersion.Schema/Extensions.cs Adds v7 schema materialization that nests properties into calculation/output and filters branch properties appropriately.
schemas/7.0/GitVersion.configuration.json Regenerated schema showing nested-only v7 layout and additionalProperties: false at the root.
docs/input/docs/usage/cli/assembly-patch.md Updates --override-config example to the nested v7 key path.
docs/input/docs/usage/cli/arguments.md Documents config migration and updates override-config examples to nested v7 keys (and v6 fallback notes).
docs/input/docs/reference/version-increments.md Updates YAML examples to use the nested calculation section.
docs/input/docs/reference/mdsource/configuration.source.md Adds v7 layout + migration + override guidance and updates multiple examples to nested structure.
docs/input/docs/reference/custom-formatting.md Updates examples to place formatting settings under output and branch labels under calculation.
docs/input/docs/reference/configuration.md Publishes the regenerated reference content describing the nested v7 layout and updated examples.
docs/input/docs/reference/build-servers/gitlab.md Updates GitLab configuration example to nested v7 structure.
docs/input/docs/migration/v6-to-v7.md Adds explicit v6→v7 configuration migration guidance, schema guidance, and environment variable notes.
docs/input/docs/learn/branching-strategies/githubflow/examples.md Updates workflow example to nested calculation layout.
docs/input/docs/learn/branching-strategies/gitflow/examples.md Updates workflow example to nested calculation layout.
BREAKING_CHANGES.md Documents the v7 configuration structure and migration command/options.
Review details

Suppressed comments (1)

docs/input/docs/reference/custom-formatting.md:202

  • This YAML snippet also defines assembly-informational-format twice under the same output mapping, which is invalid YAML and effectively drops the first example. Consider turning the second line into a commented alternative (or splitting into two separate example blocks).
output:
  assembly-informational-format: "{Major}.{Minor}.{Patch}-{env:RELEASE_STAGE ?? 'dev'}"
  assembly-informational-format: "{SemVer}+{env:BUILD_ID ?? 'local'}"
  • Files reviewed: 14/14 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/input/docs/reference/custom-formatting.md Outdated
Copilot AI review requested due to automatic review settings September 6, 2026 16:15
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from 4215344 to 059456c Compare September 6, 2026 16:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The schema generation logic and regenerated artifacts align with the documented v7 nested layout and the updates consistently propagate across the relevant documentation.

Review details
  • Files reviewed: 14/14 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The monorepo ignore-path prose examples still imply leading-slash paths while the accompanying regex examples are repository-relative, which can mislead users.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details

Suppressed comments (6)

docs/input/docs/reference/mdsource/configuration.source.md:436

  • The bullet list describes paths with a leading /, while the preceding regex examples match repository-relative paths without a leading slash. Using the same convention in the prose avoids suggesting users should include a leading / in their patterns.
A commit having changes only in `/ProjectB/*` path would be ignored. A commit having changes in the following paths wouldn't be ignored:

* `/ProjectA/*`
* `/LibraryC/*`
* `/ProjectA/*` and  `/LibraryC/*`

docs/input/docs/reference/mdsource/configuration.source.md:439

  • These combined-path examples also use leading slashes, which conflicts with the repository-relative regex examples above. Update them to be consistent with repository-relative paths.
* `/ProjectA/*` and `/ProjectB/*`
* `/LibraryC/*` and `/ProjectB/*`
* `/ProjectA/*` and `/ProjectB/*` and `/LibraryC/*`

docs/input/docs/reference/configuration.md:856

  • These path examples include a leading /, but the ignore-path regex patterns shown are repository-relative. Update the prose to use consistent repository-relative paths.
* Negative lookahead on anything other than `/ProjectA/*` and `/LibraryC/*`:

docs/input/docs/reference/configuration.md:869

  • The prose/bullets describe paths with a leading /, while the regex examples shown are repository-relative (no leading slash). Using one convention avoids suggesting users should prefix paths with / in their patterns.
A commit having changes only in `/ProjectB/*` path would be ignored. A commit having changes in the following paths wouldn't be ignored:

* `/ProjectA/*`
* `/LibraryC/*`
* `/ProjectA/*` and  `/LibraryC/*`

docs/input/docs/reference/configuration.md:872

  • These combined-path examples also use leading slashes, which conflicts with the repository-relative regex examples above. Update them to be consistent with repository-relative paths.
* `/ProjectA/*` and `/ProjectB/*`
* `/LibraryC/*` and `/ProjectB/*`
* `/ProjectA/*` and `/ProjectB/*` and `/LibraryC/*`

docs/input/docs/reference/mdsource/configuration.source.md:423

  • These path examples include a leading /, but the ignore-path regex patterns shown are repository-relative (no leading slash). Update the prose to use consistent repository-relative paths.
* Negative lookahead on anything other than `/ProjectA/*` and `/LibraryC/*`:
  • Files reviewed: 11/11 changed files
  • Comments generated: 2
  • Review effort level: Lite

Comment thread docs/input/docs/reference/configuration.md Outdated
Comment thread docs/input/docs/reference/mdsource/configuration.source.md Outdated
Copilot AI review requested due to automatic review settings September 7, 2026 11:09
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from 73b5188 to fca8a10 Compare September 7, 2026 11:09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The changes align documentation/examples with the v7 configuration model, with only a minor CLI docs grammar typo noted.

Review details

Suppressed comments (1)

docs/input/docs/usage/cli/arguments.md:145

  • The sentence has a grammar error (“value has be enclosed”), which reads like a typo and can confuse the CLI quoting guidance.
To have **space characters** as a part of `value`, `value` has be enclosed with double quotes - `key="My value"`.
  • Files reviewed: 11/11 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings September 7, 2026 11:15
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from fca8a10 to 9035dbd Compare September 7, 2026 11:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The --override-config “supported override paths” section implies an exhaustive list but omits valid keys (e.g., output.pre-release-weight), which could mislead users.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 11/11 changed files
  • Comments generated: 1
  • Review effort level: Lite

Comment thread docs/input/docs/usage/cli/arguments.md
@arturcic
arturcic requested a review from asbjornu September 7, 2026 11:56
@arturcic

arturcic commented Sep 7, 2026

Copy link
Copy Markdown
Member Author

@HHobeck, could you take another look at the stack? Following your feedback, I moved workflow to the configuration root, alongside calculation and output, since the selected preset supplies defaults for both sections.

The implementation, migration command, schemas, and documentation now reflect this structure. CI and Sonar are green, and Copilot feedback has been addressed.

Review order: #5158#5159#5160. Thanks!

@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from 9035dbd to 14a5142 Compare September 7, 2026 15:40
Base automatically changed from feature/5133-config-migration to main September 7, 2026 16:17
@arturcic
arturcic force-pushed the feature/5134-v7-configuration-docs branch from 14a5142 to 778098d Compare September 7, 2026 16:18
@sonarqubecloud

sonarqubecloud Bot commented Sep 7, 2026

Copy link
Copy Markdown

@arturcic

arturcic commented Sep 7, 2026

Copy link
Copy Markdown
Member Author

@Mergifyio queue

@mergify

mergify Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Merge Queue Status

  • Entered queue2026-09-07 16:43 UTC · Rule: default · triggered by @arturcic with the @mergifyio queue command
  • Checks skipped · PR is already up-to-date
  • Merged2026-09-07 16:46 UTC · at 4e09290b15c3d8af058fa333b2657c9956cd7a31 · merge

This pull request spent 2 minutes 21 seconds in the queue, including 5 seconds running CI.

Required conditions to merge
  • github-review-approved [🛡 GitHub repository ruleset rule main branch rule]
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/DotNet Format
    • check-neutral = @github-actions/DotNet Format
    • check-skipped = @github-actions/DotNet Format
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/Release
    • check-neutral = @github-actions/Release
    • check-skipped = @github-actions/Release
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/Build & Test (new-cli)
    • check-neutral = @github-actions/Build & Test (new-cli)
    • check-skipped = @github-actions/Build & Test (new-cli)
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/Build & Package / macos-26
    • check-neutral = @github-actions/Build & Package / macos-26
    • check-skipped = @github-actions/Build & Package / macos-26
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/Build & Package / ubuntu-24.04
    • check-neutral = @github-actions/Build & Package / ubuntu-24.04
    • check-skipped = @github-actions/Build & Package / ubuntu-24.04
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/Build & Package / windows-2025-vs2026
    • check-neutral = @github-actions/Build & Package / windows-2025-vs2026
    • check-skipped = @github-actions/Build & Package / windows-2025-vs2026
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-neutral = Mergify Merge Protections
    • check-skipped = Mergify Merge Protections
    • check-success = Mergify Merge Protections
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @sonarqubecloud/SonarCloud Code Analysis
    • check-neutral = @sonarqubecloud/SonarCloud Code Analysis
    • check-skipped = @sonarqubecloud/SonarCloud Code Analysis
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/Test / macos-26 - net10.0 - libgit2
    • check-neutral = @github-actions/Test / macos-26 - net10.0 - libgit2
    • check-skipped = @github-actions/Test / macos-26 - net10.0 - libgit2
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/Test / macos-26 - net10.0 - managed
    • check-neutral = @github-actions/Test / macos-26 - net10.0 - managed
    • check-skipped = @github-actions/Test / macos-26 - net10.0 - managed
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/Test / ubuntu-24.04 - net10.0 - libgit2
    • check-neutral = @github-actions/Test / ubuntu-24.04 - net10.0 - libgit2
    • check-skipped = @github-actions/Test / ubuntu-24.04 - net10.0 - libgit2
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/Test / ubuntu-24.04 - net10.0 - managed
    • check-neutral = @github-actions/Test / ubuntu-24.04 - net10.0 - managed
    • check-skipped = @github-actions/Test / ubuntu-24.04 - net10.0 - managed
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/Test / windows-2025-vs2026 - net10.0 - libgit2
    • check-neutral = @github-actions/Test / windows-2025-vs2026 - net10.0 - libgit2
    • check-skipped = @github-actions/Test / windows-2025-vs2026 - net10.0 - libgit2
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/Test / windows-2025-vs2026 - net10.0 - managed
    • check-neutral = @github-actions/Test / windows-2025-vs2026 - net10.0 - managed
    • check-skipped = @github-actions/Test / windows-2025-vs2026 - net10.0 - managed
  • any of [🛡 GitHub repository ruleset rule main branch rule]:
    • check-success = @github-actions/Linear PR History
    • check-neutral = @github-actions/Linear PR History
    • check-skipped = @github-actions/Linear PR History

@mergify mergify Bot added the queued label Sep 7, 2026
@mergify
mergify Bot merged commit 4e09290 into main Sep 7, 2026
68 checks passed
@mergify
mergify Bot deleted the feature/5134-v7-configuration-docs branch September 7, 2026 16:46
@mergify

mergify Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Thank you @arturcic for your contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Publish v7 configuration schemas and migration guidance

4 participants