You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Restructure GitVersion configuration into calculation and output sections, add POSIX migration tooling, and provide a one-release fallback for the legacy flat configuration.
This umbrella is implemented through #5132, #5133, and #5134. The cross-feature release matrix and selector lifecycle are governed by #5135.
workflow is a root-level preset selector for the whole configuration. Templates supply defaults to both calculation and output; user configuration overrides the preset, and runtime overrides take precedence. A workflow-only document is valid in both v6 and v7.
calculation contains semantic-version and Git-history inputs:
next-version, tag-prefix, and version-in-branch-pattern
version-bump and no-bump message patterns
merge-message-formats, semantic-version-format, strategies, and ignore
calculation branch defaults and calculation.branches: mode, label, increment, prevent-increment, merge tracking, commit-message incrementing, regex/source relationships, and branch classification
label remains a calculation setting because it changes SemVer and FullSemVer.
output contains generated-variable and output-integration settings:
assembly versioning schemes and formats
assembly-informational-format, commit-date-format, tag-pre-release-weight, and update-build-number
output branch defaults and output.branches: custom-version-format and pre-release-weight
Calculation and output entries for the same branch are merged logically. Output configuration may target a branch supplied by a built-in workflow without repeating its calculation configuration.
Configuration model and validation
Represent both sections explicitly in the configuration model.
Resolve v6 and v7 representations to equivalent effective runtime configuration during v7.0.
Reject documents mixing flat and nested settings.
Keep calculation consumers independent of output-only settings where practical.
Update built-in workflows, builders, inheritance, serialization, --show-config, overrides, caching, schemas, and public API baselines.
--show-config emits the selected format. In v7 mode, --override-config uses nested paths and rejects legacy paths with replacement guidance; v6 mode does the inverse.
Acceptance criteria
Every current setting has an explicit calculation or output destination.
custom-version-format and pre-release-weight work as output defaults and under output.branches.
v6 and v7 configurations have calculation/output parity in v7.0.
Summary
Restructure GitVersion configuration into
calculationandoutputsections, add POSIX migration tooling, and provide a one-release fallback for the legacy flat configuration.This umbrella is implemented through #5132, #5133, and #5134. The cross-feature release matrix and selector lifecycle are governed by #5135.
Progress
Follow-up release work is outside this completed umbrella: #5135 owns v7.0 selector/default alignment; #5188 owns v7.1 parser/configuration runtime removal; #5040 owns v7.1 backend removal; #5136 owns v8 selector removal.
Proposed structure
Setting ownership
workflowis a root-level preset selector for the whole configuration. Templates supply defaults to bothcalculationandoutput; user configuration overrides the preset, and runtime overrides take precedence. A workflow-only document is valid in both v6 and v7.calculationcontains semantic-version and Git-history inputs:next-version,tag-prefix, andversion-in-branch-patternmerge-message-formats,semantic-version-format,strategies, andignorecalculation.branches:mode,label,increment,prevent-increment, merge tracking, commit-message incrementing, regex/source relationships, and branch classificationlabelremains a calculation setting because it changesSemVerandFullSemVer.outputcontains generated-variable and output-integration settings:assembly-informational-format,commit-date-format,tag-pre-release-weight, andupdate-build-numberoutput.branches:custom-version-formatandpre-release-weightCalculation and output entries for the same branch are merged logically. Output configuration may target a branch supplied by a built-in workflow without repeating its calculation configuration.
Configuration model and validation
--show-config, overrides, caching, schemas, and public API baselines.POSIX migration command
Add to the stable System.CommandLine parser:
--outputrefuses overwrite without--force;--in-placeexplicitly replaces the input; both are mutually exclusive.LegacyArgumentParseror experimentalnew-cli.configuses the unambiguous--target-path configform.Follow-up release matrix (tracked separately)
Use
GITVERSION_CONFIGURATION_VERSION=v6|v7as specified by #5135:v6is an explicit temporary fallback.v6produces an actionable error directing users togitversion config migrate.v7remains accepted as a no-op throughout v7.x.--show-configemits the selected format. In v7 mode,--override-configuses nested paths and rejects legacy paths with replacement guidance; v6 mode does the inverse.Acceptance criteria
custom-version-formatandpre-release-weightwork as output defaults and underoutput.branches.--show-config, caching, serialization, schemas, docs, and public APIs are tested and updated.