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.
calculation contains semantic-version and Git-history inputs:
workflow, 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.
v7.0 defaults to v7, provides an explicit v6 fallback, and warns when that fallback loads a user file.
v7.1 removes v6 runtime loading while retaining migration tooling.
Migration, overrides, workflows, --show-config, caching, serialization, schemas, docs, and public APIs are tested and updated.
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.
Proposed structure
Setting ownership
calculationcontains semantic-version and Git-history inputs:workflow,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.Release matrix
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.