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
Align the v7 feature selectors with the implementations that shipped, log each
resolved selection, and remove the legacy implementations on their approved
lifecycle. The v7.0 defaults are the v7 argument parser, v7 configuration, and
managed Git backend; temporary selectors provide the supported fallback paths.
The parser/configuration portions are blocked by #5134. The managed Git default
is independent and is a v7.0 release requirement under #5031.
Environment variables
Concern
Environment variable
Values
v7.0 default
Argument parser
GITVERSION_ARGUMENT_PARSER_VERSION
v6, v7
v7
Configuration structure
GITVERSION_CONFIGURATION_VERSION
v6, v7
v7
Git backend
GITVERSION_GIT_BACKEND
libgit2, managed
managed
Replace:
GITVERSION_USE_V6_ARGUMENT_PARSER=true
with:
GITVERSION_ARGUMENT_PARSER_VERSION=v6
The old boolean variable is removed rather than supported as an alias. If it is
still set, GitVersion fails with a clear message identifying GITVERSION_ARGUMENT_PARSER_VERSION=v6 as its replacement.
v7 behavior
When the variables are unset in v7.0:
Use the POSIX v7 argument parser.
Use the nested v7 calculation/output configuration.
Explicit GITVERSION_GIT_BACKEND=managed remains accepted throughout v7.x so
automation that selected the managed backend before it became the default does
not break.
Selector behavior:
Values are trimmed and case-insensitive.
Empty values behave as unset.
Unknown values fail fast and list the accepted values.
Selection is centralized so all applicable composition roots behave
consistently.
The selectors are independent.
Legacy lifecycle
Remove the legacy argument parser and flat v6 configuration runtime support
on the approved v7.x lifecycle while retaining gitversion config migrate.
Keep retired parser/configuration selector values recognizable long enough to
emit actionable diagnostics.
In v7.0, keep LibGit2Sharp available only through the temporary GITVERSION_GIT_BACKEND=libgit2 fallback.
In v7.1, v7.1: remove LibGit2Sharp and native binaries #5040 removes LibGit2Sharp and native binaries; GITVERSION_GIT_BACKEND=libgit2 then fails with an actionable removal
message, while explicit managed remains accepted as a no-op throughout
v7.x.
Summary
Align the v7 feature selectors with the implementations that shipped, log each
resolved selection, and remove the legacy implementations on their approved
lifecycle. The v7.0 defaults are the v7 argument parser, v7 configuration, and
managed Git backend; temporary selectors provide the supported fallback paths.
The parser/configuration portions are blocked by #5134. The managed Git default
is independent and is a v7.0 release requirement under #5031.
Environment variables
GITVERSION_ARGUMENT_PARSER_VERSIONv6,v7v7GITVERSION_CONFIGURATION_VERSIONv6,v7v7GITVERSION_GIT_BACKENDlibgit2,managedmanagedReplace:
with:
The old boolean variable is removed rather than supported as an alias. If it is
still set, GitVersion fails with a clear message identifying
GITVERSION_ARGUMENT_PARSER_VERSION=v6as its replacement.v7 behavior
When the variables are unset in v7.0:
calculation/outputconfiguration.Temporary compatibility selections:
Explicit
GITVERSION_GIT_BACKEND=managedremains accepted throughout v7.x soautomation that selected the managed backend before it became the default does
not break.
Selector behavior:
consistently.
Legacy lifecycle
on the approved v7.x lifecycle while retaining
gitversion config migrate.emit actionable diagnostics.
GITVERSION_GIT_BACKEND=libgit2fallback.GITVERSION_GIT_BACKEND=libgit2then fails with an actionable removalmessage, while explicit
managedremains accepted as a no-op throughoutv7.x.
v7.1: remove LibGit2Sharp and native binaries #5040.
are complete.
Selection logging
Log all resolved selections at information level, using the actual effective
values, for example:
environment variable.
single-variable stdout.
MSBuild where normal logging exists.
Documentation sweep
Align the selector names, v7.0 defaults, fallback behavior, and removal
lifecycle in:
BREAKING_CHANGES.mddocs/design/managed-git-migration.mddocs/input/docs/migration/v6-to-v7.md(migration warning and environmentvariable table)
docs/input/docs/usage/cli/arguments.md(selector introduction andconfig migrateavailability)Acceptance criteria
invalid values.
backend.
GITVERSION_GIT_BACKEND=libgit2selects the temporary v7.0 fallback.GITVERSION_GIT_BACKEND=managedremains accepted throughout v7.x.approved removal point.
GITVERSION_USE_V6_ARGUMENT_PARSERis rejected with its replacement.stdout.
not remove
gitversion config migrate.v7.0 default, temporary libgit2 fallback, v7.1 LibGit2Sharp removal, and v8
selector cleanup.