Skip to content

Default to v7 feature selections and standardize compatibility selectors - #5189

Merged
arturcic merged 3 commits into
GitTools:mainfrom
arturcic:feature/v7-feature-selectors
Sep 8, 2026
Merged

Default to v7 feature selections and standardize compatibility selectors#5189
arturcic merged 3 commits into
GitTools:mainfrom
arturcic:feature/v7-feature-selectors

Conversation

@arturcic

@arturcic arturcic commented Sep 8, 2026

Copy link
Copy Markdown
Member

Summary

GitVersion v7.0 now defaults to the POSIX v7 parser, nested v7 configuration and managed Git. Replace GITVERSION_USE_V6_ARGUMENT_PARSER with GITVERSION_ARGUMENT_PARSER_VERSION=v6|v7; the retired variable reports an actionable error. All three independent selectors trim values, ignore case, treat blanks as defaults and reject unknown values consistently.

The CLI captures its effective selections before registration and logs them at information level through the configured logger. Console diagnostics use stderr, including when build-server output is combined with JSON or other output; build-server integration messages retain their existing channel. Migration honors a root-level --log-file option. Temporary v6 parser/configuration and libgit2 fallbacks remain available.

Closes #5135. The completed configuration foundation #5131 is closed; v7.1 parser/configuration removal is tracked separately in #5188, backend removal in #5040, and v8 selector removal in #5136. Milestones, roadmap #5137 and native dependency links were aligned before implementation. No legacy implementation is removed here.

Commit organization

  1. Shared selector validation, managed Git default, source-link compatibility and core tests.
  2. CLI parser selection, startup diagnostics, effective-selection logging and executable/composition tests.
  3. Migration and lifecycle documentation.

Validation

  • All 489 app tests pass locally, including selector and combined-output regressions.
  • All 117 focused core selector/configuration tests pass locally.
  • All eight parser/configuration/backend combinations verify concrete registrations and JSON, variable and configuration output, both with and without build-server output; migration is tested against both configuration versions and backends.
  • Empty, unset, padded, case-insensitive, invalid and retired selectors are covered, including stderr diagnostics and captured effective values.
  • Source/build formatting checks pass; the new-cli solution builds with zero warnings or errors.
  • Before opening this PR, all four fork workflows passed on 54adbb24e613d8b6cbbbe5a27399e33c6068a165: CI, Code Format, Build (new-cli), and Markdown Update. CI includes managed/libgit2 tests on Linux, Windows and macOS, packaging and executable/container artifact checks.

Copilot AI lite review requested due to automatic review settings September 8, 2026 08:49

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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 updated Ctrl+C handler in Program.cs cancels a token but doesn’t suppress default termination and isn’t unregistered, which can prevent graceful shutdown and can invoke Cancel() after disposal.

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

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

Comment thread src/GitVersion.App/Program.cs Outdated
Copilot AI review requested due to automatic review settings September 8, 2026 08:59
@arturcic
arturcic force-pushed the feature/v7-feature-selectors branch from 54adbb2 to bc9a609 Compare September 8, 2026 08:59

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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.

🔵 Needs a closer look

It changes v7.0 default execution paths and startup/logging behavior across core, CLI, tests, and docs in a release-critical area that warrants final human validation.

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

@arturcic
arturcic force-pushed the feature/v7-feature-selectors branch from bc9a609 to fa44482 Compare September 8, 2026 09:11
Copilot AI review requested due to automatic review settings September 8, 2026 09:11

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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

Console logging can still be routed to stdout when --output buildserver is combined with machine-readable stdout outputs (e.g. JSON), risking output corruption.

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

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

Comment thread src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs Outdated
Copilot AI review requested due to automatic review settings September 8, 2026 09:30
@arturcic
arturcic force-pushed the feature/v7-feature-selectors branch from fa44482 to bfdf7c8 Compare September 8, 2026 09:30

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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.

🔵 Needs a closer look

It changes cross-cutting runtime defaults, environment-variable contracts, logging/stdio behavior, and documentation/tests across multiple subsystems, warranting final human verification.

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

Copilot AI review requested due to automatic review settings September 8, 2026 09:40
@arturcic
arturcic force-pushed the feature/v7-feature-selectors branch from bfdf7c8 to d648ad5 Compare September 8, 2026 09:40

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@sonarqubecloud

sonarqubecloud Bot commented Sep 8, 2026

Copy link
Copy Markdown

@arturcic
arturcic enabled auto-merge September 8, 2026 09:50
@mergify

mergify Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@arturcic
arturcic merged commit 8808684 into GitTools:main Sep 8, 2026
39 checks passed
@arturcic
arturcic deleted the feature/v7-feature-selectors branch September 8, 2026 10:00
@mergify

mergify Bot commented Sep 8, 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.

v7.0: default to v7 parser, nested configuration and managed Git

3 participants